Fiddler簡介
Fiddler是位於客戶端和服務器端的HTTP代理,也是目前最常用的http抓包工具之一 ,手機上無法直接查看網絡請求數據,需要使用抓包工具。Fiddler是一個免費的web調試代理,可以用它實現記錄、查看和調試手機終端和遠程服務器之間的http/https通信。
可用於接口調試,接口測試,web性能分析,判斷前后端bug,弱網斷網測試等
fiddler沒有手機客戶端,都是安裝在PC上,要實現對手機上的程序抓包,則需要對PC上的fiddler和手機端做一些配置。步驟如下:
一、PC端fiddler配置
1. 安裝HTTPS證書
手機上的應用很多涉及到個人信息,采用比較安全的HTTPS加密過,而fiddler默認只捕獲http會話而不抓取HTTPS報文,導致打開fiddler后就打不開https網頁(比如百度),解決辦法:打開Fiddler->Tool->Fiddler Options->HTTPS tab,勾選上並Capture HTTPS CONNECTs(捕獲 HTTPS 連接)和 Decrypt HTTPS traffic (HTTPS 請求解密),並安裝證書(首次使用無證書,會彈出是否信任fiddler證書和安全提示,直接點擊yes就行),重啟Fiddler生效。
2. 允許手機遠程連接
如果想要捕獲手機上的通信數據,就需要手機連接上Fiddler代理,而Fiddler默認是不允許其他設備進行連接的,解決辦法:點擊 Fiddler->Tools -> Options,在 Connections 面板選中 Allow remote computers to connect 允許其他設備連接(此操作需重啟Fiddler生效)。
3. 查看IP地址
- 電腦ip地址可通過cmd命令行輸入ipconfig查詢,或網絡連接信息中找到,最直觀的方法是將鼠標置於fiddler右上角的online中即可顯示電腦的ip地址。如下圖我的IP是192.168.3.16
二、手機端配置
需要在移動終端(手機或pad)上指定代理服務器為Fiddler所在主機IP(需要處於同一網絡),端口默認8888。
1. 接入網絡
要保證手機和安裝有fiddler的電腦處在同一局域網內,手機能ping通電腦。方法:家用或辦公環境把PC和手機WLAN連接上同一個路由器的無線SSID獲取到同一網段內的IP地址即可。台式機要插入無線網卡才能連WiFi,最好用筆記本電腦和手機連同一WiFi很方便。如下圖,我的手機IP是192.168.3.16,與電腦192.168.3.16可互通,就能訪問192.168.3.16:8888。
2. 手機安裝根證書
在手機上需要安裝Fiddler根證書,因為Fiddler是通過自己生成的證書對網絡請求重新簽名進行https會話解密的,如果不安裝證書的話只能抓取HTTP請求。
(1)手機和電腦連接同一個網絡,打開手機瀏覽器,輸入Fiddler Server地址http://ipv4.fiddler:8888/(因為fiddler裝在PC上,所以Fiddler Server地址就是PC的IP地址,帶上端口號8888,我的是http://192.168.3.16:8888/), 跳轉到 Fiddler Echo Service 證書下載頁,點擊FiddlerRoot certificate下載並安裝;
3. 手機代理設置
更改手機無線網的代理方法:打開系統設置-WLAN,長按WiFi接入的SSID修改網絡,點擊高級選項,代理選擇手動,主機名輸入fiddler的電腦ip地址192.168.3.16,端口號輸入8888,保存即可。
三、抓包
PC上和手機上的配置完成后就可以操作手機,在電腦上用fiddler抓包了,比如訪問一些網站和APP,fiddler中就會顯示捕獲到的手機上HTTP/HTTPS通訊記錄,抓包成功。
Fiddler界面使用介紹
主界面中主要包括四個常用的塊:
- Fiddler的菜單欄。
包括捕獲http請求,停止捕獲請求,保存http請求,載入本地session、設置捕獲規則等功能。
- Fiddler的工具欄。
包括Fiddler針對當前view的操作(暫停,清除session,decode模式、清除緩存等)。
- web Session面板
主要是Fiddler抓取到的每條http請求(每一條稱為一個session),主要包含了請求的url,協議,狀態碼,body等信息,詳細的字段含義如下圖所示:
- 詳情和數據統計面板。
檢測
針對每條http請求的具體統計(例如發送/接受字節數,發送/接收時間,還有粗略統計世界各地訪問該服務器所花費的時間)和數據包分析。如inspector面板下,提供headers、textview、hexview,Raw等多種方式查看單條http請求的請求報文的信息和響應報文:
Eg:請求報文包含 請求行,請求頭,請求體
響應報文包含 響應行,響應頭,響應體
狀態碼:
組合器 + 斷點 (接口測試+極端測試)
組合器發包測試 可做一些接口測試
斷點:發給服務器端可改,發給客戶端可改。做一些極端測試
過濾器
Filter標簽則可以設置Fiddler的過濾規則,來達到過濾http請求的目的。最簡單如:過濾內網http請求而只抓取internet的http請求,或則過濾相應域名的http請求。Fiddler的過濾器非常強大,可以過濾特定http狀態碼的請求,可以過濾特定請求類型的http請求(如css請求,image請求,js請求等),可以過濾請求報文大於或則小於指定大小(byte)的請求:
弱網測試
可以在配置文件中設置網絡延時時長