Fiddler是一款強大好用的Web調試工具, 它能記錄所有客戶端和伺服器的http和https請求。並且支持重發、編輯、轉存等操作。開發人員經常用Fiddler來調試問題。測試人員也可以藉助Fiddler工具來定位問題,並且在性能測試中可以通過Fiddler工具抓取http請求,分析請求參數類容。

  1. Fiddler抓包工具原理

Fiddler抓包工具的原理是基於代理的機制,啟動Fiddler就會自動改寫瀏覽器代理,瀏覽器訪問伺服器的請求會先發送到Fiddler,再由Fiddler轉發給伺服器,同樣,伺服器http響應也會先返回至Fiddler,Fiddler再轉發給客戶端瀏覽器。

2. 開啟抓包

點擊菜單File-Capture Traffic(或快捷鍵12),就開啟抓包,瀏覽器中訪問目標網站就可以抓取到相關http請求。注意:Firefox瀏覽器需要手動設置瀏覽器代理。

3. Fiddler界面介紹

會話列表欄位含義介紹:

# 抓取HTTP Request的順序,從1開始,以此遞增

Result HTTP狀態碼

Protocol 請求使用的協議,如HTTP/HTTPS/FTP等

Host 請求地址的主機名

URL 請求資源的位置

Body 該請求的大小

Caching 請求的緩存過期時間或者緩存控制值

Content-Type 請求響應的類型

Process 發送此請求的進程:進程ID

4. Inspectors 查看數據內容

Inspectors是用於查看會話的內容,上半部分是請求的內容,下半部分是響應的內容。對於每一部分,提供了多種不同格式查看每個請求和響應的內容。JPG 格式使用 ImageView 就可以看到圖片,HTML/JS/CSS 使用 TextView 可以看到響應的內容。Raw標籤可以查看原始的符合HTTP標準的請求和響應。Auth則可以查看授權Proxy-Authorization 和 Authorization的相關信息。Cookies標籤可以看到請求的cookie和響應的set-cookie頭信息。

5. Fiddler 過濾器

Fiddler有強大的過濾功能,可以根據不同的過濾規則過濾:Host、client Process、Requester Headers、Response Status Code、Response Type and Size、Response Headers等。

Host過濾規則:

Zone:指定只顯示內網(Intranet)或互聯網(Internet)的內容;

Host:指定顯示某個域名下的會話;

-No Host Filter:無HOST過濾;

Hide the following Hosts:只顯示如下HOST;

Flag the following Hosts:加粗顯示如下HOST;

輸入多個HOST,多個之前用半形逗號或者回車分隔;

Client Process過濾規則:

Show only traffic from:你可以指定只捕獲哪個Windows進程中的請求;

Show only Internet Explorer traffic:只顯示IE發出的請求;

Hide Windows RSS platform traffic:隱藏Windows RSS平台發出的請求

Request headers過濾規則:

Show only if URL contains: 根據URL中的內容進行過濾,顯示url中包含某字元的請求;

Flag requests with headers:標記帶有特定header的請求;

Delete request headers:刪除請求header;

Set request header: 設置請求的header;

響應HTTP狀態過濾規則:

Hide success(202,204,206):隱藏響應成功的session(202,204,206);

Hide Authentication demands(401):隱藏未經授權被拒絕的session(401);

Hide redirects(300,301,302,303,307):隱藏重定向的session(300,301,302,303,307);

Hide Not Modified(304):隱藏無變更的session(304);

響應類型和大小過濾規則:

Show all Content-Type:顯示所有響應類型;

Hide smaller than ?KB:隱藏小於指定大小的session;

Hide larger than ?KB:隱藏大於指定大小的session;

Time HeatMap:獲得即時數據(綠色陰影代表響應時間在50毫秒以內;超過50毫秒但在300毫秒之內的響應條目沒有顏色;響應時間在300至500毫秒之間的會塗以黃色;超過500毫秒的用紅色底紋顯示);

Block script files:阻止腳本文件,顯示為404;

Block image files:阻止圖片文件;

Block SWF files:阻止SWF文件;

Block CSS files:阻止CSS文件;

響應header過濾規則:

Flag response that set cookies:標記會設置cookie的響應;

Flag response with headers:標記帶有特定header的響應;

Delete response headers:刪除響應header;

Set response header:設置響應的header;

6. HTTPS設置

啟動Fiddler,點擊Tools-Option-HTTPS,勾選下圖所示複選框,點擊"OK"。

在跳出的對話框中點擊「Yes」

在跳出的對話框中點擊「是」,根據提示「下一步」完成證書安裝即可。

7. 斷點設置

1) Fiddler有兩種方式設置斷點。

第一種:在菜單欄Rules-》Automatic BreakPoints的下拉菜單里選擇設置斷點的方式(Before Requests,After Responses),取消斷點選擇Disabled。這種設斷點的方式是對所有url生效。

第二種:用bpu命令對特定url設置斷點,這種方式斷點設在Before Requests。取消斷點時只需要再執行bpu命令即可。

執行如下命令(如下圖):

bpu baidu.com/

2) 用bpu命令設置斷點並修改請求案例

  • 在Fiddler命令行輸入區輸入「bpu」回車執行清掉原有的斷點。
  • 輸入「bpu http://www.songqinnet.com/」回車執行,接下來就會中斷URL中包含此地址的請求。

  • 在瀏覽器打開松勤網首頁,查詢課程輸入框中輸入「資料庫」。

點擊會話列表中被中斷的查詢資料庫課程的會話,依次進入Inspectors–>WebForms。此時請求並未發送到伺服器,被中斷了,修改參數值「資料庫「為「自動化」,最後點擊run to completion,修改後的請求發送到伺服器,並且會響應結果返回給瀏覽器,我們可以發現瀏覽器中返回的課程是"自動化」的課程,即修改後的請求返回的內容。

瀏覽器返回自動化課程內容。


推薦閱讀:
相关文章