Fiddler的使用介绍及抓包分析(详解)
(我的公眾號“墨石測試攻略”,關注可免費獲取全套接口測試實戰項目)
文章目錄
- 1 Fiddler簡介
 - 2 Fiddler工作原理
 - 3 Fiddler安裝
 - 4 Fiddler使用
 - 4.1 界面介紹
 - 4.1.1工具欄
 - 4.1.2 左側面板
 - 4.1.3 右側面板
 - 4.1.4 底部控制面板
 
- 4.2 Fiddler如何抓HTTPS的包
 - 4.3 Fiddler如何抓手機APP的包
 - 4.4 抓包分析
 
1 Fiddler簡介
Fiddler是一款網絡代理調試工具,可以將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,是目前最常用的http抓包工具之一。
使用場景:接口調試、接口測試、線上環境調試、Web性能分析、定位BUG、開發環境hosts配置、Mock、弱網斷網測試
2 Fiddler工作原理
Fiddler通過改寫HTTP代理,來監控并截取數據。當瀏覽器訪問服務器時會形成一個請求,瀏覽器發送請求時,先經過Fiddler,然后再到服務器。服務器返回數據給瀏覽器時,也會經過Fiddler再到瀏覽器顯示。由于所有的網絡數據都會經過Fiddler,因此Fiddler能夠截獲這些數據,實現數據的抓包。
Fiddler就好比一個房產中介,你(客戶端)想要租房子,把你的訴求告訴中介(Fiddler),中介根據你的訴求去(服務器)找符合條件的房子,房子信息是先傳給中介的,然后中介再把信息轉給你。
在你打開Fiddler的一瞬間,它就已經設好瀏覽器的代理了,代理地址:127.0.0.1(表示本機),端口8888當你關閉的時候,它又幫你把代理還原了。
3 Fiddler安裝
官網下載安裝:https://www.telerik.com/download/Fiddler
4 Fiddler使用
4.1 界面介紹
4.1.1工具欄
請求報文的信息。
HTML/JS/CSS使用TextView可以看到響應的內容;Raw標簽可以查看原始的、也是最詳細的符合HTTP標準的請求和響應;Auth可以查看授權Proxy-Authorization和Authorization的相關信息;Cookies標簽可以看到請求的cookie和響應的set-cookie頭信息。
 
3、AutoResponder:自動響應
 允許攔截指定規則的請求,并返回本地資源或Fiddler資源,從而代替服務器響應。
4、Composer:自定義請求發送服務器
 Composer允許自定義請求發送到服務器,用于前后端接口聯調,可以模擬向響應的服務器發送數據的過程。
5、Filters:請求過濾規則
 Fiters是過濾請求用的,當你刷新一下瀏覽器,一大片不知道哪來請求,看著礙眼,它還一直刷新你的屏幕。這個時候你可以通過過濾規則來過濾掉那些不想看到的請求。
6、Timeline: 性能分析
 對選擇多個請求有意義。作用類似HttpWatch。
4.1.4 底部控制面板
1、命令行工具:執行一些快捷操作。
 
 
2、狀態欄:
 
 Capturing:開啟/關閉 Fiddler的監聽;
 All Process:過濾會話選擇
4.2 Fiddler如何抓HTTPS的包
Fiddler默認抓HTTP格式的包,那么對于HTTPS數據包如何抓取呢?
不得不說Fiddler真是個功能強大的好東西,它可以通過偽造CA 證書來欺騙瀏覽器和服務器。大概原理就是在瀏覽器面前Fiddler偽裝成一個HTTPS服務器,而在真正的HTTPS服務器面前Fiddler又裝成瀏覽器,從而實現解密HTTPS數據包的目的。
具體設置步驟如下:
 步驟1:
 Tools –> Fiddler Options –> HTTPS
 
步驟2:
 選擇HTTPS欄,勾選Decrypt HTTPS traffic和Ignore server certificate errors兩項, Fiddler截獲HTTPS請求,點擊OK(首次點擊會彈出是否信任Fiddler證書和安全提示,直接點擊yes就行)
 
4.3 Fiddler如何抓手機APP的包
Fiddler可以抓取瀏覽器的包,那么怎么抓取移動端設備的數據包呢?
 步驟1:設置好HTTPS代理(見上一步驟)
步驟2:配置Fiddler允許遠程鏈接
 
步驟3:配置移動端設備
 (1)移動端的數據包,都是要走WiFi出去,所以首先需要確保手機連接的WiFi和Fiddler出于同一個局域網
 (2)要知道電腦的IP地址(當然這個電腦是安裝Fiddler的電腦):
 方法一:打開Fiddler,點擊箭頭所指的下三角,鼠標懸浮在Online,可以看到IP地址
 
方法二:打開cmd命令行,輸入IPconfig查看本機IP
(3)查看Fiddler的端口號,Tools-> Options->Connections,port中值就是端口號,一般默認為8888,不用改
(4)下載證書
①打開手機瀏覽器,輸入http://IP:端口號(例如我的手機,http://10.72.160.181:8888),點擊前往(每換一個WiFi都要重新下載安裝證書),訪問網址之后會跳轉到證書下載頁,點擊FiddlerRoot certificate下載證書
②下載完證書后安裝證書:在手機設置中搜索證書,并進入安裝證書界面:
 
③更改手機無線網的代理
打開Android設備的“設置” ->“WLAN”,找到你要連接的網絡,在上面長按,然后選擇“修改網絡”→勾選“顯示高級選項”(不同的手機,設置方法有所不同)→將代理改為手動→在“代理服務器主機名”輸入電腦的IP地址,在“代理服務器端口”輸入8888,然后保存
④啟動手機設備中的瀏覽器,訪問百度首頁,打開Fiddler就可以看到抓包數據了
備注:
 ·手機上設置代理后,Fiddler上抓到的是手機和PC上所有的請求,如果只過濾手機上的請求,且不影響電腦網絡設置:
 1.在電腦通過cmd命令查找IP:IPconfig ,查看計算機名:set computername
 2.在 Fiddler 的 QuickExec 區塊,輸入以下指令,并按下 Enter 確認。
 prefs set Fiddler.network.proxy.registrationhostname +你的電腦名稱(剛才查詢的)
4.4 抓包分析
根據上面的介紹,大家應該知道怎么抓包了。簡而言之,只要客戶端進行相關的操作,Fiddler左側的會話列表都會顯示一連串的數據,這個就是抓包數據。那么怎么對抓包信息進行分析呢?
找到對應的請求包→ →看請求信息→看響應結果。
前置知識說明:
 
 一、找到對應的請求包
 怎么抓到目的包,也就是問題對應的包?
 建議先停止抓包,并清除之前的記錄,然后在客戶端進行操作,這樣Fiddler上抓到的基本上是當前操作的記錄,然后再對抓包數據進行分析。
二、看請求信息
 
 從這個示例中可以看出,請求方式是POST,POST的信息分四部分,請求行、請求頭、空一行、Body,GET請求是沒有Body的。
Body是本次請求所提交的數據,如果需要Body進行解碼,那么復制Body內容,點擊 TextWizard圖標,打開解碼器,或者選中需要解碼的內容,右鍵選擇發送到解碼器。
 
Raw存放的是原始數據,其他的項是分析請求中的某一種數據。
 抓包分析:
 看對應的接口有沒有觸發請求,如果沒有請求或請求有問題,那就是前端的BUG。
三、看響應結果
 HTTP響應主要由狀態行、消息報頭、響應正文(和消息報頭之間空一行)組成。
 
從上述示例的消息報頭中可以看出,響應的狀態碼為200 OK,是響應成功的,響應的類型是application/Json,這是POST請求最常見的Json格式。所以也可以點擊Json查看響應正文,樹狀結構展示,更直觀友好。從Json中可以看出,這里傳了5個參數。
 
 抓包分析:
如果前端請求沒問題,就看后端返回報文,根據接口文檔,返回的數據有誤,要具體分析報錯的內容。如果是前端傳參不對導致的,那就是前端問題,如果傳參正確,后端處理不正確,那可能就是后端問題。
 如果后端響應了且數據和接口文檔一致,那就是前端展示的問題。
 總結,按前端→后端→前端的順序進行分析。
舉例:比如一個登錄界面,輸入用戶名密碼后點擊【登錄】發現無響應怎么回事?類似的問題還有,一個支付功能,支付成功后在我的訂單里卻沒有顯示。或者一個查詢功能,輸入條件查詢后沒有數據展示出來(先排除是否是因為數據庫沒有數據導致的)。一般都可以套用上面的回答。
總結
以上是生活随笔為你收集整理的Fiddler的使用介绍及抓包分析(详解)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: mysql8.0创建属性_MySQL8.
 - 下一篇: 空气中超声衰减