摘要: web開發(fā)者的利器,fiddler抓包工具。
1.引言
在當前web開發(fā)工具滿天飛的年代,很難想象當時在沒有這些工具的年代,我們是怎么挺過來的。既然時代已經(jīng)賦予我們?nèi)绱酥嗟木脊ぞ撸敲淳驮诠ぷ髦斜M情享用吧。
在需要截獲客戶端與服務器端之間的通訊數(shù)據(jù)時,我們會使用httpwatch或firebug。
在跟蹤樣式或調(diào)試js代碼時,我們會在瀏覽器下按下F12,來啟用開發(fā)者工具;會在js代碼中加上debugger或借助開發(fā)者工具的斷點(breakpoint)進行逐步調(diào)試。
以上工具或方法都能很好的解決我們面臨的問題,但如果服務器在遠程而非本地,在我們不能登錄到服務器的情況下,我們?nèi)绾卧诖a中添加debugger,或者又如何修改一些代碼嘗試看看運行效果呢?此時我們必須借助另一利器:Fiddler。
ps: Fiddler官方網(wǎng)站及下載地址 www.fiddlertool.com , 它是個免費軟件。 同類的商業(yè)產(chǎn)品有HTTPWatch:http://www.httpwatch.com 。
2.Fiddler代理工作原理
Fiddler是微軟開發(fā)的一個工具,可用來截獲本機與服務器之前的所有http通信,在這個過程中充當一個代理的角色。
在我們啟動Fiddler的時候,F(xiàn)iddler便已經(jīng)作為了一個代理服務器,如下圖所示:
作為系統(tǒng)代理,所有的來自互聯(lián)網(wǎng)服務(WinInet)的http請求在到達目標Web服務器的之前都會經(jīng)過Fiddler;同樣的,所有的Http響應都會在返回客戶端之前流經(jīng)Fiddler。如下圖所示:
3.Fiddler界面描述
4.Fiddler請求中斷
可 以進入菜單“Rules/Automatic Breakpoints”來設置對請求進行中斷,設計的時機可以是Before Requests、After Response。這樣我們就可以利用工具修改提交到服務器的數(shù)據(jù)信息(如:請求頭或請求體等),也可以修改從服務器端返回的數(shù)據(jù)。
- 以下為截獲提交到百度的數(shù)據(jù),我們可以對提交的信息進行修改。
- 以下為截獲到百度返回的數(shù)據(jù),我們可以對返回的信息進行修改。(注意:如果返回的數(shù)據(jù)進行了壓縮,那么默認將為亂碼,可以使用頂部菜單“Rules/Remove All Encodings”來解碼。)
5.Fiddler請求內(nèi)容替換
在“Fiddler請求中斷”章節(jié),我們已經(jīng)介紹了如何修改提交到服務器端的數(shù)據(jù)及修改服務器端返回的數(shù)據(jù),但如果覺得這樣仍不過癮,我們也可以完全用本地文件來代替需要從服務器下載的文件,這在我們診斷跟蹤一些js文件但卻不能修改js文件時非常有用。
比 如:在用瀏覽器測試P頁面時,P頁面引入了一個js資源文件R.js,由于R.js文件在服務器S上,而我此時又不能登錄S服務器(沒有S服務器的帳 號),此時我們就可以通過瀏覽器將R.js文件下載到本地,然后對本地的R.js文件進行調(diào)整,最后通過設置Fiddler,將R.js文件的請求使用本 地的R.js文件。截圖如下:
其中
EXACT表示完整匹配URL時,才進行映射處理
regext:(?insx)表示可以使用正則來匹配哪些URL需要進行映射處理
其他一些參數(shù)不再一一說明。