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)文大于或則小于指定大行椤(byte)的請(qǐng)求:
請(qǐng)多的過(guò)濾器規(guī)則需要一步一步去挖掘。