charles全面使用教程及常见功能详解(较详细)
主要功能:
簡介
Charles其實是一款代理服務器,通過成為電腦或者瀏覽器的代理,然后截取請求和請求結果達到分析抓包的目的。
Charles 主要的功能包括:
截取 Http 和 Https 網絡封包。
支持重發網絡請求,方便后端調試。
支持修改網絡請求參數。
支持網絡請求的截獲并動態修改。
支持模擬慢速網絡。
1. Charles安裝
前提先安裝配置好Java環境,官網下載安裝Charles:https://www.charlesproxy.com/download/
Charles共享賬號: Name:?https://zhile.io; Key: 48891cf209c6d32bf4
Charles安裝證書:
2. HTTP抓包
(1)查看電腦IP地址
方法一: 打開”運行”(快捷鍵:win+R鍵;或者在任務欄的”搜索”按鈕中查找并點擊”運行”),輸入“cmd”后進入命令行窗口,在命令行窗口中輸入”ipconfig”命令查看IP?
方法二: 在charles中查看 :Help -> Local IP Address
(2)Charles代理設置
接下來打開Charles的代理設置:Proxy->Proxy Settings,設置一下端口號,默認的是8888,這個只要不和其他程序的沖突即可,并且勾選Enable transparent HTTP proxying。
(3)Charles設置Proxy代理
Proxy -> SSL Proxying Settings... 勾選Enable SSL Proxying,點擊Add,點擊Add,Host設置要抓取的https接口,??
Host : * (使用通配符表示檢測所有網絡請求;Port:443)
比如想抓所有接口的內容,Host填寫:*,Port填寫:443
完成以上操作,就完成Charles抓取HTTP(S)數據包的所有配置了。
(4)手機端設置
在手機設備、模擬器或者遠程瀏覽器上設置代理,抓取手機設備上的請求包(手機和電腦必須在同一個局域網內,并關閉電腦防火墻、其他代理或者翻墻軟件)
第一步:在手機wifi 上設置代理 -> 長按無線網絡-->修改網絡-->高級選項-->代理 手動-->手動輸入輸入IP、端口號
服務器IP:PC機器的IP(通過之前介紹的查看IP的方法)
第二步:Charles彈出詢問“allow”或者“deny”,點擊“allow”按鈕允許;出現手機的HTTP請求列表
第三步:如果修改相關配置后,沒有出現上面截圖信息,可在設置中加入自己手機的IP,如下圖:
第四步 安裝證書
- 抓取https數據需要在手機上安裝證書,HTTPS的抓包需要在HTTP抓包基礎上再進行設置;
- Help -> SSL proxying -> Install charles root certificate on a Mobile Device or remote browser…
出現彈窗得到地址chls.pro/ssl
- 在手機自帶的系統瀏覽器輸入地址chls.pro/ssl,出現證書安裝頁面,點擊安裝,手機設置有密碼的輸入密碼進行安裝。安裝完證書后,就可以截取手機上的 Https 通訊內容了。不過同樣需要注意,默認情況下 Charles 并不做截取,你還需要在要截取的網絡請求上右擊,選擇 SSL proxy 菜單項。
- 注意2:iOS 10.3系統,需要在設置→通用→關于本機→證書信任設置里面啟用完全信任Charles證書
3.Charles 主界面介紹
主要是會話的兩種視圖模式以及對應的?requet/response?面板組成:
Structure視圖
Sequence視圖
Structure:樹狀結構顯示,將網絡請求按訪問的域名分類;
Sequence:水平結構顯示,將網絡請求按訪問的時間排序
Structure視圖模式下,列表會按照域名來歸類所有請求,而Sequence視圖則是按照請求發生的順序來展示;如果不習慣Sequence默認的上下視圖,可以修改為類似Fiddler的左右視圖模式(有更符合眼睛的習慣):快捷鍵 cmd+,->Charles Preferences->Viewers選擇Sequence view layout為Tall即可;
常用的功能:
Save response: 保存response數據到文件中,方便后面用于重定向功能map local...;選擇多條記錄后再右鍵就會有Save All...可以方便的把所有response信息一次性導出到某個目錄中,然后通過map local...結合通配符來批量重定向請求;
Export: 可以將選中的多個會話信息完整導出成文件(*.chls),通過File - import來導入chls文件,方便不同開發人員進行調試或者現象復現分析;
repeat advanced...: 可以重發次數以及并發數,用于進行簡單的服務器壓測,
Filter?: 過濾,可以輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網絡請求
Overview?: 查看這次請求的詳細內容,例如耗時詳細列車了請求開始時間、結束時間,響應開始時間、結束時間,總耗時、DNS耗時、網絡延時等。
對于Size也詳細列出了請求頭大小、響應頭大小、壓縮比例等內容。?
URL:進行網絡請求的鏈接;
Status:當前狀態,complete表示請求完成;
Responce Code:返回碼。不同的接口,不同的請求結果,返回碼都不同;
Protocol:使用的協議;
Method:請求方式,如GET請求,POST請求等;
Kept Alive:判斷當前是否正在鏈接(活躍);
Content-Type:發送的內容類型,如這里用的是XML文本,以UTF8的方式發送;
Client Address:客戶端的IP地址;
Remote Address:遠程服務器的IP;
Timing:?
Request Start Time:請求開始的時間;
Request End Time:請求結束的時間;
Response Start Time:返回開始的時間;
Response End Time :?返回結束的時間;
Duration :?總時間;
Size:?
Request Header :請求的頭部大小;
Response Header:返回的頭部大小;
Request :?請求發送的大小;
Response:返回數據的大小;
Total:所有數據大小;
Request Compression :?請求壓縮;
Response Compression :?返回壓縮;
Request :?查看請求內容(底下的Headers,Query String,Cookies,Raw。)
Headers:發送請求的頭部信息;
Query String :?發送參數列表;
Cookies:?瀏覽器緩存;
Raw:發送的原生數據,包括了頭部和參數;
Reponse :?查看響應內容
Headers:是返回的頭部信息;
Text:返回信息(除去頭部)后的文本;
Hex:返回信息的16進制表示;
XML:我返回的數據是XML。如果你返回的是JSON,這里就會顯示JSON;
XML Text:如果你返回JSON,這里會顯示JSON Text;
Raw:返回的所有原生數據,包括頭部;
Summary:?查看發送數據的一些簡要信息(主機,狀態碼,數據的類型,header和body大下,加載時間,總時間)
Chart:?Summary中簡要信息以圖表形式展示
Notes:?其他信息
抓包接口測試需要了解下相關HTTP狀態碼所對應說明
4.菜單
4.1Proxy 菜單
這個用得比較多,在這里設置跟蹤捕捉過濾功能:
Proxy菜單
4.2過濾(?Recording Settings?)
Recording Settings?
設置會話捕捉條件,include?面板用于啟用/停止可以捕捉/顯示的會話;
exclude?表示不顯示的會話,在會話列表中右鍵選擇?ignore?時,對應的url會出現在這里;
record_setting_add
比較好用的是過濾條件支持通配符,*表示任意多個字符,?表示一個字符,如Protocol中有http,https和 "",選擇空白或者輸入*都可以表示任意協議的請求;
也可以通過主界面底部的Filter來簡單設置過濾條件,不支持通配符
filter
還有一種方法就是在一個網址上右擊,選擇Focus,然后其他的請求就會被放到一個叫Other Host的文件夾里面,這樣也達到了過濾的目的。
4.3模擬網絡環境(Throttle Settings)
4.3.1弱網設置throttle_settings
- 在這里選擇要模擬的網絡環境,也可以自定義指定的url進行網絡環境(勾選only....),通過該功能,模擬不同的網絡帶寬、延時率、丟包率。
- 弱網菜單介紹
- 配置參數解析:
? ?bandwidth —— 帶寬,即上行、下行數據傳輸速度
? ?utilisation —— 帶寬可用率,大部分modern是100%
? ?round-trip latency —— 第一個請求的時延,單位是ms。
? ?MTU —— 最大傳輸單元,即TCP包的最大size,可以更真實模擬TCP層,每次傳輸的分包情況。
? ?Releability —— 指連接的可靠性。這里指的是10kb的可靠率。用于模擬網絡不穩定。
? ?Stability —— 連接穩定性,也會影響帶寬可用性。用于模擬移動網絡,移動網絡連接一般不可靠。
- 這里設置完成后通過Proxy-Start Throttling(Ctrl+T)或者常用工具欄按鈕來啟用或停止;
- 關于網絡網絡制式上下行頻率、速率比較2G、3G、4G網絡制式上下行頻率、速率比較_貓貓貓貓貓大人的博客-CSDN博客_4g上行速率和下行速率
5.斷點功能
- 在會話列表中右鍵點擊某個會話,然后在菜單中選擇Breakpoints;
- 通過Proxy-Breakpoint settings...中手動新建/啟用某個斷點;
- 要求勾選enable breakpoints,之后當下次再有該請求時,會自動進入斷點模式;
- 對斷點進行設置
修改請求后發送
6.常見問題解決
1 . 手機無法抓包的問題
檢查是否配置好代理IP,端口號
檢查是否與電腦在同一個局域網
檢查是否關閉防火墻,代理,翻墻軟件
彈出詢問點擊“allow”或者“deny”時,誤點“deny”,關閉charles重啟,手機再次瀏覽則會重新彈出詢問
2 . 解決request和response信息中的中文亂碼問題
方法一 :修改charles windows版本安裝目錄下也有一個Charles.ini的配置文件?
修改后的配置文件?添加-Dfile.encoding=UTF-8即可。
通過以上方法就可以解決Request和Response的中文亂碼問題了。
3.設置代理后,瀏覽器打不開網頁
瀏覽器--設置--打開代理設置--局域網設置--去除代理服務器下圖選項后-確定
總結
以上是生活随笔為你收集整理的charles全面使用教程及常见功能详解(较详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核指南
- 下一篇: [css] css3的:nth-chi