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