使用Fiddler抓到包後分析

在 fiddler4使用教程中已經介紹了Fiddler的原理和軟體介面。本文主要針對Fiddler的抓包處理。

Fiddler抓取HTTP請求。

抓包是Fiddler的最基本的應用,以本部落格為例,啟動Fiddler之後,在瀏覽器中輸入http://blog.csdn.net/chaoyu168鍵入回車之後,在Fiddler的web session介面捕獲到的HTTP請求如下圖所示:

 

各欄位的詳細說明已經解釋過,這裡不再說明。需要注意的是#號列中的圖示,每種圖示代表不同的相應型別,具體的型別包括:

 

另外,注意請求的host欄位。可以看到有來自多個www.csdn.net的子域名的響應,說明在大型網站的架構中,大多需要多個子域名,這些子域名可能是單獨用於快取靜態資源的,也可能是專門負責媒體資源的,或者是專門負責資料統計的(如pingback)。

右鍵單擊其中的一條請求。可以選擇的操作有:save(儲存請求的報文資訊,可以是請求報文,可以是響應報文)。例如,我們儲存的一條請求頭資訊如下:

 

不僅是單條session,Fiddler還支援儲存所有抓取到的session(並支援匯入),這對於抓取可疑請求然後儲存,並在之後隨時分析這些請求是很有幫助的。

如果想要重新傳送某些請求,可以選中這些請求,然後點選工具欄中的reply.就可以重新傳送選中的這些請求。

左鍵點選單條HTTP請求,可以在右側的tab面板中看到如下資訊:

1. Statistic。

關於HTTP請求的效能和其他資料分析:

 

我們可以從中看出一些基本效能資料:如DNS解析的時間消耗是8ms,建立TCP/IP連線的時間消耗是8ms等等資訊。

2. Inspectors。

分為上下兩個部分,上半部分是請求頭部分,下半部分是響應頭部分。對於每一部分,提供了多種不同格式檢視每個請求和響應的內容。JPG 格式使用 ImageView 就可以看到圖片,HTML/JS/CSS 使用 TextView 可以看到響應的內容。Raw標籤可以檢視原始的符合HTTP標準的請求和響應頭。Auth則可以檢視授權Proxy-Authorization 和 Authorization的相關資訊。Cookies標籤可以看到請求的cookie和響應的set-cookie頭資訊。

 

3. AutoResponder

Fiddler比較重要且比較強大的功能之一。可用於攔截某一請求,並重定向到本地的資源,或者使用Fiddler的內建響應。可用於除錯伺服器端程式碼而無需修改伺服器端的程式碼和配置,因為攔截和重定向後,實際上訪問的是本地的檔案或者得到的是Fiddler的內建響應。當勾選allow autoresponser 並設定相應的規則後(本例中的規則是將http://blog.csdn.net/chaoyu168的請求攔截到本地的檔案layout.html),如下圖所示

 

然後在瀏覽器中訪問http://blog.csdn.net/chaoyu168,得到的結果實際為:

 

這剛好是本地layout.html的內容,說明請求已經成功被攔截到本地.當然也可以使用Fiddler的內建響應。下圖是Fiddler支援的攔截重定向的方式:

因此,如果要除錯伺服器的某個指令碼檔案,可以將該指令碼攔截到本地,在本地修改完指令碼之後,再修改伺服器端的內容,這可以保證,儘量在真實的環境下去除錯,從而最大限度的減少bug發生的可能性。

不僅是單個url,Fiddler支援多種url匹配的方式:

I. 字元匹配

如 example可以匹配 http://www.example.com和http://example.com.cn

II. 完全匹配

以EXACT開頭表示完全匹配,如上邊的例子

EXACT:http://blog.csdn.net/ohmygirl

III. 正規表示式匹配

以regex: 開頭,使用正規表示式來匹配URL

如:regex:(?insx).*\.(css|js|php)$  表示匹配所有以css,js,php結尾的請求url

4. Composer。

老版本的fiddler中叫request-builder.顧名思義,可以構建相應的請求,有兩種常用的方式構建請求:

(1)Parsed 輸入請求的url之後executed即可,也可以修改相應的頭資訊(如新增常用的accept, host, referrer, cookie,cache-control等頭部)後execute.

這個功能的常見應用是:“刷票”(不是火車票!!),如重新整理頁面的訪問量(基於道德和安全原因,如果你真去刷票,刷訪問量,本部落格概不負責)

(2)Raw。使用HTTP頭部資訊構建http請求。與上類似。不多敘述

5. Filter

Fiddler另一個比較強大的功能。Fiddler提供了多維度的過濾規則,足以滿足日常開發除錯的需求。如下圖示:

過濾規則有:

a. host和zone過濾。可以過濾只顯示intranet或則internet的HTTP請求

也可以選擇特定域名的HTTP請求

 

b. client process:可以捕獲指定程序的請求。

這對於除錯單個應用的請求很有幫助。

其他更多的設定可以參考fiddler的官方文件。