Charles文檔翻譯_Part02 (Rewrite)

Charles Rewrite

 

Rewrite工具能夠創建一些規則來改變經過Charles的請求和響應,完成像添加或修改header、在響應報文體中查找和替換某些文本的功能。

 

Rewrite集

Rewrite集可以獨立控制激活與否。每個rewrite集合包含一個定位與規則列表。定位明確了規則將在哪些請求和響應中生效。

 

Rewrite規則

每個規則描述了一個單獨的重寫操作。規則可能在header、body或者部分請求的URL上產生影響;規則將會操作請求或者(和)響應;規則可能用來查找和替換,甚至僅僅替換樣式改寫。

 

類型

類型指定了重寫操作的執行類型。有四種不同的重寫規則類型:header規則,URL規則,查詢參數規則和報文體規則。header規則影響http報文頭,查詢參數規則影響查詢字符參數,可以添加修改或移除header和參數。URL和body規則實現在URL或body中查找和替換部分內容。

 

選擇在哪裏應用重寫規則:請求還是響應?或者兩者都包括?

 

匹配

匹配部分包含決定是否命中規則的匹配文本。你可以有選擇地保留name或(和)value爲空白,以匹配所有值。如果保留name和value都爲空,則會匹配所有請求/響應。

 

支持正則匹配,提供 Perl風格的正則表達式;如果在正則表達式中包括了groups,它們會被應用在匹配部分。

 

name字段是精確匹配字段,除非使用正則時可以支持部分匹配。無論是正則匹配還是普通匹配,name字段都是不區分大小寫的。如果重寫規則不需要,可以不啓用name字段。

 

value字段是部分匹配的,除非打開“Match whole value”。無論正則匹配還是普通匹配,對於header和請求參數都是大小寫不敏感的,而對於URL和報文體規則都是大小寫敏感的。

 

New / Replace

new / replace字段包含規則被命中時需要添加或替換到請求或響應中的文本。name和value爲空可以全部匹配。

如果選擇正則,可以使用$1 $2…的方式引用match groups。

 

name和value字段的行爲依賴於匹配。如果匹配成功則對匹配到的文本進行替換,否則如果匹配爲空則替換整個name和value。

 

value字段支持“只替換第一個匹配”和“替換所有匹配”兩種方式。如果name是正則匹配,則會始終執行“只替換第一個匹配”方式,否則不是正則匹配時,精準匹配和替換整個name

 

當創建的重寫規則類型不需要name和value字段時,可以禁用它們。

 

一些建議:

當表現與期望不相符時,重寫規則可能會難於調試。最好循序漸進的創建一個規則,並持續測試。

 

定位匹配

每個用來匹配特定URL的定位匹配包含了協議,host,端口,路徑。

 

調試

重寫規則難以調試,如果一個非常基本的規則都不正常工作,此時或許可以嘗試添加一個非常基本的規則,例如添加一個明顯的header,用來檢查一下規則是否正常執行。還可以在 Error Log中開啓Debug來獲取一些調試信息,在charles的Window菜單中打開此選項。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章