1. 程式人生 > 其它 >Fiddler經典版使用簡介

Fiddler經典版使用簡介

Fiddler簡介

Fiddler是一款免費的Windows平臺的抓包工具,功能強大,使用簡單。Fiddler抓包基於中間人代理模式,工作原理如圖2.1所示,Fiddler在啟動時會自動設定系統代理,Chrome瀏覽器等程式訪問網頁或傳送HTTP請求時,便會自動經過Fiddler傳送給服務端,因此Fiddler中便能檢視到所有當前PC傳送的所有HTTP請求。

Fiddler主要特點如下:

  • 可以抓到請求資料,檢視Raw格式/表單格式/JSON/XML格式.
  • 可以攔截和修改請求.
  • 更強大的過濾器。
  • 可以抓取Postman/介面指令碼傳送的請求,方便除錯。
  • 可以抓包手機請求。

Fiddler主介面
Fiddler的主介面分為選單欄、工具欄、請求列表、快速命令欄、監控面板及狀態列等,如圖2.2所示。

Fiddler選單欄包括File(檔案)、Edit(編輯)、Rules(規則)、Tools(工具)、View(顯示)及Help(幫助)。
Fiddler工具欄包括WinConfig(Windows配置)、、Replay(重放)、清理、Go(攔截放行)、Stream(流)、Decode(解碼)、Keep: All sessions(請求會話保持)、Any Process(抓取程序)、Find(查詢)、Save(儲存)、、Browse(瀏覽器選擇)及Clear Cache(清除快取)。
主體區左側為請求列表,又稱會話列表(客戶端與服務端的一次互動被稱為一次會話過程)。請求列表中使用不同的圖示區分不同型別的會話型別,常見的會話型別如表2.1所示。


注:以上表格使用新版Fiddler的會話圖示,HTML格式、XML格式、CSS、指令碼、圖片等圖示與老版本略有不同。

請求圖示可以幫助我們快速識別各種型別的請求或相應,GET方法的請求根據不同的響應資料型別顯示不同的圖示,POST等方法按請求方法型別顯示對應的圖示。對於資料量比較大的請求,會在請求和響應的過程中或顯示為上傳和下載的圖示,當使用斷點攔截請求或響應時,上傳、下載圖示顯示為暫停的樣式。

請求抓包

抓取請求是Fiddler的主要功能之一,Fiddler在啟動時會自動設定系統代理,因此只要開啟Fiddler就可以正常抓取當前PC端的HTTP請求。要抓取HTTPS請求或移動端請求則要進行相應的配置。

抓取PC端HTTPS請求

開啟瀏覽器訪問https://www.baidu.com/檢視Fiddler中抓取的請求,如圖2.3所示。

未設定和安裝證書時抓取到的HTTPS請求顯示為鎖型圖示的HTTP CONNECT請求,轉發到對應網站的443埠。
抓取HTTPS請求需要現在設定中勾選捕獲HTTPS連線及解密HTTPS資料。操作方法是,點選選單欄Tools(工具),選擇Options(選項),切換到HTTPS面板,如圖2.3所示。

如上圖,勾選Capture HTTPS CONNECTs(捕獲HTTPS連線)、Decrypt HTTPS traffic(解密HTTPS資料)和Ignore server certificate errors(unsafe)(忽略服務端證書錯誤)。由於我們需要使用Fiddler提供的免費證書,有可能服務端或報證書錯誤,忽略即可。
安裝Fiddler提供的HTTPS證書。安裝方法非常簡單,啟動Fiddler後,開啟瀏覽器,訪問http://localhost:8888/,如圖2.5所示。

點選頁面下方的連結FiddlerRoot certificate,下載完成後雙擊開啟,點選安裝證書,一路下一步使用預設選項安裝即可,安裝結束後會彈出提示匯入成功。
重啟Fiddler,重新訪問https://www.baidu.com/,如圖2.6所示。

這時可以抓取到HTTPS型別的請求。點選該請求,右側點選Inspectors面板,上半部分為請求資訊,下半部分為響應資訊。木偶人響應資訊已編碼過,點選Responsebody is encoded.Click to decode.解碼檢視,選擇Raw格式,可以檢視到返回的百度網頁的原始碼。

注:如果抓不到包可以檢測一下是否勾選了Filter過濾器。

強制關閉Fiddler會導致代理不能正常取消,Fiddler卻已關閉,而無法上網的情況。此時重新開啟Fiddler,然後正常關閉一次即可自動取消代理。

抓取移動端請求

抓取手機端App傳送的HTTP或HTTPS請求,需要手動在手機端設定網路代理為Fiddler代理服務地址,即使手機通過Fiddler代理上網,才能抓取到。
首先手機要與電腦在同一區域網內,比如同一Wi-Fi網路上網。電腦端啟動Fiddler(自動啟動代理服務,預設埠號為8888),使用ipconfig或ifconfig檢視電腦的IP地址,如192.168.1.3,那麼Fiddler代理服務的地址即192.168.1.3:8888。
Fiddler中點選選單欄Tools(工具),選擇Options選項,切換到Connections選項卡,勾線Allow remote computers to connect,已允許遠端裝置連線Fiddler代理服務,如圖2.7所示。

開啟手機設定,找到所連線的Wi-Fi網路,選高階(iPhone手機點選Wi-Fi網路後面的圈i圖示),配置代理,選擇手動,IP地址和埠號分別配置為電腦IP地址和8888,點選儲存(儲存),如圖2.8所示。

使用手機瀏覽器訪問http://電腦IP地址:8888(建議使用手機原生瀏覽器),會顯示Fiddler Echo Service頁面,同樣點選FiddlerRoot certificate,下載並安裝證書。安裝完證書後,iPhone手機還需要對證書進行信任,手機設定中點選通用,點選關於本機,點選證書信任設定,設定信任DO_NOT_TRUST_FiddlerRoot證書,返回即可。
此時保持Fiddler開啟,使用手機瀏覽器瀏覽網站或使用App請求即可,如彈出HTTPS證書不被信任警告,忽略即可。
注:設定完代理有,由於手機需要通過Fiddler代理上網,如果Fiddler關閉手機會連不上網。不抓包時可以在手機設定中把配置代理取消掉。

請求檢視

Inspector(檢查員)

在Fiddler請求列表中點選相應請求,右側選擇Inspector選項卡,可以檢視請求及響應的詳細內容,上半部分為請求,下半部分為響應。請求和響應可以使用子選項卡檢視不同的內容及格式,對應說明如表格2.2及2.3所示。

一般可以使用Raw檢視原始的請求資料,如果是表單型別的請求,可以使用WebForms查看錶單型別的資料,如果是JSON或XML格式可以使用對應的子選項卡檢視。

HTTP資料一般是經過壓縮傳輸的,Transformer一般使用預設的即可。可以通過Raw來檢視原始響應資料或按照相應的資料型別選擇對應的格式檢視。
2.2.3 過濾請求
Filters(過濾器)

當請求較多時,使用Filters元件可以幫我們快速過濾出指定的請求。要啟用過濾器,首先要右側Filters選項卡中勾選Use Filters,如圖2.9所示。

Fiddler支援的過濾方式如下:

  • Hosts:按伺服器過濾。
  • Clients Process:按客戶端程式過濾。
  • Request Headers:按請求頭過濾。
  • Breakpoints:設定斷點。
  • Response Status Code:按狀態碼過濾。
  • Response Type and Size:按響應型別及大學過濾。
  • Response Headers:按響應頭過濾。

例如,可以在Hosts段第二個下拉框選擇Show only the following Hosts,在下面的文字框中設定要顯示域名,以分號分開,如www.baidu.com;www.163.com,就可以只顯示發往這兩個域名的請求。

注:啟用關閉過濾器有時需要重啟後方能生效。

傳送請求

Composer(偵錯程式)

Fiddler的Composer選項卡可以用來發送和除錯請求,如圖2.10所示。


Composer可以用於傳送HTTP請求,功能比較簡單,表單格式資料需要自己進行URL編碼,填寫完成後點選Execute傳送即可。請求會以會話的形式顯示在請求列表中,同事History歷史記錄中會有響應的記錄。

Mock介面

AutoResponder(自動響應)

Fiddler的Anto Reponder選項卡可以根據一定的規則對匹配到的請求進行自動響應或轉向其他的介面或檔案。如圖2.11所示。

勾選Enable rules啟用匹配規則,勾選Unmatched requests passthrough對未匹配到的請求正常放行。

斷點除錯

當我們需要詳細抓取並除錯某個介面的資料時,可以使用Fiddler的斷點除錯功能。Fiddler的斷點除錯設定方式有兩處,一是Filter過濾器中對指定特徵的請求自動進行斷點攔截,另一種是對所有請求設定斷點,設定方式為:選單Rules -> Automatic Breakpoints -> Before Requests/After Responses。斷點分為兩種方式,一種是Before Requests請求前攔截,即請求未傳送到伺服器之前攔截。一種是After Responses,服務端響應未送達客戶端時攔截,一般我們使用第一種,如圖2.12,被斷點攔截的請求會顯示為暫停圖示。此時可以在Inspector中修改其資料,然後點選Go按鈕,使用修改後的資料完成請求。

注:如果線上環境中不希望請求資料(如提交訂單或支付資訊)真實發送到伺服器,同時又需要對請求進行抓包,也可以使用斷點功能。

弱網模擬

弱網模擬是App測試中一個常用測試項。Fiddler選單中的弱網模擬功能,只有模擬非常慢的模擬Modem調變解調器上網速度一個選項,設定方式為Rules ->Performance->Simulate Modem Speeds。
更精確的網速控制需要通過Fiddler Script實現。

請求重放

Fiddler支援對抓取到的請求進行重放。操作方法為在請求列表區域,指定請求上,點選右鍵,選擇Replay,選擇Replay Sequencely,輸入要重放的次數即可。

修改HOSTS

在Fiddler中還可以快速修改HOSTS配置,操作方法為點選慘淡Tools -> HOSTS,設定儲存即可。