Fiddler 教程

轉自:http://kb.cnblogs.com/page/130367/


閱讀目錄

  1. Fiddler的基本介紹
  2. Fiddler的工作原理
  3. 同類的其它工具
  4. Fiddler如何捕獲Firefox的會話
  5. Fiddler如何捕獲HTTPS會話
  6. Fiddler的基本界面
  7. Fiddler的統計視圖
  8. QuickExec命令行的使用
  9. Fiddler中設置斷點修改Request
  10. Fiddler中設置斷點修改Response
  11. Fiddler中創建AutoResponder規則
  12. Fiddler中如何過濾會話
  13. Fiddler中會話比較功能
  14. Fiddler中提供的編碼小工具
  15. Fiddler中查詢會話
  16. Fiddler中保存會話
  17. Fiddler的script系統
  18. 如何在VS調試網站的時候使用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.

  Fiddler如何捕獲HTTPS會話

  默認下,Fiddler不會捕獲HTTPS會話,需要你設置下, 打開Fiddler  Tool->Fiddler Options->HTTPS tab

  選中checkbox, 彈出如下的對話框,點擊"YES"

  

  點擊"Yes" 後,就設置好了。

  Fiddler的基本界面

  看看Fiddler的基本界面

  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

  第二種:  在命令行中輸入命令:  bpuafter www.baidu.com   (這種方法只會中斷www.baidu.com)

  如何消除命令呢?  在命令行中輸入命令 bpuafter,

  具體用法和上節差不多,就不多說了。

  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 就可以了


發佈了9 篇原創文章 · 獲贊 18 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章