Fiddler web調試工具(pc端和手機端)

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

Fiddler的工作原理

Fiddler 是以代理web服務器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 當啓動Fiddler會自動設置代理, 退出的時候它會自動註銷代理,這樣就不會影響別的程序。不過如果Fiddler非正常退出,這時候因爲Fiddler沒有自動註銷,會造成網頁無法訪問。解決的辦法是重新啓動下Fiddler.


同類的其它工具

同類的工具有: httpwatch, firebug, wireshark

能支持HTTP代理的任意程序的數據包都能被Fiddler嗅探到,Fiddler的運行機制其實就是本機上監聽8888端口的HTTP代理。 Fiddler2啓動的時候默認IE的代理設爲了127.0.0.1:8888,而其他瀏覽器是需要手動設置的,所以將Firefox的代理改爲127.0.0.1:8888就可以監聽數據了。


Fiddler如何捕獲HTTPS會話

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



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


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

==================================================================》

Fiddler的基本界面

 1.看看Fiddler的基本界面


2.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中提供的編碼小工具

點擊Fiddler 工具欄上的TextWizard,  這個工具可以Encode和Decode string.(編碼和解碼)


Fiddler中查詢會話

用快捷鍵Ctrl+F 打開 Find Sessions的對話框,輸入關鍵字查詢你要的會話。 查詢到的會話會用黃色顯示



Fiddler中保存會話

有些時候我們需要把會話保存下來,以便發給別人或者以後去分析。  保存會話的步驟如下:

選擇你想保存的會話,然後點擊File->Save->Selected Sessions

或者可以保存點擊會話,右擊選擇 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的會話都會顯示紅色

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:

1.啓動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開“Fiddler Options”對話框。


2.在Fiddler Options”對話框切換到“Connections”選項卡,然後勾選“Allow romote computers to connect”後面的複選框,然後點擊“OK”按鈕。


3.在本機命令行輸入:ipconfig,找到本機的ip地址。

4.打開android設備的“設置”->“WLAN”,找到你要連接的網絡,在上面長按,然後選擇“修改網絡”,彈出網絡設置對話框,然後勾選“顯示高級選項”。

5.在“代理”後面的輸入框選擇“手動”,在“代理服務器主機名”後面的輸入框輸入電腦的ip地址,在“代理服務器端口”後面的輸入框輸入8888,然後點擊“保存”按鈕。


6.然後啓動android設備中的瀏覽器,訪問百度的首頁,在fiddler中可以看到完成的請求和響應數據。

7.到這裏就完了。

-----------------------------------------------------------------------------------------------》

fiddler 提示protocol violation怎麼去掉!


=======================================================>






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章