天天看點

Fiddler快速入門

Fiddler

是一個免費、強大、跨平台的HTTP抓包工具。Wireshark也是一個強大的抓包工具,不過Wireshark是一個通用的抓包工具,主要精力放在各種協定上了,針對HTTP的特定功能較少。是以如果你需要研究HTTP包的話,Fiddler一定是最适合的工具。

下載下傳和安裝

我們可以到

Fidller下載下傳

頁面下載下傳Fiddler。下載下傳完成之後安裝即可。安裝之後,我們打開它,可以得到類似的使用者界面。在Windows下可能需要管理者權限,允許即可。

Fiddler快速入門

Fiddler通過打開

localhost:8888

端口來監聽HTTP連接配接。在Windows下啟動Fiddler的時候回自動将系統代理設定為

localhost:8888

。隻要一個程式可以設定代理到

localhost:8888

,那麼它就可以被Fiddler監聽。

基本使用

Fiddler最常用的就是監聽和檢視浏覽器請求。我們把浏覽器代理設定為Fiddler代理。然後随便打開幾個網頁,就可以看到Fidller成功捕獲到了這些HTTP請求。

Fiddler快速入門

監聽請求

如果我們需要詳細檢視某個請求,可以在左邊清單選擇一個,然後在右邊點選Inspectors。點選Inspectors之後,我們可以看到右邊有很多标簽,上面是請求,下面是響應。我們可以檢視Headers、TextView、ImageView等多種視圖。如果點選Raw視圖的話,我們就可以檢視原始的HTTP請求内容了。這裡由于我在使用Fiddler捕獲的時候網頁開着簡書,是以捕獲了多個簡書的自動儲存請求。我們可以看到簡書的文章使用JSON格式發送到伺服器的。

Fiddler快速入門

檢視HTTP資訊

過濾捕獲

預設情況下Fiddler會捕獲通過

localhost:8888

的所有請求。這樣的話清單中會顯示很多我們實際上不需要的請求。我們可以使用過濾功能來得到我們需要的結果。

按程序過濾

在按鈕欄上有一個按鈕叫

All Process

,我們按住這個按鈕不放,滑鼠會變成十字,然後我們拖動到需要捕獲的程式上,Fiddler就會擷取到該程式的程序号,這樣我們就可以隻不過某個程式的請求了。

使用過濾器

在右邊選擇Filter,選中Use Filter,即可使用過濾器。我們可以看到有很多過濾條件。

  • 過濾主機。我們可以指定隻捕獲某些主機和端口号的請求。不過貌似Fiddler不過智能,我們為了過濾本機回環位址,需要同時指定

    127.0.0.1

    localhost

    。如果近指定一個,就無法捕獲另一個位址的請求。
  • 過濾程序。和上面指定程序的方式差不多。
  • 過濾請求頭。我們可以根據某個請求頭是否存在顯示或隐藏某些請求,還可以使用Fiddler添加或删除請求頭。
  • 斷點。我們還可以在捕獲到某些請求時暫停它們,以便進行調試。
  • 過濾響應狀态碼,響應類型等等。

圖上是我自己的Spring小程式,傳回了一個JSON。

Fiddler快速入門

過濾器

如果這些過濾器不能滿足需求,可能需要自己編寫Fiddler腳本了。

模拟表單送出

假設我們有如下一個表單需要填寫。

Fiddler快速入門

表單網頁

表單代碼如下。

<form method="post" action="/spring-web-mvc-sample/addUser">
    <label for="name">姓名</label>
    <input type="text" name="name" id="name"/>
    <br>
    <label for="age">年齡</label>
    <input type="text" name="age" id="age"/>
    <br>
    <label for="gender">性别</label>
    <input type="text" name="gender" id="gender"/>
    <br>
    <input type="submit" value="送出"/>
</form>

           

利用Fiddler可以幫我們完成表單送出這樣的工作。切到Composer頁籤即可使用該功能。我們在上半部分填寫請求頭,下面填寫請求體。如果是POST送出,那麼資料應該寫在請求體;如果是GET送出,那麼資料應寫在請求頭。

Fiddler快速入門

模拟送出

如果不知道請求頭和請求體如何填寫,可以先使用浏覽器送出一個表單,然後用Fiddler檢視一下浏覽器是如何送出的,再改為自己的。

模拟傳回

Fiddler還有一個功能就是不經過網絡,直接模拟一個響應傳回給用戶端。我們選擇AutoResponser即可使用該功能。選中Enable Rules,然後添加一條規則,我們就可以根據指定的URL來傳回指定的結果了。Fiddler提供了一些簡單的結果。我們也可以自定義響應。Enable Rules右邊還有兩個選項依次是跳過不比對的請求和啟用延遲(機關是毫秒)。Fiddler支援URL的正則比對,右下角的Test用于測試URL是否比對。我這裡簡單的精确比對了一下。

Fiddler快速入門

這個功能其實很強大。我們可以利用Fiddler截取某些軟體激活的資訊(假如它們使用的是HTTP協定),然後利用這個功能模拟傳回伺服器資訊。這樣我們就可以僞造一個假的激活伺服器了。

遠端抓包

Fiddler不僅可以捕獲本機的HTTP請求,還可以捕獲遠端機器的請求。首先我們點選Tool->Telerik Fiddler Options,然後允許遠端計算機連接配接。啟用該選項需要重新開機Fiddler。

Fiddler快速入門

允許遠端連接配接

然後使用方法和前面差不多。我們檢視一下本機IP位址。然後在其它裝置上設定代理

ip位址:8888

即可。例如在安卓手機上設定,即可讓Fiddler捕獲手機的HTTP連接配接。(本來截了張手機設定圖,結果一看太大,影響排版,還是删了)

此外Fiddler還有一些其他功能,就需要各位自己挖掘了。

Fiddler文檔

在此,隻不過是英文的,有興趣的同學可以看看。