1.為什么是Fiddler?
抓包工具有很多,,小到最常用的web調(diào)試工具firebug,達(dá)到通用的強(qiáng)大的抓包工具wireshark.為什么使用fiddler?原因如下:
a.Firebug雖然可以抓包,,但是對(duì)于分析http請(qǐng)求的詳細(xì)信息,,不夠強(qiáng)大。模擬http請(qǐng)求的功能也不夠,,且firebug常常是需要“無(wú)刷新修改”,,如果刷新了頁(yè)面,所有的修改都不會(huì)保存,。
b.Wireshark是通用的抓包工具,,但是比較龐大,對(duì)于只需要抓取http請(qǐng)求的應(yīng)用來(lái)說(shuō),,似乎有些大材小用,。
c.Httpwatch也是比較常用的http抓包工具,但是只支持IE和firefox瀏覽器(其他瀏覽器可能會(huì)有相應(yīng)的插件),,對(duì)于想要調(diào)試chrome瀏覽器的http請(qǐng)求,,似乎稍顯無(wú)力,而Fiddler2 是一個(gè)使用本地 127.0.0.1:8888 的 HTTP 代理,,任何能夠設(shè)置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應(yīng)用程序都可以使用 Fiddler,。
2.什么是Fiddler?
Fiddler是位于客戶端和服務(wù)器端的HTTP代理,也是目前最常用的http抓包工具之一 ,。 它能夠記錄客戶端和服務(wù)器之間的所有 HTTP請(qǐng)求,,可以針對(duì)特定的HTTP請(qǐng)求,分析請(qǐng)求數(shù)據(jù),、設(shè)置斷點(diǎn),、調(diào)試web應(yīng)用,、修改請(qǐng)求的數(shù)據(jù),甚至可以修改服務(wù)器返回的數(shù)據(jù),,功能非常強(qiáng)大,,是web調(diào)試的利器。
既然是代理,,也就是說(shuō):客戶端的所有請(qǐng)求都要先經(jīng)過(guò)Fiddler,,然后轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)器,反之,,服務(wù)器端的所有響應(yīng),,也都會(huì)先經(jīng)過(guò)Fiddler然后發(fā)送到客戶端,基于這個(gè)原因,,F(xiàn)iddler支持所有可以設(shè)置http代理為127.0.0.1:8888的瀏覽器和應(yīng)用程序,。使用了Fiddler之后,web客戶端和服務(wù)器的請(qǐng)求如下所示:
Fiddler 作為系統(tǒng)代理,,當(dāng)啟用 Fiddler 時(shí),IE 的PROXY 設(shè)定會(huì)變成 127.0.0.1:8888,,因此如果你的瀏覽器在開(kāi)啟fiddler之后沒(méi)有設(shè)置相應(yīng)的代理,,則fiddler是無(wú)法捕獲到HTTP請(qǐng)求的。如下是啟動(dòng)Fiddler之后,,IE瀏覽器的代理設(shè)置:
以Firefox為例,,默認(rèn)情況下,firefox是沒(méi)有啟用代理的(如果你安裝了proxy等代理工具或插件,,是另外一種情況),,在firefox中配置http代理的步驟如下:
工具->選項(xiàng)->高級(jí)->網(wǎng)絡(luò)->設(shè)置 。并配置相應(yīng)的代理如下:
就可以使用Fiddler抓取Firefox的HTTP請(qǐng)求了,。
3.Fiddler使用界面簡(jiǎn)介
Fiddler主界面的布局如下:
主界面中主要包括四個(gè)常用的塊:
1.Fiddler的菜單欄,,上圖綠色部分。包括捕獲http請(qǐng)求,,停止捕獲請(qǐng)求,,保存http請(qǐng)求,載入本地session,、設(shè)置捕獲規(guī)則等功能,。
2.Fiddler的工具欄,上圖紅色部分。包括Fiddler針對(duì)當(dāng)前view的操作(暫停,,清除session,decode模式,、清除緩存等)。
3.web Session面板,,上圖黃色區(qū)域,,主要是Fiddler抓取到的每條http請(qǐng)求(每一條稱為一個(gè)session),主要包含了請(qǐng)求的url,,協(xié)議,狀態(tài)碼,,body等信息,,詳細(xì)的字段含義如下圖所示:
4.詳情和數(shù)據(jù)統(tǒng)計(jì)面板。針對(duì)每條http請(qǐng)求的具體統(tǒng)計(jì)(例如發(fā)送/接受字節(jié)數(shù),,發(fā)送/接收時(shí)間,,還有粗略統(tǒng)計(jì)世界各地訪問(wèn)該服務(wù)器所花費(fèi)的時(shí)間)和數(shù)據(jù)包分析。如inspector面板下,,提供headers,、textview、hexview,Raw等多種方式查看單條http請(qǐng)求的請(qǐng)求報(bào)文的信息:
而composer面板下,,則可以模擬向相應(yīng)的服務(wù)器發(fā)送數(shù)據(jù)的過(guò)程(不錯(cuò),,這就是灌水機(jī)器人的基本原理,也可以是部分http flood的一種方式)。
也可以粘貼一次請(qǐng)求的raw http headers,達(dá)到模擬請(qǐng)求的目的:
Filter標(biāo)簽則可以設(shè)置Fiddler的過(guò)濾規(guī)則,,來(lái)達(dá)到過(guò)濾http請(qǐng)求的目的,。最簡(jiǎn)單如:過(guò)濾內(nèi)網(wǎng)http請(qǐng)求而只抓取internet的http請(qǐng)求,或則過(guò)濾相應(yīng)域名的http請(qǐng)求,。Fiddler的過(guò)濾器非常強(qiáng)大,,可以過(guò)濾特定http狀態(tài)碼的請(qǐng)求,可以過(guò)濾特定請(qǐng)求類型的http請(qǐng)求(如css請(qǐng)求,,image請(qǐng)求,,js請(qǐng)求等),可以過(guò)濾請(qǐng)求報(bào)文大于或則小于指定大?。╞yte)的請(qǐng)求:
請(qǐng)多的過(guò)濾器規(guī)則需要一步一步去挖掘,。
|