1.No caching Settings/無緩存工具的用法
(1)原理
通過操縱控制緩存響應的HTTP頭來防止緩存;
從請求中刪除If-Modified-Since和If-None-Match頭,添加Pragma:no-cache和Cache-control:no-cache。
從響應中刪除Expires,Last-Modified和ETag標頭,添加Expires:0和Cache-Control: no-cache。
(2)適用范圍
該工具可以作用於每個請求(選中 Enable No Caching 即可),也可以僅對你配置的HOST啟用(啟用的nocaching同時,請選中 only for selected locations);
當用於”only for selected locations”時,可以將no caching的效果限制在所配置的主機上;
當然location配置也非常靈活;全部禁止,選中 Enable No Caching,並且下面的only選項不要選,就可以了;
不過這樣做也有一個不好的地方,就是訪問的時候,同樣的資源,在視圖中,每調用一次,就會出現一次;
(1)原理
Cookie頭部從請求中刪除,防止將cookie值從客戶端應用程序(例如Web瀏覽器)發送到遠程服務器。
Set-Cookie頭將從響應中移除,從而防止客戶端應用程序從遠程服務器接收cookie的請求。
(2)適用范圍
該工具可以針對每個請求啟用,也可以僅對選定的位置啟用。選中 enable block cookies 即可
當用於某個域名時,可以將禁用Cookies的效果限制在你所配置的主機上;同時選中 only for selected locations 即可(不是特意的測試cookie禁用的情況下,沒有必要使用這個工具;)
3.遠程映射/Map Remote Settings(相當於修改請求地址)
映射類型
- 將目錄映射到目錄,如xk72.com/charles/ 映射到 localhost/charlesdev/
- 將文件映射到文件,如xk72.com/charles/download.php 映射到 abc.com/testing/test.html
- 將目錄與文件模式映射到目錄,如xk72.com/charles/*.php 到localhost/charlesdev/
- 若目標映射中未指定路徑,則URL的路徑部分將不會更改。如果要映射到根目錄,請在目標路徑字段中已/結尾
4.本地映射/Map Local Settings(把需要請求網絡的文件映射為請求本地文件)
例子
如果您正在更改測試css,swf或圖片 JS,可以將這些文件類型映射到本地網站的開發副本,以便您可以瀏覽具有所有開發資產的實時網站。
創建從live.com/*.css到本地開發副本的根的映射,以及其他文件類型的類似映射。或者,可以根據需要映射整個目錄或單個文件。
*是通配符,表示這個域名下的所有資源;
位置匹配
每個位置匹配可能包含協議,主機,端口和路徑模式,以匹配特定的URL。位置可能包括通配符。
本地映射
本地映射包含一個位置匹配和本地目錄,從該目錄嘗試提供匹配。
使用相對路徑在本地目錄中搜索文件。
相對路徑是匹配路徑部分之后剩下的請求位置的一部分;
本地映射可以區分大小寫;
5.重寫工具/rewrite Srttings and rewrite rule(在通過charles時修改請求和響應)
學習鏈接:https://www.axihe.com/charles/tools/rewrite.html
Type 類型
該類型指定要執行的重寫操作的類型。重寫規則類型有四種不同類別;
標題規則,
URL規則,
查詢參數規則,
響應狀態規則和正文規則。
頭和查詢參數規則分別影響頭字段和查詢字符串參數;添加,修改或刪除標頭和參數。
URL和主體規則執行查找和替換URL和主體的不同部分。響應狀態規則執行查找和替換響應狀態代碼和描述,
例如。 200 OK
Where
選擇應用重寫規則的位置;在請求,響應或兩者上。
Match
匹配字段包含請求或響應中要匹配的文本,以決定是否觸發此規則。您可以將名稱或值留空或同時保留,以匹配任何值。
如果您將名稱和值字段都留空,您將匹配所有請求/響應。
可以啟用正則表達式支持,為您的匹配提供Perl風格的正則表達式。如果您在正則表達式中包含組,則可以在匹配字段中使用它們。
除非正則表達式啟用,否則名稱字段是完全匹配字段,在這種情況下,它支持部分匹配。名稱字段對於正則表達式和正常匹配都不區分大小寫。如果要創建不需要的重寫規則類型,則可能會禁用該名稱字段。
值字段是部分匹配,除非您打開匹配整數值,在這種情況下,它是完全匹配的。值字段對於正則表達式和標頭和查詢參數規則的正常匹配都不區分大小寫,並且對URL和正文規則區分大小寫。
新建/替換
新/替換字段包含在觸發此規則時在請求或響應中添加或替換的文本。將名稱或值留空,以使它們與匹配的名稱或值相同。
如果為匹配啟用了正則表達式支持,則可以使用$1,$2等引用匹配組。
名稱和值字段的行為取決於匹配。如果存在相應的匹配,則該字段將作為匹配文本的替代,否則如果匹配為空,則字段將替換整個名稱或值。
值字段支持替換第一個或替換所有模式。如果名稱匹配是正則表達式,則名稱字段始終以替換優先模式運行,否則是完全匹配並替換整個名稱。
如果要創建不需要的重寫規則類型,則可以禁用名稱或值字段。
6.black list/黑名單(阻止對匹配HOST的請求;可以直接把請求丟掉,也可以直接返回403狀態碼;)
7.white list/白名單(除了你設置的HOST以外,其他請求都會被阻止。)
黑名單工具,用於僅屏蔽選定的域名。 如果一個請求與“黑名單”和“白名單”都匹配,則會被阻止。
8.DNS欺騙/DNS Spoofing(通過將主機名指定給遠程地址映射來欺騙DNS查找)
當請求通過Charles時,DNS映射將優先。
在DNS更改之前,DNS Spoofing可用於測試虛擬托管網站,因為您的瀏覽器將會像DNS更改一樣運行。
DNS更改通常需要長達24小時才能生效,並且沒有DNS欺騙,DNS變更生效后,網站將會變得非常困難。
您可以將主機名映射到IP地址或另一個主機名,這些名稱將由Charles在DNS中查找以查找其IP地址。
主機名可能包含通配符。
9.charles 鏡像
鏡像工具會在你瀏覽指定網站時,把抓取到的文件克隆一份,並保存在你指定的路徑下;
注意:如果你配置是www.aaa.com; 那么只會抓這個域名下的文件,這個域名如果引用了123.abc.com的外部資源(如前端CSS,JS等),引用的外部資源並不會被保存
10.自動保存工具 auto_save
“自動保存”工具會在設定的間隔后,自動保存並清除抓取到的內容。假設設置了3分鍾,則每隔三分鍾會保存一次,
並且保存后會把charles當前的會話清除掉;(這樣可以保證后三分鍾保存的不會把之前保存的重復計算在內)
11.客戶端進程工具/client_process
客戶端進程工具顯示負責進行每個請求的本地客戶端進程的名稱。(客戶端進程名稱顯示在每個請求的“備注”區域中)
客戶端進程通常是您的Web瀏覽器,例如firefox.exe,但客戶端進程工具可以幫助您發現許多可能未知的HTTP客戶端。
指定域名
該工具可以針對每個請求啟用,也可以僅對選定的位置啟用。 當用於所選位置時,可以將工具的效果限制在指定的主機和使用簡單而強大的模式匹配的路徑上。
12.撰寫工具/compose和Compose New
compose 是在原有的請求基礎上,修改;
compose New 是新出一個彈窗,自己手動一個個的去寫;
可修改的內容:– URL:
– Method:
– GET – POST – PUT – DELETE – HEAD – TRACE
– Content type: – application/x-www-form-urlencoded – multipart/form-data; boundary=********
– text/plain – text/xml – text/json – text/javascript
– Protocol version:
– HTTP/1.0 – HTTP/1.1 – HTTP/2.0
這個發送后,該編輯還繼續存在,你可以再次修改的;
書寫的時候,會出現一個書寫筆的標記,代表這個文件是可以書寫的
13.重復發包工具/repeat
(1)Charles將請求重新發送到服務器,並將響應顯示為新請求。
用了charles后,就沒必要在瀏覽器(或其他客戶端)中重復該請求,charles可以非常方便的完成。
特別是如果重新創建請求需要傳一些列參數的時候(比如在游戲中獲得分數,比如填寫一大串表單的請求時候),這將節省大量的精力。
響應只有在Charles才能看到。
(2)Advanced Repeat就是重復發包多次,這個功能用來測試短信轟炸漏洞很方便。或者測試后端的性能;
14.驗證工具/validate
驗證工具
Charles可以通過發送到W3C HTML驗證器,W3C CSS驗證器和W3C Feed驗證器來驗證記錄的響應。
驗證報告在Charles中顯示,並顯示出與響應源中相應行的警告或錯誤(雙擊錯誤消息中的行號可以切換到源視圖)。
因為Charles測試它記錄的響應,它可以測試不容易測試的場景,例如在提交表單后顯示錯誤消息。
15.Publish Gist /發布代碼段
選中某個文件,點擊Publish Gist,如果你沒有github,這個文件將被匿名發布,也就無法刪除它;
當然你可以在 publish gist setting中,進行發布設置,可以使用github帳戶來保護發布;
代碼會被發布到 https://gist.github.com/