佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 抓包工具Fiddler的使用方法詳解(Fiddler中文教程)

抓包工具Fiddler的使用方法詳解(Fiddler中文教程)

熱門標(biāo)簽:銀行業(yè)務(wù) 美圖手機(jī) 鐵路電話系統(tǒng) 智能手機(jī) 網(wǎng)站文章發(fā)布 服務(wù)器配置 檢查注冊(cè)表項(xiàng) 呼叫中心市場(chǎng)需求

Fiddler簡(jiǎn)介

Fiddler(中文名稱:小提琴)是一個(gè)HTTP的調(diào)試代理,以代理服務(wù)器的方式,監(jiān)聽系統(tǒng)的Http網(wǎng)絡(luò)數(shù)據(jù)流動(dòng),F(xiàn)iddler可以也可以讓你檢查所有的HTTP通訊,設(shè)置斷點(diǎn),以及Fiddle所有的“進(jìn)出”的數(shù)據(jù)(我一般用來(lái)抓包)

Fiddler還包含一個(gè)簡(jiǎn)單卻功能強(qiáng)大的基于JScript .NET事件腳本子系統(tǒng),它可以支持眾多的HTTP調(diào)試任務(wù)。

Fiddler官方網(wǎng)站提供了大量的幫助文檔和視頻教程,這是學(xué)習(xí)Fiddler的最好資料

Fiddler_官方網(wǎng)站
Fiddler_官方文檔
Fiddler_官方插件

Fiddler抓包工作原理

Fiddler是以代理WEB服務(wù)器的形式工作的,瀏覽器與服務(wù)器之間通過建立TCP連接以HTTP協(xié)議進(jìn)行通信,瀏覽器默認(rèn)通過自己發(fā)送HTTP請(qǐng)求到服務(wù)器

它使用代理地址:127.0.0.1, 端口:8888. 當(dāng)Fiddler開啟會(huì)自動(dòng)設(shè)置代理, 退出的時(shí)候它會(huì)自動(dòng)注銷代理,這樣就不會(huì)影響別的程序。

不過如果Fiddler非正常退出,這時(shí)候因?yàn)镕iddler沒有自動(dòng)注銷,會(huì)造成網(wǎng)頁(yè)無(wú)法訪問。解決的辦法是重新啟動(dòng)下Fiddler。

Fiddler主界面

Fiddler的主界面分為 工具面板、會(huì)話面板、監(jiān)控面板、狀態(tài)面板

Fiddler的工具面板

說明注釋、重新請(qǐng)求、刪除會(huì)話、繼續(xù)執(zhí)行、流模式/緩沖模式、解碼、保留會(huì)話、監(jiān)控指定進(jìn)程、尋找、保存會(huì)話、切圖、計(jì)時(shí)、打開瀏覽器、清除IE緩存、編碼/解碼工具、彈出控制監(jiān)控面板、MSDN、幫助

Fiddler兩種抓包模式

緩沖模式(Buffering Mode)Fiddler直到HTTP響應(yīng)完成時(shí)才將數(shù)據(jù)返回給應(yīng)用程序??梢钥刂祈憫?yīng),修改響應(yīng)數(shù)據(jù)。但是時(shí)序圖有時(shí)候會(huì)出現(xiàn)異常
流模式(Streaming Mode)Fiddler會(huì)即時(shí)將HTTP響應(yīng)的數(shù)據(jù)返回給應(yīng)用程序。更接近真實(shí)瀏覽器的性能。時(shí)序圖更準(zhǔn)確,但是不能控制響應(yīng)。

Fiddler的會(huì)話面板

Fiddler的會(huì)話面板圖標(biāo)

Fiddler的監(jiān)控面板

Fiddler的統(tǒng)計(jì)報(bào)表

請(qǐng)求總數(shù)、請(qǐng)求包大小、響應(yīng)包大小。

請(qǐng)求起始時(shí)間、響應(yīng)結(jié)束時(shí)間、握手時(shí)間、等待時(shí)間、路由時(shí)間、TCP/IP、傳輸時(shí)間。
HTTP狀態(tài)碼統(tǒng)計(jì)。

返回的各種類型數(shù)據(jù)的大小統(tǒng)計(jì)以及餅圖展現(xiàn)。

Fiddler的時(shí)間軸

每個(gè)網(wǎng)絡(luò)請(qǐng)求都會(huì)經(jīng)歷域名解析、建立連接、發(fā)送請(qǐng)求、接受數(shù)據(jù)等階段。

把多個(gè)請(qǐng)求以時(shí)間作為 X 軸,用圖表的形式展現(xiàn)出來(lái),就形成了瀑布圖。在Fiddler中,只要在左側(cè)選中一些請(qǐng)求,右側(cè)選擇Timeline標(biāo)簽,就可以看到這些請(qǐng)求的瀑布圖

綠色的請(qǐng)求表示這是一個(gè)“有條件的請(qǐng)求”。

HTTP 協(xié)議定義了 5 個(gè)條件請(qǐng)求頭部,最常見的兩個(gè)是“If-Modified-Since”和“If-None-Match”。

服務(wù)器根據(jù)這兩個(gè)頭部來(lái)驗(yàn)證本地緩存是否過期,如果過期則正常返回資源的最新版本;

否則僅返回 304 Not Modified,瀏覽器繼續(xù)使用本地緩存。包含條件請(qǐng)求頭部的請(qǐng)求用綠色顯示,否則用黑色。

有陰影線的請(qǐng)求是緩沖模式下的請(qǐng)求,實(shí)心的是流模式下的請(qǐng)求。

Fiddler 提供了緩沖(Buffering)和流(Streaming)兩種抓包模式

緩沖模式下,F(xiàn)iddler 會(huì)在響應(yīng)完成時(shí)才將數(shù)據(jù)返回給應(yīng)用程序(通常是瀏覽器),這種模式下可以控制響應(yīng),方便地修改響應(yīng)內(nèi)容;

流模式下,F(xiàn)iddler 會(huì)實(shí)時(shí)返回響應(yīng)數(shù)據(jù)給瀏覽器,但沒辦法控制響應(yīng)。一般使用流模式,瀑布圖會(huì)更真實(shí)一些。

這兩種模式可以通過 Fiddler 的工具欄選擇。特別的,通過 Fiddler 的“AutoResponder”功能返回的響應(yīng),只能是緩沖模式。

請(qǐng)求條的不同顏色對(duì)應(yīng)著不同類型的響應(yīng),根據(jù)響應(yīng)頭的 MIME Type 來(lái)歸類。

如淺綠色表示圖片類型的響應(yīng);深綠色是 JavaScript;紫色是 CSS;其它都是藍(lán)色。

請(qǐng)求中的黑色豎線,表示的是瀏覽器收到服務(wù)端響應(yīng)的第一個(gè)字節(jié)這一時(shí)刻。這個(gè)時(shí)間受 DNS 解析、建立連接、發(fā)送請(qǐng)求、等待服務(wù)端響應(yīng)等步驟的影響。

請(qǐng)求條后面的圖標(biāo)表示響應(yīng)的某些特征。如軟盤圖標(biāo)表示這個(gè)響應(yīng)正文從本地獲得,也就是說服務(wù)端返回了 304;

閃電表示這是 Fiddler 的“AutoResponder”的響應(yīng);

向下的箭頭表示響應(yīng)是 302,需要重定向;

紅色感嘆號(hào)說明這個(gè)請(qǐng)求有錯(cuò)誤發(fā)生(狀態(tài)碼是 4XX 或 5XX)。

特別的,如果請(qǐng)求條后面有一個(gè)紅色的X,說明服務(wù)端響應(yīng)完這個(gè)請(qǐng)求之后,斷開了連接。

出現(xiàn)這種情況一般有兩種可能:

HTTP/1.0 的響應(yīng)中沒有 Connection: Keep-Alive;

或者是 HTTP/1.1 的響應(yīng)中包含了 Connection: close。

使用持久連接可以省去建立連接的開銷,也可以減小 TCP 慢啟動(dòng)和其它擁塞控制機(jī)制帶來(lái)的影響,總之是好處多多。

請(qǐng)求前面的紅色圓圈表示這個(gè)連接是新建的,綠色表示是復(fù)用的。

上面的圓圈表示的是瀏覽器到 Fiddler 的連接,下面的圓圈是 Fiddler 到服務(wù)端的連接。

Fiddler的狀態(tài)面板

控制臺(tái)Fiddler的左下角有一個(gè)命令行工具叫做QuickExec,允許你直接輸入命令。

Fiddler常用命令有:

命令 解釋

help 打開官方的使用頁(yè)面介紹,所有的命令都會(huì)列出來(lái)

cls 清屏 (Ctrl+x 也可以清屏)

select 選擇會(huì)話的命令

?.png 用來(lái)選擇png后綴的圖片

bpu 截獲request

bpafter 截獲response

Request消息的結(jié)構(gòu)

Response消息的結(jié)構(gòu)

Fiddler的常用功能

Fiddler監(jiān)聽HTTPS

Fiddler不僅能監(jiān)聽HTTP請(qǐng)求而且默認(rèn)情況下也能捕獲到HTTPS請(qǐng)求,Tool -> Fiddler Option -> HTTPS下面進(jìn)行設(shè)置,勾選上“Decrypt HTTPS traffic”,如果不必監(jiān)聽服務(wù)器端得證書錯(cuò)誤可以勾上“Ignore server certification errors”,也可以跳過幾個(gè)指定的HOST來(lái)縮小或者擴(kuò)大監(jiān)聽范圍。

HOST切換

模擬各類場(chǎng)景

通過GZIP壓縮,測(cè)試性能

模擬Agent測(cè)試,查看服務(wù)端是否對(duì)不同客戶端定制響應(yīng)

模擬慢速網(wǎng)絡(luò),測(cè)試頁(yè)面的容錯(cuò)性

禁用緩存,方便調(diào)試一些靜態(tài)文件或測(cè)試服務(wù)端響應(yīng)情況

根據(jù)一些場(chǎng)景自定義規(guī)則


低網(wǎng)速模擬有時(shí)出于兼容性考慮或者對(duì)某處進(jìn)行性能優(yōu)化,在低網(wǎng)速下往往能較快發(fā)現(xiàn)問題所在也容易發(fā)現(xiàn)性能瓶頸,可惜其他調(diào)試工具沒能提供低網(wǎng)速環(huán)境,而強(qiáng)大的Fiddler考慮到了這一點(diǎn),能夠進(jìn)行低網(wǎng)速模擬設(shè)置Rules > Performance > Stimulate Modem Speeds。

Compare(對(duì)比文本)

Composer(構(gòu)造器)

請(qǐng)求構(gòu)造顧名思義就是我們可以模擬請(qǐng)求,也就是說我們可以借助Fiddler的Composer 在不改動(dòng)開發(fā)環(huán)境實(shí)際代碼的情況下修改請(qǐng)求中的參數(shù)值并且方便的重新調(diào)用一次該請(qǐng)求,然后相比較2次請(qǐng)求響應(yīng)有何具體不同。任何一個(gè)請(qǐng)求參數(shù)只要是合法的取值再次調(diào)用后都會(huì)有相應(yīng)的響應(yīng),那么你想要的任意一個(gè)合法請(qǐng)求組合自然也能夠按照你的意愿構(gòu)造出來(lái),然后再次調(diào)用以及查看返回?cái)?shù)據(jù)。

將該請(qǐng)求鼠標(biāo)左鍵單擊拖入Fiddler右側(cè)Request Builder標(biāo)簽內(nèi)并修改原請(qǐng)求參數(shù)OutPutType=JSON為OutPu tType=XML,然后點(diǎn)擊Execute按鈕再次觸發(fā)調(diào)用請(qǐng)求

 

雙擊這次請(qǐng)求包在Inspectors標(biāo)簽下查看返回?cái)?shù)據(jù)為XML格式,而JSON格式一欄為空:


Filters(過濾監(jiān)控)

對(duì)一個(gè)重新載入的頁(yè)面進(jìn)行抓包,如果包的條目過多而你需要關(guān)注的就那么幾項(xiàng)的話,可以使用Fiddler的過濾器Filters進(jìn)行抓包,那么抓包時(shí)只會(huì)抓取你希望抓到的那些包。切換到Filters標(biāo)簽勾選Use filter,以便激活過濾器,這樣下面的各種過濾方式就可以進(jìn)行選擇了。


AutoResponder(請(qǐng)求重定向)

所謂請(qǐng)求無(wú)非就是需要調(diào)用到的一些資源(包括JS、CSS和圖片等),所謂重定向就是將頁(yè)面原本需要調(diào)用的資源指向其他資源(你能夠控制的資源或者可以引用到的資源)。

你可以將前臺(tái)服務(wù)器的諸多或者某個(gè)資源在本地做個(gè)副本,如果正常網(wǎng)絡(luò)訪問環(huán)境下該資源出現(xiàn)了BUG而導(dǎo)致開發(fā)環(huán)境崩潰時(shí),可以先將這個(gè)資源的請(qǐng)求重定向到本地副本,這樣就可以繼續(xù)進(jìn)行開發(fā)調(diào)試你的頁(yè)面,從而大量節(jié)省資源維護(hù)的等待時(shí)間。

你也可以將多人同時(shí)維護(hù)的某個(gè)JS文件復(fù)制一份出來(lái)在本地,當(dāng)你的開發(fā)調(diào)試收到他人調(diào)試代碼干擾時(shí),可以將這個(gè)JS的調(diào)用重定向到本地?zé)o干擾的JS文件,進(jìn)行無(wú)干擾開發(fā),功能開發(fā)完成并調(diào)試OK之后再將你的代碼小心合入到開發(fā)環(huán)境中,這樣就可以避免受到他人干擾專心搞你的模塊開發(fā),也就是說能夠?qū)S文件脫離開發(fā)環(huán)境卻不影響線上調(diào)試。

你還可以將樣式文件或者圖片指向本地。

Fiddler移動(dòng)端抓包

Fiddler不但能截獲各種瀏覽器發(fā)出的HTTP請(qǐng)求, 也可以截獲各種智能手機(jī)發(fā)出的HTTP/HTTPS請(qǐng)求。

Fiddler能捕獲IOS,Andriod,WinPhone,設(shè)備發(fā)出的請(qǐng)求,同理,也可以截獲IPad, MacBook的等設(shè)備發(fā)出的HTTP/HTTPS。

前提條件是:安裝Fiddler的機(jī)器,跟Iphone 在同一個(gè)網(wǎng)絡(luò)里, 否則IPhone不能把HTTP發(fā)送到Fiddler的機(jī)器上來(lái)。

具體操作步驟如下:

Fiddler設(shè)置打開Fiddler, Tools-> Fiddler Options。(配置完后記得要重啟Fiddler).

選中"Allow remote computers to connect". 是允許別的機(jī)器把HTTP/HTTPS請(qǐng)求發(fā)送到Fiddler上來(lái)

獲取Fiddler所在機(jī)器的IP

安裝Fiddler證書這一步是為了讓Fiddler能捕獲HTTPS請(qǐng)求。 如果你只需要截獲HTTP請(qǐng)求, 可以忽略這一步

首先要知道Fiddler所在的機(jī)器的IP地址: 假如我安裝了Fiddler的機(jī)器的IP地址是:192.168.1.104打開IPhone 的Safari, 訪問 http://192.168.1.104:8888, 點(diǎn)"FiddlerRoot certificate" 然后安裝證書


打開IPhone, 找到你的網(wǎng)絡(luò)連接, 打開HTTP代理, 輸入Fiddler所在機(jī)器的IP地址(比如:192.168.1.104) 以及Fiddler的端口號(hào)8888

以上既是抓包工具Fiddler的使用方法詳細(xì)介紹,更多關(guān)于Fiddler的使用方法文章請(qǐng)點(diǎn)擊下方相關(guān)文章鏈接

您可能感興趣的文章:
  • fiddler抓包小技巧之自動(dòng)保存抓包數(shù)據(jù)的實(shí)現(xiàn)方法分析【可根據(jù)需求過濾】
  • 解決Fiddler在win7系統(tǒng)下的安全證書問題
  • fiddler使用方法之Fiddler顯示IP,Fiddler中文亂碼解決方法以及fiddler模擬發(fā)送get/post請(qǐng)求
  • Fiddler實(shí)現(xiàn)手機(jī)抓包之小白入門必看
  • Fiddler如何抓取手機(jī)APP數(shù)據(jù)包
  • 軟件測(cè)試之使用Fiddler實(shí)現(xiàn)弱網(wǎng)測(cè)試

標(biāo)簽:紅河 上海 滄州 樂山 長(zhǎng)治 沈陽(yáng) 河南 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《抓包工具Fiddler的使用方法詳解(Fiddler中文教程)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    望江县| 广西| 饶平县| 田阳县| 黄冈市| 宁德市| 寻甸| 福泉市| 荥经县| 安泽县| 长寿区| 桓台县| 甘谷县| 民权县| 苍南县| 疏勒县| 吕梁市| 黔西县| 涡阳县| 兴安县| 绥江县| 田阳县| 定边县| 佳木斯市| 宁陕县| 贡嘎县| 邯郸县| 万全县| 略阳县| 鄂托克前旗| 汉寿县| 西平县| 永修县| 新巴尔虎左旗| 洛宁县| 收藏| 清河县| 会昌县| 拉孜县| 巩留县| 虎林市|