在開(kāi)發(fā)的過(guò)程中使用過(guò)不少的HTTP網(wǎng)絡(luò)抓包工具,研究過(guò)HTTPAnalyzer,HttpWatch枚碗,感覺(jué)都很不錯(cuò)。
記不清什么時(shí)候自己搜了一個(gè)工具剔猿,它就是Fiddler视译,自從使用了Fiddler之后,我越來(lái)越喜歡它了」榫矗現(xiàn)在基本上不再使用其它的
抓包工具了酷含。因?yàn)槲野l(fā)現(xiàn),F(xiàn)iddler實(shí)在是太強(qiáng)大了汪茧,它幾乎囊括了大部分的抓包請(qǐng)求椅亚,當(dāng)然最給力的還是它 的斷點(diǎn)調(diào)試功能,
尤其還有使用本地文件代替服務(wù)器文件這個(gè)實(shí)用的功能舱污,這樣程序員就不要每次出問(wèn)題修改服務(wù)器文件了呀舔,因?yàn)榉?wù)器文件一般不會(huì)讓人輕易修改
,再者也許程序員沒(méi)有權(quán)限修改扩灯,這個(gè)功能超贊媚赖!
之后,我上了Fiddler的官網(wǎng)之后珠插,找到了它上面的幾個(gè)Demo的小教程惧磺,更加確定我的想法了。以后就是它了捻撑,F(xiàn)iddler磨隘!
Demo地址為:http://www.fiddler2.com/Fiddler/help/video/default.asp
國(guó)內(nèi)的程序員是不少缤底,但是國(guó)內(nèi)的程序員最大的悲劇不是知識(shí)面不夠,更不是不聰明番捂。我感覺(jué)國(guó)內(nèi)的程序員最大的悲劇就是英語(yǔ)不好个唧。
哎,誰(shuí)讓計(jì)算機(jī)是外國(guó)人發(fā)明的呢设预,沒(méi)辦法徙歼,那我們只好學(xué)好英語(yǔ)了。
鑒于Fiddler這個(gè)好工具太強(qiáng)大了鳖枕,我有個(gè)想法鲁沥,想把它推薦給我們國(guó)內(nèi)的程序員們,所以我決定有時(shí)間就翻譯一下Fiddler的使用教程耕魄,
首先聲明:我翻譯的水平肯定跟我的技術(shù)知識(shí)和能力有關(guān)画恰,希望大家能夠理解,這個(gè)教程主要是我翻譯的吸奴,不是我自己寫的允扇。
今天讓我們開(kāi)始吧。
原文地址:http://www.fiddler2.com/Fiddler/help/ui.asp
Fiddler用戶界面:
下面這個(gè)界面截取的是我自己的Fiddler则奥。
Web 會(huì)話列表考润。
就是指上面左側(cè)的內(nèi)容部分。
Web會(huì)話列表包括了所有的從你的電腦發(fā)出的HTTP請(qǐng)求读处。為了自己的使用方便糊治,你可以自己調(diào)整會(huì)話列表的內(nèi)容,你也可以單擊列表的頂部來(lái)對(duì)會(huì)話列表來(lái)排序罚舱。
會(huì)話列表頂部包含的信息有以下內(nèi)容:
#- 為了使用方便井辜,F(xiàn)iddler 為你生成的會(huì)話列表的ID
Result-?HTTP響應(yīng)的狀態(tài)碼Learn more...
Protocol- 本次會(huì)話使用的協(xié)議類型(HTTP/HTTPS/FTP)
Host- 發(fā)送本次請(qǐng)求的主機(jī)名
URL- 本次請(qǐng)求的路徑和具體文件名
Body-?響應(yīng)返回內(nèi)容的大小
Caching-是否使用了緩存
Process- 發(fā)送本次請(qǐng)求的程序進(jìn)程的名字
Content-Type-?響應(yīng)的響應(yīng)頭的 Content-Type 值
Custom- 通過(guò)腳本設(shè)置的文本域.Learn more...
Comments -通過(guò)腳本或者在會(huì)話列表中右鍵添加的注釋。
在Fiddler v2.2.0.5 及其以上的版本管闷,你可以添加自己的新列粥脚。
在會(huì)話列表中默認(rèn)的文本的顏色從HTTP的響應(yīng)的狀態(tài)繼承而來(lái)(紅色代表錯(cuò)誤,黃色代表需要授權(quán))CONNECT類型為灰色包个,
還有返回類型(CSS文件為紫色刷允,HTML文件為藍(lán)色,JS腳本為綠色碧囊,圖片為灰色)你可以通過(guò)使用ui-color標(biāo)志位來(lái)改變和重寫列表的默認(rèn)顏色树灶。
(提示:ui-color在Fiddler的腳本配置文件中天通,需要安裝FiddlerScript)
為了查看的方便每一個(gè)請(qǐng)求的前面都有一個(gè)圖標(biāo)來(lái)表示土砂。
上面的圖標(biāo)后面的英文的意思依次為:
1.請(qǐng)求正在被發(fā)往服務(wù)器
2.正在從服務(wù)器接收請(qǐng)求內(nèi)容
3.請(qǐng)求被一個(gè)斷點(diǎn)停住了萝映。
4.響應(yīng)被一個(gè)斷點(diǎn)停住了。
5.請(qǐng)求使用HEAD方法奥秆,響應(yīng)應(yīng)該沒(méi)有響應(yīng)體构订。
6.請(qǐng)求使用POST方法
7.請(qǐng)求使用了HTTPS
8.返回內(nèi)容為HTML頁(yè)面
9.返回內(nèi)容為JS腳本
10.返回內(nèi)容為CSS
11.返回內(nèi)容為XML文件
12.返回內(nèi)容為JSON文件
13.返回內(nèi)容為音頻文件
14.返回內(nèi)容為視頻文件
15.返回內(nèi)容為Silverlight
16.返回內(nèi)容為Flash
17.返回內(nèi)容為字體文件
18.一般成功的響應(yīng)
19.響應(yīng)被重定向了,通過(guò)HTTP/300,301,302,303 or 307
20.HTTP 304 請(qǐng)求
21.返回一個(gè)需要客戶端證書驗(yàn)證的請(qǐng)求
22.服務(wù)器端錯(cuò)誤
23.會(huì)話被客戶端亥宿、Fiddler砂沛、服務(wù)器意外終止碍庵。
和會(huì)話列表的交互
在一個(gè)或者多個(gè)會(huì)話上面單擊右鍵會(huì)出現(xiàn)下面的菜單
小提示:你可以通過(guò)在FiddlerScript中使用ContextAction標(biāo)志為這個(gè)菜單添加菜單項(xiàng)。
在“復(fù)制”菜單上面有以下內(nèi)容:
Session- 以純文本和HTML語(yǔ)法加亮形式復(fù)制原始的請(qǐng)求內(nèi)容到剪貼板卑吭。
Just URL-?僅僅復(fù)制主機(jī)名和URL地址
Headers Only -以純文本和HTML語(yǔ)法加亮形式復(fù)制請(qǐng)求頭和響應(yīng)頭到剪貼板豆赏。
Full Summary -為了粘貼到Excel中方便掷邦,以純文本和HTML語(yǔ)法加亮形式把請(qǐng)求的各個(gè)列的信息復(fù)制到剪貼板抚岗。
Terse Summary -復(fù)制請(qǐng)求地址和響應(yīng)狀態(tài)到剪貼板向抢。
在“保存”菜單上面有以下內(nèi)容:
Session > In ArchiveZIP- 把相關(guān)的請(qǐng)求內(nèi)容打包為一個(gè) .SAZ 文件.
Session- 把請(qǐng)求和響應(yīng)的所有內(nèi)容存為一個(gè)文本文件
Headers Only -把請(qǐng)求頭和響應(yīng)頭存為一個(gè)文本文件
Full Request -把請(qǐng)求的所有內(nèi)容存為一個(gè)文本文件
Request Body- 把請(qǐng)求體存為一個(gè)文本文件,通常是POST的數(shù)據(jù)包艘希。
Full Response -把響應(yīng)的所有內(nèi)容存為一個(gè)文本文件
Response Body -把響應(yīng)體存為一個(gè)文件覆享,通常是HTML文件或者圖片撒顿。
AutoResponder 快速引用
今天我們來(lái)看一下Fiddler的AutoResponder選項(xiàng)卡的強(qiáng)大功能。
Fiddler的AutoResponder 選項(xiàng)卡允許你使用本地硬盤的文件來(lái)作為返回內(nèi)容荚板,而不是把請(qǐng)求發(fā)往服務(wù)器。
創(chuàng)建AutoResponder 規(guī)則啸驯。
使用AutoResponder選項(xiàng)卡,你可以創(chuàng)建一個(gè)匹配規(guī)則和一個(gè)響應(yīng)字符串罚斗,如果請(qǐng)求的URL地址跟你的匹配規(guī)則相匹配,
Fiddler就會(huì)自動(dòng)執(zhí)行這個(gè)對(duì)應(yīng)的響應(yīng)字符串针姿。
小提示:
匹配規(guī)則會(huì)按照它在規(guī)則列表中出現(xiàn)的順序進(jìn)行匹配袱吆,?按+鍵可以使一個(gè)匹配規(guī)則向上移一項(xiàng)距淫,按-鍵可以使一個(gè)匹配規(guī)則向下移一項(xiàng)。
使用右鍵菜單, 你可以導(dǎo)出一個(gè)包含了所有的匹配規(guī)則和對(duì)應(yīng)響應(yīng)字符串的后綴為.FARX 的文件蓬衡。
你也可以通過(guò)導(dǎo)入? .SAZor.FARX文件來(lái)創(chuàng)建基于以前創(chuàng)建的規(guī)則列表和響應(yīng)列表.
你可以從會(huì)話列表中拖動(dòng)一個(gè)會(huì)話到AutoResponder選項(xiàng)卡中來(lái)重新演示以前的響應(yīng). 你也可以選中一條規(guī)則缴啡,然后回車這樣就可以來(lái)編輯一條規(guī)則壁晒。
你也可以直接從Windows的資源管理器中拖動(dòng)一個(gè)文件到?AutoResponder選項(xiàng)卡中來(lái)為這些文件創(chuàng)建規(guī)則和響應(yīng)谬晕。
匹配規(guī)則:
純粹字符串
Fiddler將會(huì)按照不區(qū)分字母大小寫來(lái)匹配字符串。
Demo如下:
RuleMatches
*http://www.example.com/Path1/query=example
EXAMPLEhttp://www.example.com/Path1/query=example
path1/http://www.example.com/Path1/query=example
queryhttp://www.example.com/Path1/q=Query
跟上面的類似携取,F(xiàn)iddler還有一個(gè)非字符串匹配的規(guī)則:NOT:
Demo如下:下面的都匹配攒钳。
RuleMatches
NOT:EXAMPLEhttp://www.test.com/Path1/query=test
NOT:path1/http://www.example.com/Path2/query=example
NOT:queryhttp://www.example.com/Path1/q
Exact匹配:
表達(dá)式以EXACT:為前綴,此匹配區(qū)分字母大小寫
Demo如下:
RuleMatches
EXACT:http://www.example.com/pathhttp://www.example.com/path
EXACT:http://www.example.com/pathhttp://www.example.com/Path(不匹配- 大小寫不一樣)
EXACT:http://www.example.com/pathhttp://www.example.com/path/q=Query(不匹配- 子字符串不一樣)
正則表達(dá)式:
Fiddler支持以regex:為前綴的正則表達(dá)式語(yǔ)法歹茶,使用.+匹配一個(gè)或多個(gè)字符,使用.*匹配0個(gè)或多個(gè)字符你弦,使用^匹配字符串開(kāi)始位置惊豺,使用$匹配字符串結(jié)尾位置。
Demo如下:
RuleMatches
regex:.+http://www.example.com/Path1/query=example
regex:.+\.jpg.*http://www.example.com/Path1/query=foo.jpg&bar
http://www.example.com/Path1/query=example.jpg
regex:.+\.jpg$http://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending)
http://www.example.com/Path1/query=example.jpg
regex:.+\.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match? - improper ending)
http://www.example.com/Path1/query=example.gif
http://www.example.com/Path1/query=example.Gif(No Match - mismatched case)
http://www.example.com/Path1/query=example.bmp
regex:(?insx).+\.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending)
http://www.example.com/Path1/query=example.gif
http://www.example.com/Path1/query=example.Gif
http://www.example.com/Path1/query=example.bmp
想要學(xué)習(xí)更多正則表達(dá)式的請(qǐng)看這里here.
響應(yīng)字符串
除了簡(jiǎn)單的返回文件禽作,AutoResponder選項(xiàng)卡還有更多的用處........
Beyond simply returning files, the AutoResponder can also perform special actions...
Action StringResult...
filename返回文件內(nèi)容作為消息響應(yīng)
http://targetURL返回此URL的內(nèi)容作為消息響應(yīng)
*redir:http://targetURL返回一個(gè)跳轉(zhuǎn)URL尸昧,注意,不是一般的URL旷偿,一定要確保此URL知道要到哪里去烹俗,以便攜帶上相關(guān)的Cookie信息。
*bpu設(shè)置一個(gè)斷點(diǎn)在發(fā)往服務(wù)器以前停住此請(qǐng)求Non-final action.
*bpafter設(shè)置一個(gè)斷點(diǎn)在接收響應(yīng)之前停住此請(qǐng)求Non-final action.
*delay:####設(shè)置在發(fā)給服務(wù)器之前的延時(shí)萍程,以毫秒為單位幢妄。Non-final action.
*header:Name=Value設(shè)置請(qǐng)求頭的內(nèi)容,如果沒(méi)有那個(gè)請(qǐng)求頭茫负,則新建一個(gè)請(qǐng)求頭Name并設(shè)置為ValueNon-final action.
*flag:Name=Value設(shè)置Session Flag的內(nèi)容蕉鸳,如果沒(méi)有那個(gè)Session Flag,則新建一個(gè)Session FlagName并設(shè)置為ValueNon-final action.
*CORSPreflightAllow返回一個(gè)響應(yīng)標(biāo)志CORS是否被允許忍法。.
*reset使用一個(gè)TCP/IP RST 重新設(shè)置客戶端的鏈接潮尝。
*drop馬上關(guān)閉客戶端鏈接。
*exit這時(shí)候停止處理匹配饿序。
如果你的匹配規(guī)則使用了正則表達(dá)式勉失,那么響應(yīng)也可以使用正則表達(dá)式,更多信息請(qǐng)看這里:Learn more...
標(biāo)志為Non-final action.的請(qǐng)求會(huì)匹配多個(gè)響應(yīng)規(guī)則原探,如果一個(gè)規(guī)則是final action 乱凿,那么再找到匹配之后,匹配過(guò)程就會(huì)結(jié)束咽弦,對(duì)于那條請(qǐng)求來(lái)說(shuō)就不會(huì)再匹配其它的規(guī)則告匠。
延遲響應(yīng)
在一個(gè)請(qǐng)求返回來(lái)之前你可以設(shè)置一下請(qǐng)求延遲返回的時(shí)間。選中Enable Latency復(fù)選框离唬,可以設(shè)置所有的規(guī)則的延遲后专。
右鍵單擊一個(gè)或者多個(gè)規(guī)則,然后選擇Set Latency就可以設(shè)置具體的延遲時(shí)間输莺。如果你想調(diào)整現(xiàn)存的延遲時(shí)間戚哎,只需要輸入一個(gè)帶有+或者-號(hào)的數(shù)字即可裸诽。
如果你想在現(xiàn)在的延遲時(shí)間基礎(chǔ)上面減少500毫秒,那么在彈出的輸入框中輸入-500即可型凳。
好了丈冬,今天就到這里吧,O(∩_∩)O~
下面附上原文地址: