Fiddler的详细介绍
Fiddler的詳細(xì)介紹 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
一、Fiddler與其他抓包工具的區(qū)別
1、Firebug雖然可以抓包,但是對(duì)于分析http請(qǐng)求的詳細(xì)信息,不夠強(qiáng)大。模擬http請(qǐng)求的功能也不夠,且firebug常常是需要“無(wú)刷新修改”,如果刷新了頁(yè)面,所有的修改都不會(huì)保存;
2、Wireshark是通用的抓包工具,能獲取HTTP,也能獲取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的內(nèi)容,但如果是TCP、UDP協(xié)議可以用wireshark;
3、Httpwatch也是比較常用的http抓包工具,但是只支持IE和firefox瀏覽器(其他瀏覽器可能會(huì)有相應(yīng)的插件);
而Fiddler 是一個(gè)使用本地 127.0.0.1:8888 的 HTTP 代理,任何能夠設(shè)置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應(yīng)用程序都可以使用 Fiddler。
二、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ù)。
既然是代理,也就是說(shuō):客戶端的所有請(qǐng)求都要先經(jīng)過(guò)Fiddler,然后轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)器,反之,服務(wù)器端的所有響應(yīng),也都會(huì)先經(jīng)過(guò)Fiddler然后發(fā)送到客戶端,所以web客戶端和服務(wù)器的請(qǐng)求如圖1所示:
圖1(web客戶端和服務(wù)器的請(qǐng)求過(guò)程)
注:使用Fiddler的話,需要先設(shè)置瀏覽器的代理地址,才可以抓取到瀏覽器的數(shù)據(jù)包。而很方便的是在你啟動(dòng)該工具后,它就已經(jīng)自動(dòng)幫你設(shè)置好了瀏覽器的代理了,當(dāng)關(guān)閉后,它又將瀏覽器代理還原了。當(dāng)然如果發(fā)現(xiàn)沒有自動(dòng)設(shè)置瀏覽器代理的話,那就得自己動(dòng)手去瀏覽器進(jìn)行設(shè)置代理操作了。(可自行百度每個(gè)瀏覽器是如何設(shè)置代理的),反正一定要設(shè)置相應(yīng)的代理,否則fiddler是無(wú)法捕獲到HTTP請(qǐng)求的。
三、Fiddler的使用界面介紹
?1、主界面如圖2所示:
圖2(fiddler主界面)
2、左邊web session面板的字段及圖標(biāo)含義如下:
| 名稱 | 含義 |
| # | 抓取HTTP Request的順序,從1開始,以此遞增 |
| Result | HTTP狀態(tài)碼 |
| Protocol | 請(qǐng)求使用的協(xié)議,如HTTP/HTTPS/FTP等 |
| Host | 請(qǐng)求地址的主機(jī)名 |
| URL | 請(qǐng)求資源的位置 |
| Body | 該請(qǐng)求的大小 |
| Caching | 請(qǐng)求的緩存過(guò)期時(shí)間或者緩存控制值 |
| Content-Type | 請(qǐng)求響應(yīng)的類型 |
| Process | 發(fā)送此請(qǐng)求的進(jìn)程:進(jìn)程ID |
| Comments | 允許用戶為此回話添加備注 |
| Custom | 允許用戶設(shè)置自定義值 |
| 圖標(biāo) | 含義 |
| 請(qǐng)求已經(jīng)發(fā)往服務(wù)器 | |
| 已從服務(wù)器下載響應(yīng)結(jié)果 | |
| 請(qǐng)求從斷點(diǎn)處暫停 | |
| 響應(yīng)從斷點(diǎn)處暫停 | |
| 請(qǐng)求使用 HTTP 的 HEAD 方法,即響應(yīng)沒有內(nèi)容(Body) | |
| 請(qǐng)求使用 HTTP 的 POST 方法 | |
| 請(qǐng)求使用 HTTP 的 CONNECT 方法,使用 HTTPS 協(xié)議建立連接隧道 | |
| 響應(yīng)是 HTML 格式 | |
| 響應(yīng)是一張圖片 | |
| 響應(yīng)是腳本格式 | |
| 響應(yīng)是 CSS 格式 | |
| 響應(yīng)是 XML 格式 | |
| 響應(yīng)是 JSON 格式 | |
| 響應(yīng)是一個(gè)音頻文件 | |
| 響應(yīng)是一個(gè)視頻文件 | |
| 響應(yīng)是一個(gè) SilverLight | |
| 響應(yīng)是一個(gè) FLASH | |
| 響應(yīng)是一個(gè)字體 | |
| 普通響應(yīng)成功 | |
| 響應(yīng)是 HTTP/300、301、302、303 或 307 重定向 | |
| 響應(yīng)是 HTTP/304(無(wú)變更):使用緩存文件 | |
| 響應(yīng)需要客戶端證書驗(yàn)證 | |
| 服務(wù)端錯(cuò)誤 | |
| 會(huì)話被客戶端、Fiddler 或者服務(wù)端終止 |
該表來(lái)源于博客:http://blog.csdn.net/qq_21445563/article/details/51017605
3、右邊是詳情和數(shù)據(jù)統(tǒng)計(jì)面板
1)Statistics關(guān)于HTTP請(qǐng)求的性能(例如發(fā)送/接受字節(jié)數(shù),發(fā)送/接收時(shí)間,還有粗略統(tǒng)計(jì)世界各地訪問(wèn)該服務(wù)器所花費(fèi)的時(shí)間)以及數(shù)據(jù)分析。如圖3所示:
圖3(Statistics選項(xiàng)卡)
2)Inspectors是用于查看會(huì)話的內(nèi)容,上半部分是請(qǐng)求的內(nèi)容,下半部分是響應(yīng)的內(nèi)容,提供headers、textview、hexview,Raw等多種方式查看單條http請(qǐng)求的請(qǐng)求報(bào)文的信息,如圖4所示:
?圖4(Inspectors選項(xiàng)卡)
3)AutoResponder 可用于攔截某一請(qǐng)求,即按自己添加的指定規(guī)則重定向到本地的資源或Fiddler資源,從而代替服務(wù)器響應(yīng)。
舉例:將“baidu”這個(gè)關(guān)鍵字跟本地電腦的一張圖片綁定了,再訪問(wèn)帶有“baidu”關(guān)鍵字的地址,就會(huì)被劫持,具體步驟如圖5所示:?
圖5(AutoResponder 選項(xiàng)卡)
啟用規(guī)則后(勾選enable rules),在瀏覽器輸入pan.baidu.com,會(huì)發(fā)現(xiàn)被劫持了,顯示的是綁定的本地圖片,而不是pan.baidu.com的頁(yè)面
圖6(被劫持)
4)Composer 自定義請(qǐng)求發(fā)送服務(wù)器,Parsed模式下你只需要提供簡(jiǎn)單的URLS地址即可,如圖7所示
圖7(Composer選項(xiàng)卡)
5)Filters 即過(guò)濾規(guī)則,通過(guò)設(shè)置過(guò)濾規(guī)則來(lái)過(guò)濾所需的http請(qǐng)求,如圖8所示,勾選左上角的Use Filters開啟過(guò)濾器:
圖8(Filters選項(xiàng)卡)
而這里有兩個(gè)最常用的過(guò)濾條件:Zone和Host
a.Zone 指定只顯示內(nèi)網(wǎng)(Intranet)或互聯(lián)網(wǎng)(Internet)的內(nèi)容,如圖9所示:
圖9
b.Host 指定顯示某個(gè)域名下的會(huì)話,如圖10所示,如果框框?yàn)辄S色,表示修改未生效,點(diǎn)擊紅圈里的文字即可:
圖10
6)timeline 請(qǐng)求響應(yīng)時(shí)間,在左側(cè)會(huì)話窗口點(diǎn)擊一個(gè)或多個(gè)請(qǐng)求,Timeline 便會(huì)顯示指定內(nèi)容從服務(wù)端傳輸?shù)娇蛻舳说臅r(shí)間,如圖11所示:
圖11(timeline選項(xiàng)卡)
四、Fiddler的其他功能介紹
?1、Fiddler 設(shè)置解密HTTPS的網(wǎng)絡(luò)數(shù)據(jù)
Fiddler可以通過(guò)偽造CA證書來(lái)欺騙瀏覽器和服務(wù)器。大概原理就是在瀏覽器面前Fiddler偽裝成一個(gè)HTTPS服務(wù)器,而在真正的HTTPS服務(wù)器面前Fiddler又裝成瀏覽器,從而實(shí)現(xiàn)解密HTTPS數(shù)據(jù)包的目的。
解密HTTPS需要手動(dòng)開啟,依次點(diǎn)擊:Tools –> Fiddler Options –>? HTTPS ->勾選Decrypt HTTPS traffic -> 點(diǎn)擊Yes,在彈出的對(duì)話框中選擇是即可,如圖12所示
圖12
2、Fiddler 內(nèi)置命令與斷點(diǎn)
FIddler斷點(diǎn)功能就是將請(qǐng)求截獲下來(lái),直接點(diǎn)擊Fiddler下圖的圖標(biāo)位置,就可以設(shè)置全部請(qǐng)求的斷點(diǎn),也可以在命令欄輸入斷點(diǎn)命令進(jìn)行截獲,如圖13所示
圖13(斷點(diǎn))
而斷點(diǎn)的命令則可以精確設(shè)置需要截獲那些請(qǐng)求,如下表所示:
| 命令 | 對(duì)應(yīng)請(qǐng)求項(xiàng) | 介紹 | 示例 |
| ? | All | 問(wèn)號(hào)后邊跟一個(gè)字符串,可以匹配出包含這個(gè)字符串的請(qǐng)求 | |
| > | Body | 大于號(hào)后面跟一個(gè)數(shù)字,可以匹配出請(qǐng)求大小,大于這個(gè)數(shù)字請(qǐng)求 | >1000 |
| < | Body | 小于號(hào)跟大于號(hào)相反,匹配出請(qǐng)求大小,小于這個(gè)數(shù)字的請(qǐng)求 | <100 |
| = | Result | 等于號(hào)后面跟數(shù)字,可以匹配HTTP返回碼 | =200 |
| @ | Host | @后面跟Host,可以匹配域名 | @www.baidu.com |
| select | Content-Type | select后面跟響應(yīng)類型,可以匹配到相關(guān)的類型 | select image |
| cls | All | 清空當(dāng)前所有請(qǐng)求 | cls |
| dump | All | 將所有請(qǐng)求打包成saz壓縮包,保存到“我的文檔\Fiddler2\Captures”目錄下 | dump |
| start | All | 開始監(jiān)聽請(qǐng)求 | start |
| stop | All | 停止監(jiān)聽請(qǐng)求 | stop |
| 斷點(diǎn)命令? | |||
| bpafter | All | bpafter后邊跟一個(gè)字符串,表示中斷所有包含該字符串的請(qǐng)求 | bpafter baidu(輸入bpafter解除斷點(diǎn)) |
| bpu | All | 跟bpafter差不多,只不過(guò)這個(gè)是收到請(qǐng)求了,中斷響應(yīng) | bpu baidu(輸入bpu解除斷點(diǎn)) |
| bps | Result | 后面跟狀態(tài)嗎,表示中斷所有是這個(gè)狀態(tài)碼的請(qǐng)求 | bps 200(輸入bps解除斷點(diǎn)) |
| bpv / bpm | HTTP方法 | 只中斷HTTP方法的命令,HTTP方法如POST、GET | bpv get(輸入bpv解除斷點(diǎn)) |
| g ?/ GO | All | 放行所有中斷下來(lái)的請(qǐng)求 | g |
?注:1、如bpafter斷點(diǎn)命令使用方法為:bpafter 后邊跟字符串->表示中斷所有包含該字符串的請(qǐng)求; ? bpafter ->表示解除剛剛的中斷斷點(diǎn);
2、該表來(lái)源于博客:http://blog.csdn.net/qq_21445563/article/details/51017605
3、中斷會(huì)話后修改表單內(nèi)容
不知道什么原因捕獲不了登錄界面的會(huì)話(除了博客園網(wǎng)站外,其他很多網(wǎng)站的會(huì)話都捕獲不到->解決方法:按上面‘Fiddler 設(shè)置解密HTTPS的網(wǎng)絡(luò)數(shù)據(jù)’所寫的步驟設(shè)置一下),所以下面的實(shí)例是來(lái)自小坦克的,詳細(xì)博客地址在圖片正文貼著。
看個(gè)實(shí)例,模擬博客園的登錄, 在IE中打開博客園的登錄頁(yè)面,輸入錯(cuò)誤的用戶名和密碼,用Fiddler中斷會(huì)話,修改成正確的用戶名密碼。這樣就能成功登錄:
1. 用IE 打開博客園的登錄界面? http://passport.cnblogs.com/login.aspx
2. 打開Fiddler,? 在命令行中輸入bpu http://passport.cnblogs.com/login.aspx
3. 輸入錯(cuò)誤的用戶名和密碼,點(diǎn)擊登錄
4. Fiddler 能中斷這次會(huì)話,選擇被中斷的會(huì)話,點(diǎn)擊Inspectors tab下的WebForms tab 修改用戶名密碼,然后點(diǎn)擊Run to Completion 如圖14所示。
5. 結(jié)果是正確地登錄了博客園(當(dāng)然Fiddler中也能修改Response)
圖14(該實(shí)例來(lái)源于博客:http://kb.cnblogs.com/page/130367/)
4、Fiddler中會(huì)話比較功能
選中2個(gè)會(huì)話,右鍵然后點(diǎn)擊Compare,就可以用WinDiff來(lái)比較兩個(gè)會(huì)話的不同了(注:需要安裝WinDiff,自行百度安裝就可以了,這里就不細(xì)說(shuō)安裝步驟),如圖15所示
圖15(compare功能)
5、Fiddler中提供的編碼工具
點(diǎn)擊Fiddler 工具欄上的TextWizard,? 這個(gè)工具可以Encode和Decode string,如圖16所示
圖16(TextWizard界面)
6、Fiddler中的查詢會(huì)話
Edit->Find Sessions(或Ctrl+F)打開Find Sessions的對(duì)話框,輸入關(guān)鍵字查詢你要的會(huì)話。 查詢到的會(huì)話會(huì)用黃色顯示,如圖17所示
圖17(find session界面)
7、Fiddler中的保存會(huì)話
有些時(shí)候我們需要把會(huì)話保存下來(lái),以便發(fā)給別人或者以后去分析。? 保存會(huì)話的步驟如下:File->Save->Selected Sessions
8、Fiddler中的script系統(tǒng)
首先先安裝SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如圖18所示
圖18(安裝SyntaxView插件)
安裝成功后Fiddler 就會(huì)多了一個(gè)Fiddler Script tab,如圖19所示:
圖19
在里面我們就可以編寫腳本了, 看個(gè)實(shí)例讓所有cnblogs的會(huì)話都顯示紅色。
把這段腳本放在OnBeforeRequest(oSession: Session) 方法下,并且點(diǎn)擊"Save script"
(該段腳本來(lái)源于博客:http://kb.cnblogs.com/page/130367/)
if (oSession.HostnameIs("www.cnblogs.com")) {oSession["ui-color"] = "red";
}
這樣所有的cnblogs的會(huì)話都會(huì)顯示紅色。
9、如何在VS調(diào)試網(wǎng)站的時(shí)候使用Fiddler
我們?cè)谟胿isual stuido 開發(fā)ASP.NET網(wǎng)站的時(shí)候也需要用Fiddler來(lái)分析HTTP, 默認(rèn)的時(shí)候Fiddler是不能嗅探到localhost的網(wǎng)站。不過(guò)只要在localhost后面加個(gè)點(diǎn)號(hào),Fiddler就能嗅探到。
例如:原本ASP.NET的地址是 http://localhost:9999/Default.aspx,? 加個(gè)點(diǎn)號(hào)后,變成 http://localhost.:9999/Default.aspx 就可以了
?
關(guān)于Fiddler的詳細(xì)介紹就到這里了,其他數(shù)據(jù)抓包分析和手機(jī)抓包分析下次再操作。
?
轉(zhuǎn)自:http://www.cnblogs.com/Chilam007/p/6985379.html
轉(zhuǎn)載于:https://www.cnblogs.com/abcd19880817/p/7345736.html
總結(jié)
以上是生活随笔為你收集整理的Fiddler的详细介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js点击事件在苹果ios端失效的解决方法
- 下一篇: 提示Microsoft office w