Fiddler抓取HTTP請求。
抓包是Fiddler的最基本的應(yīng)用,以本博客為例,啟動(dòng)Fiddler之后,在瀏覽器中輸入http://blog.csdn.net/ohmygirl 鍵入回車之后,在Fiddler的web session界面捕獲到的HTTP請求如下圖所示:
各字段的詳細(xì)說明已經(jīng)解釋過,這里不再說明。需要注意的是#號列中的圖標(biāo),每種圖標(biāo)代表不同的相應(yīng)類型,具體的類型包括:
另外,注意請求的host字段??梢钥吹接衼碜远鄠€(gè)www.csdn.net的子域名的響應(yīng),說明在大型網(wǎng)站的架構(gòu)中,大多需要多個(gè)子域名,這些子域名可能是單獨(dú)用于緩存靜態(tài)資源的,也可能是專門負(fù)責(zé)媒體資源的,或者是專門負(fù)責(zé)數(shù)據(jù)統(tǒng)計(jì)的(如pingback)。
右鍵單擊其中的一條請求??梢赃x擇的操作有:save(保存請求的報(bào)文信息,可以是請求報(bào)文,可以是響應(yīng)報(bào)文)。例如,我們保存的一條請求頭信息如下:
不僅是單條session,Fiddler還支持保存所有抓取到的session(并支持導(dǎo)入),這對于抓取可疑請求然后保存,并在之后隨時(shí)分析這些請求是很有幫助的。
如果想要重新發(fā)送某些請求,可以選中這些請求,然后點(diǎn)擊工具欄中的reply.就可以重新發(fā)送選中的這些請求。
左鍵點(diǎn)擊單條HTTP請求,可以在右側(cè)的tab面板中看到如下信息:
1. Statistic。
關(guān)于HTTP請求的性能和其他數(shù)據(jù)分析:
我們可以從中看出一些基本性能數(shù)據(jù):如DNS解析的時(shí)間消耗是8ms,建立TCP/IP連接的時(shí)間消耗是8ms等等信息。
2. Inspectors。
分為上下兩個(gè)部分,上半部分是請求頭部分,下半部分是響應(yīng)頭部分。對于每一部分,提供了多種不同格式查看每個(gè)請求和響應(yīng)的內(nèi)容。JPG 格式使用 ImageView 就可以看到圖片,HTML/js/CSS 使用 TextView 可以看到響應(yīng)的內(nèi)容。Raw標(biāo)簽可以查看原始的符合HTTP標(biāo)準(zhǔn)的請求和響應(yīng)頭。Auth則可以查看授權(quán)Proxy-Authorization 和 Authorization的相關(guān)信息。Cookies標(biāo)簽可以看到請求的cookie和響應(yīng)的set-cookie頭信息。
3. AutoResponder
Fiddler比較重要且比較強(qiáng)大的功能之一。可用于攔截某一請求,并重定向到本地的資源,或者使用Fiddler的內(nèi)置響應(yīng)??捎糜谡{(diào)試服務(wù)器端代碼而無需修改服務(wù)器端的代碼和配置,因?yàn)閿r截和重定向后,實(shí)際上訪問的是本地的文件或者得到的是Fiddler的內(nèi)置響應(yīng)。當(dāng)勾選allow autoresponser 并設(shè)置相應(yīng)的規(guī)則后(本例中的規(guī)則是將http://blog.csdn.net/ohmygirl的請求攔截到本地的文件layout.html),如下圖所示
然后在瀏覽器中訪問http://blog.csdn.net/ohmygirl,得到的結(jié)果實(shí)際為:
這剛好是本地layout.html的內(nèi)容,說明請求已經(jīng)成功被攔截到本地.當(dāng)然也可以使用Fiddler的內(nèi)置響應(yīng)。下圖是Fiddler支持的攔截重定向的方式:
因此,如果要調(diào)試服務(wù)器的某個(gè)腳本文件,可以將該腳本攔截到本地,在本地修改完腳本之后,再修改服務(wù)器端的內(nèi)容,這可以保證,盡量在真實(shí)的環(huán)境下去調(diào)試,從而最大限度的減少bug發(fā)生的可能性。
不僅是單個(gè)url,F(xiàn)iddler支持多種url匹配的方式:
I. 字符匹配
如 example可以匹配 http://www.example.com和http://example.com.cn
II. 完全匹配
以EXACT開頭表示完全匹配,如上邊的例子
EXACT:http://blog.csdn.NET/ohmygirl
III. 正則表達(dá)式匹配
以regex: 開頭,使用正則表達(dá)式來匹配URL
如:regex:(?insx).*\.(css|js|PHP)$ 表示匹配所有以css,js,php結(jié)尾的請求url
4. Composer。
老版本的fiddler中叫request-builder.顧名思義,可以構(gòu)建相應(yīng)的請求,有兩種常用的方式構(gòu)建請求:
(1)Parsed 輸入請求的url之后executed即可,也可以修改相應(yīng)的頭信息(如添加常用的accept, host, referrer, cookie,cache-control等頭部)后execute.
這個(gè)功能的常見應(yīng)用是:“刷票”(不是火車票!?。缢⑿马撁娴脑L問量(基于道德和安全原因,如果你真去刷票,刷訪問量,本博客概不負(fù)責(zé))
(2)Raw。使用HTTP頭部信息構(gòu)建http請求。與上類似。不多敘述
5. Filter
Fiddler另一個(gè)比較強(qiáng)大的功能。Fiddler提供了多維度的過濾規(guī)則,足以滿足日常開發(fā)調(diào)試的需求。如下圖示:
過濾規(guī)則有:
a. host和zone過濾??梢赃^濾只顯示intranet或則internet的HTTP請求
也可以選擇特定域名的HTTP請求
b. client process:可以捕獲指定進(jìn)程的請求。
這對于調(diào)試單個(gè)應(yīng)用的請求很有幫助。