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