Fiddler 使用教程
Fiddler是最強大最好用的Web除錯工具之一,它能記錄所有客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料. 使用Fiddler無論對開發還是測試來說,都有很大的幫助。
Fiddler的基本介紹
Fiddler的官方網站: www.fiddler2.com
Fiddler官方網站提供了大量的幫助文件和視訊教程, 這是學習Fiddler的最好資料。
Fiddler是最強大最好用的Web除錯工具之一,它能記錄所有客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料,Fiddler包含了一個強大的基於事件指令碼的子系統,並且能使用.net語言進行擴充套件
你對HTTP 協議越瞭解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能幫助你瞭解HTTP協議.
Fiddler無論對開發人員或者測試人員來說,都是非常有用的工具
Fiddler的工作原理
Fiddler 是以代理web伺服器的形式工作的,它使用代理地址:127.0.0.1, 埠:8888. 當Fiddler退出的時候它會自動登出,這樣就不會影響別的程式。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動登出,會造成網頁無法訪問。解決的辦法是重新啟動下Fiddler.
同類的其它工具
同類的工具有: httpwatch, firebug, wireshark
Fiddler 如何捕獲Firefox的會話
能支援HTTP代理的任意程式的資料包都能被Fiddler嗅探到,Fiddler的執行機制其實就是本機上監聽8888埠的HTTP代理。 Fiddler2啟動的時候預設IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設定的,所以將Firefox的代理改為127.0.0.1:8888就可以監聽資料了。
Firefox 上通過如下步驟設定代理
點選: Tools -> Options, 在Options 對話方塊上點選Advanced tab - > network tab -> setting.
Firefox 中安裝Fiddler外掛
修改Firefox 中的代理比較麻煩, 不用fiddler的時候還要去掉代理。 麻煩
推薦你在firefox中使用fiddler hook 外掛, 這樣你非常方便的使用Fiddler獲取firefox中的request 和response
當你安裝fiddler後, 就已經裝好了Fiddler hook外掛, 你需要到firefox中去啟用這個外掛
開啟firefox tools->Add ons -> Extensions 啟動 FiddlerHook
Fiddler如何捕獲HTTPS會話
預設下,Fiddler不會捕獲HTTPS會話,需要你設定下, 開啟Fiddler Tool->Fiddler Options->HTTPS tab
選中checkbox, 彈出如下的對話方塊,點選"YES"
點選"Yes" 後,就設定好了
Fiddler的基本介面
看看Fiddler的基本介面
Inspectors tab下有很多檢視Request或者Response的訊息。 其中Raw Tab可以檢視完整的訊息,Headers tab 只檢視訊息中的header. 如下圖
Fiddler的HTTP統計檢視
通過陳列出所有的HTTP通訊量,Fiddler可以很容易的向您展示哪些檔案生成了您當前請求的頁面。使用Statistics頁籤,使用者可以通過選擇多個會話來得來這幾個會話的總的資訊統計,比如多個請求和傳輸的位元組數。
選擇第一個請求和最後一個請求,可獲得整個頁面載入所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化
QuickExec命令列的使用
Fiddler的左下角有一個命令列工具叫做QuickExec,允許你直接輸入命令。
常見得命令有
help 開啟官方的使用頁面介紹,所有的命令都會列出來
cls 清屏 (Ctrl+x 也可以清屏)
select 選擇會話的命令
?.png 用來選擇png字尾的圖片
bpu 截獲request
Fiddler中設定斷點修改Request
Fiddler最強大的功能莫過於設定斷點了,設定好斷點後,你可以修改httpRequest 的任何資訊包括host, cookie或者表單中的資料。設定斷點有兩種方法
第一種:開啟Fiddler 點選Rules-> Automatic Breakpoint ->Before Requests(這種方法會中斷所有的會話)
如何消除命令呢? 點選Rules-> Automatic Breakpoint ->Disabled
第二種: 在命令列中輸入命令: bpu www.baidu.com (這種方法只會中斷www.baidu.com)
如何消除命令呢? 在命令列中輸入命令 bpu
看個例項,模擬部落格園的登入, 在IE中開啟部落格園的登入頁面,輸入錯誤的使用者名稱和密碼,用Fiddler中斷會話,修改成正確的使用者名稱密碼。這樣就能成功登入
1. 用IE 開啟部落格園的登入介面 http://passport.cnblogs.com/login.aspx
2. 開啟Fiddler, 在命令列中輸入bpu http://passport.cnblogs.com/login.aspx
3. 輸入錯誤的使用者名稱和密碼 點選登入
4. Fiddler 能中斷這次會話,選擇被中斷的會話,點選Inspectors tab下的WebForms tab 修改使用者名稱密碼,然後點選Run to Completion 如下圖所示。
5. 結果是正確地登入了部落格園
Fiddler中設定斷點修改Response
當然Fiddler中也能修改Response
第一種:開啟Fiddler 點選Rules-> Automatic Breakpoint ->After Response (這種方法會中斷所有的會話)
如何消除命令呢? 點選Rules-> Automatic Breakpoint ->Disabled
第二種: 在命令列中輸入命令: bpafter www.baidu.com (這種方法只會中斷www.baidu.com)
如何消除命令呢? 在命令列中輸入命令 bpafter,
具體用法和上節差不多,就不多說了。
Fiddler中建立AutoResponder規則
Fiddler 的AutoResponder tab允許你從本地返回檔案,而不用將http request 傳送到伺服器上。
看個例項. 1. 開啟部落格園首頁,把部落格園的logo圖片儲存到本地,並且對圖片做些修改。
2. 開啟Fiddler 找到logo圖片的會話, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif, 把這個會話拖到AutoResponer Tab下
3. 選擇Enable automatic reaponses 和Unmatched requests passthrough
4. 在下面的Rule Editor 下面選擇 Find a file... 選擇本地儲存的圖片. 最後點選Save 儲存下。
5. 再用IE部落格園首頁, 你會看到首頁的圖片用的是本地的。
Fiddler中如何過濾會話
每次使用Fiddler, 開啟一個網站,都能在Fiddler中看到幾十個會話,看得眼花繚亂。最好的辦法是過濾掉一些會話,比如過濾掉圖片的會話. Fiddler中有過濾的功能, 在右邊的Filters tab中,裡面有很多選項, 稍微研究下,就知道怎麼用。
Fiddler中會話比較功能
選中2個會話,右鍵然後點選Compare,就可以用WinDiff來比較兩個會話的不同了 (當然需要你安裝WinDiff)
Fiddler中提供的編碼小工具
點選Fiddler 工具欄上的TextWizard, 這個工具可以Encode和Decode string.
Fiddler中查詢會話
用快捷鍵Ctrl+F 開啟 Find Sessions的對話方塊,輸入關鍵字查詢你要的會話。 查詢到的會話會用黃色顯示
Fiddler中儲存會話
有些時候我們需要把會話儲存下來,以便發給別人或者以後去分析。 儲存會話的步驟如下:
選擇你想儲存的會話,然後點選File->Save->Selected Sessions
Fiddler的script系統
Fiddler最複雜的莫過於script系統了 官方的幫助文件: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp
首先先安裝SyntaxView外掛,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下圖
安裝成功後Fiddler 就會多了一個Fiddler Script tab, 如下圖
在裡面我們就可以編寫指令碼了, 看個例項 讓所有cnblogs的會話都顯示紅色。
把這段指令碼放在OnBeforeRequest(oSession: Session) 方法下,並且點選"Save script"
if (oSession.HostnameIs("www.cnblogs.com")) { oSession["ui-color"] = "red"; }
這樣所有的cnblogs的會話都會顯示紅色
如何在VS除錯網站的時候使用Fiddler
我們在用visual stuido 開發ASP.NET網站的時候也需要用Fiddler來分析HTTP, 預設的時候Fiddler是不能嗅探到localhost的網站。不過只要在localhost後面加個點號,Fiddler就能嗅探到。
例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx, 加個點號後,變成 http://localhost.:2391/Default.aspx 就可以了
第二個辦法就是在hosts檔案中加入 127.0.0.1 localsite
如何你訪問http://localsite:埠號 。 這樣Fiddler也能擷取到了。
Response 是亂碼的
有時候我們看到Response中的HTML是亂碼的, 這是因為HTML被壓縮了, 我們可以通過兩種方法去解壓縮。
1. 點選Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"
2. 選中工具欄中的"Decode"。 這樣會自動解壓縮。
相關文章
- Fiddler 抓包詳細使用教程
- Fiddler使用技巧
- 《吐血整理》高階系列教程-吃透Fiddler抓包教程(36)-掌握Fiddler中Fiddler Script用法,你會有多牛逼-上篇
- 《吐血整理》高階系列教程-吃透Fiddler抓包教程(37)-掌握Fiddler中Fiddler Script用法,你會有多牛逼-下篇
- 《吐血整理》保姆級系列教程-玩轉Fiddler抓包教程(5)-Fiddler監控皮膚詳解
- Fiddler的靈活使用
- Fiddler 安卓手機抓包教程安卓
- 🔥《吐血整理》保姆級系列教程 - 玩轉 Fiddler 抓包教程 (6)-Fiddler 狀態皮膚詳解
- 《吐血整理》保姆級系列教程-玩轉Fiddler抓包教程(7)-Fiddler狀態皮膚-QuickExec命令列UI命令列
- 🔥《吐血整理》進階系列教程 - 拿捏 Fiddler 抓包教程 (8)-Fiddler 如何設定捕獲會話會話
- 『言善信』Fiddler工具 — 15、使用Fiddler抓取HTTPS請求HTTP
- 🔥《吐血整理》進階系列教程 - 拿捏 Fiddler 抓包教程 (9)-Fiddler 如何設定捕獲 Https 會話HTTP會話
- 🔥《吐血整理》進階系列教程 - 拿捏 Fiddler 抓包教程 (13)-Fiddler 請求和響應斷點除錯斷點除錯
- Fiddler 使用問題總結
- 如何使用Fiddler抓包操作?
- 從零基礎到精通,抓包神器fiddler保姆級使用教程(一)
- 🔥《吐血整理》進階系列教程 - 拿捏 Fiddler 抓包教程 (12)-Fiddler 設定 IOS 手機抓包,你知多少???iOS
- 『言善信』Fiddler工具 — 13、Fiddler斷點功能的使用詳解斷點
- 『言善信』Fiddler工具 — 14、使用Fiddler進行弱網測試
- 🔥《吐血整理》保姆級系列教程 - 玩轉 Fiddler 抓包教程 (3)-再識 Fiddler 讓你感性認識一下
- 🔥《吐血整理》保姆級系列教程 - 玩轉 Fiddler 抓包教程 (2)-初識 Fiddler 讓你理性認識一下
- Android 使用Fiddler4抓包Android
- 『言善信』Fiddler工具 — 16、使用Fiddler抓取移動端App請求APP
- Fiddler 抓包工具:安裝及漢化流程教程
- 🔥《吐血整理》進階系列教程 - 拿捏 Fiddler 抓包教程 (10)-Fiddler 如何設定捕獲 Firefox 瀏覽器的 Https 會話Firefox瀏覽器HTTP會話
- 🔥《吐血整理》進階系列教程 - 拿捏 Fiddler 抓包教程 (11)-Fiddler 設定安卓手機抓包,不會可是萬萬不行的!安卓
- Fiddler
- Fiddler(三)
- Fiddler(二)
- Fiddler(三)Fiddler設定手機抓包
- Fiddler(三)Fiddler 報錯creation of the root certificate was not successful
- Fiddler(一)Fiddler介紹及應用場景
- fiddler抓取httpsHTTP
- Fiddler簡介
- Fiddler改包
- fiddler學習
- 『言善信』Fiddler工具 — 17、Fiddler常用外掛(Willow)
- 『言善信』Fiddler工具 — 1、Fiddler介紹與安裝
- 『言善信』Fiddler工具 — 11、Fiddler中Composer功能詳解