Fiddler 教程(轉)

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   io   strong   

 

Fiddler是最強大最好用的Web調試工具之一,它能記錄所有用戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料. 使用Fiddler無論對開發還是測試來說,都有很大的協助。

閱讀目錄

  1. Fiddler的基本介紹
  2. Fiddler的工作原理
  3. 同類的其它工具
  4. Fiddler如何捕獲Firefox的會話
  5. Firefox 中使用Fiddler外掛程式
  6. Fiddler如何捕獲HTTPS會話
  7. Fiddler的基本介面
  8. Fiddler的統計視圖
  9. QuickExec命令列的使用
  10. Fiddler中設定斷點修改Request
  11. Fiddler中設定斷點修改Response
  12. Fiddler中建立AutoResponder規則
  13. Fiddler中如何過濾會話
  14. Fiddler中會話比較功能
  15. Fiddler中提供的編碼小工具
  16. Fiddler中查詢會話
  17. Fiddler中儲存會話
  18. Fiddler的script系統
  19. 如何在VS調試網站的時候使用Fiddler
  20. Response 是亂碼的
Fiddler的基本介紹

Fiddler的官方網站:  www.fiddler2.com

Fiddler官方網站提供了大量的協助文檔和視頻教程, 這是學習Fiddler的最好資料。

Fiddler是最強大最好用的Web調試工具之一,它能記錄所有用戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料,Fiddler包含了一個強大的基於事件指令碼的子系統,並且能使用.net語言進行擴充

你對HTTP 協議越瞭解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能協助你瞭解HTTP協議.

Fiddler無論對開發人員或者測試人員來說,都是非常有用的工具

Fiddler的工作原理

Fiddler 是以代理web伺服器的形式工作的,它使用Proxy 位址: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"。  這樣會自動解壓縮。

 轉自:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.