工作原理
Fiddler是一個C#實現的瀏覽器抓包和調試工具,fiddler啟用后作為一個proxy存在於瀏覽器和服務器之間,從中監測瀏覽器與服務器之間的http/https級別的網絡交互。目前可以支持各種主要瀏覽器如IE, Chrome, FireFox, Safari, Opera。本文主要介紹fiddler對IE瀏覽器調試的基本使用方法。
工具下載
http://www.fiddler2.com/fiddler2/
主要用途
- http/https監測與分析
- 動態修改請求或回復
- 斷點調試
- 自動回復
- 自定義腳本擴展
使用方法
基本界面
Fiddler的界面通過多個標簽頁形式顯示各種類型的信息,最常用的標簽頁為Inspectors,通過這個標簽頁可以查看抓取的網絡請求和回復的詳細內容。
抓包每一幀前面都有不同的圖標表示各種請求類型或狀態,
抓包方法
1. 開發fiddler之后默認情況下就是抓包狀態,可以查看界面左下角顯示capturing,如果沒有顯示,單擊此處可以開始抓包。
2. 如果訪問的網站是https網站,則需要通過Tools - Fiddler Options - Https - Decrypt Http Traffic來設置將https解密
3. 通過瀏覽器發送請求。(在windows平台上此處並不限於瀏覽器,只要程序是通過winhttp或者wininet發送請求都可以被監測到)
4. 在收到回復后回到fiddler查看抓包內容。
關鍵字查找
1. 通過Ctr+F調出查找對話框,在全局查找關鍵字
2. 在選中特定請求之后可以在Inspecters - Raw中分別在特定的請求或回復中查找內容
3. 如果回復被壓縮過,通過單擊提示按鈕可以將內容解壓縮
自動回復
請求自動回復應用也比較廣,例如將其他機器抓包倒入自動回復,然后再本機回放重現問題;或者動態調試過程中不希望有些請求去調用服務器,而在自動回復中配制或者進行相應的更改直接查看效果。
1. 切換到自動回復(AutoResponder)標簽頁
2. 選中Enable automatic responses
3. 點擊Import按鈕導入抓包的saz文件
4. 可以通過默認Url或者通過Rule Editor來修改請求匹配規則
斷點設置
1. 通過Rules - Automatic Breakpoints - Before Requests/After Response設置斷點。
2. 斷點在請求或者回復受到后觸發,可以動態的修改請求或者回復來進行不同的測試。
自定義擴展腳本
Fiddler支持通過Jscript方式擴展功能,比如自動通過腳本對請求及回復進行處理。具體的實例可以參考fiddler提供的實例代碼。
http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp
以下是兩個簡單例子
以下提到的方法可以在CustomRule.js中找到並進行相應的更改,
可以通過Rules - CustomRule來打開CustomRule.js.
目標 |
需要添加的代碼 |
需要添加代碼的方法 |
Add a request header |
oSession.oRequest["NewHeaderName"] = "New header value"; |
OnBeforeRequest |
Delete a response header |
oSession.oResponse.headers.Remove("Set-Cookie"); |
OnBeforeResponse |
另外Fiddler還提供了各種插件來滿足一些特殊的調試需求
http://www.fiddler2.com/Fiddler2/extensions.asp