Fiddler抓包教程

來源:互聯網
上載者:User

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伺服器的形式工作的,它使用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.

  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

第二種:  在命令列中輸入命令:  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 就可以了

 

第二個辦法就是在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.