1. Fiddler 是什麼?
Fiddler是用C#編寫的一個免費的HTTP/HTTPS網絡調試器。英語中Fiddler是小提琴的意思,Fiddler Web Debugger就像小提琴一樣,可以讓前端開發變得更加優雅。
Fiddler是以代理服務器的方式,監聽系統的網絡數據流動。運行Fiddler後,就會在本地打開8888端口,網絡數據流通過Fiddler進行中轉時,我們可以監視HTTP/HTTPS數據流的記錄,並加以分析,甚至還可以修改發送和接收的數據。Fiddler還提供了清除IE緩存、請求構造器、文本轉換工具等等一系列工具,對前端開發工作很有價值。
2. 主要功能
- 分析頁面性能
- 分析http請求/響應數據
- 設置斷點,調試線上錯誤
- 僞造數據請求,調試數據接口
3. Fiddler的界面
4. fiddler命令
常用命令:
- 選擇類:?text、>size、<size、=status、@host、
- blod text、select、allbut、keeponly
- 斷點類:bpafter、bps、bpv、bpm、bpu
- 控制類:hide、start、stop、show、quit
- 其他:cls/clear、dump、g/go、help、urlreplace
5.使用fiddler進行數據分析
6.代碼查看器-雙擊session(需下載插件,見後面)
利用查看器提供的很多形式,我們可以查看數據流的內容。
7.請求構建器(Request Builder)
可以創建任意數據的請求,如上,輸入url後點擊Execute按鈕
8.過濾器
過濾器可以對左側的數據流列表進行過濾,我們可以標記、修改或隱藏某些特徵的數據流。如上圖,通過過濾只展現host爲p.baidu.com的請求
9.AutoResponse功能
這個功能可以算的上是Fiddler最實用的功能,可以讓我們修改服務器端返回的數據,例如讓返回都是HTTP404或者讀取本地文件作爲返回內容。我們將在實例中介紹利用AutoResponse功能。
10.文本編碼和解碼
開啓Tools -> Text Encode/Decode,支持編碼:
- Base64編碼解碼
- URL Encode/Decode
- 十六進制編碼
- Unicode編碼解碼
- HTML實體化編碼解碼
- UTF-7編碼解碼
- Deflated 編碼解碼
提供了常用的一些文本編解碼的轉換。
11.模擬user-agent
在做mobile上的網頁開發時,經常需要修改user-agents爲iphone,如下圖
而通過fiddler可以直接修改所有請求的user-agents,這樣很方便,默認沒有iphone的user-agents,需要自己修改配置——可以編輯fiddler Rules來增加和變更(Rules->Customize Rules)
12.模擬慢速網絡
13.對兩個數據流進行比較
14.Fiddler提供加載時間瀑布圖
15.Fiddler擴展插件安裝
- 代碼高亮插件 http://www.fiddler2.com/redir/?id=SYNTAXVIEWINSTALL
- javascript代碼格式化插件 http://www.fiddler2.com/dl/FiddlerJSFormatSetup.exe安裝完畢後,在任何一條js請求後點擊右鍵,選擇Make Javascript Pretty
- Gallery http://www.fiddler2.com/dl/FiddlerGallerySetup.exe展現圖片
更多插件可以到官網下載。
Fiddler插件官網下載:http://www.fiddler2.com/fiddler2/extensions.asp
16.Fiddler的擴展機制
Fiddler 支持 Jscript.NET 引擎,可以很方便的修改 CustomRules.js 來擴展。修改後立即生效,開啓:Rules -> Customize Rules…
Handles類兩個最重要的事件:
- OnBeforeRequest(oSession: Session)
- OnBeforeResponse(oSession: Session)
OnBeforeRequest範例
通過上面代碼,可以將js和css的session分別標示爲紅色和綠色,效果如下:
17.爲啥有時捕獲不到:
- 手動修改瀏覽器代理ip地址爲:127.0.0.1:8888
- 檢查fiddler捕獲開關
- 檢查過濾器設置(filters)