一、簡介
fiddler的實現原理是以代理服務器的方式工作,代理就是在客戶端和服務器之間設置一道關卡,客戶端先將請求數據發送出去后,代理服務器會將數據包進行攔截,代理服務器再冒充客戶端發送數據到服務器;同理,服務器將響應數據返回,代理服務器也會將數據攔截,再返回給客戶端。
Fiddler是一個http協議調試代理工具,即只是針對HTTP協議的(工作在OSI參考模型的應用層),而wireshark是針對幾乎所有協議的。
瀏覽器與服務器之間通過建立TCP連接以HTTP協議進行通信,瀏覽器默認通過自己發送HTTP請求到服務器。 而Fiddler是c#開發(微軟出品,主要作者Eric Lawrence)的http代理服務器,fiddler工作於七層中的應用層,能夠捕獲到通過的http(s)請求。(瀏覽器 < -> Fiddler < -> 服務器)
啟動Fiddler之后會監聽8888端口(默認8888,可以修改)
二、安裝
- 下載安裝
a) 可以到官網下載Fiddler免費安裝包
三、抓包常用操作
1.開啟抓包
Fiddler想要抓到數據包,要確保Capture Traffic是開啟,在File –> Capture Traffic。開啟后再左下角會有顯示,當然也可以直接點擊左下角的圖標來關閉/開啟抓包功能。
2.圖標與內容說明
Fiddler開始工作后,抓到的數據包就會顯示在列表里面,下面總結了這些都是什么意思:
名稱 |
含義 |
# |
抓取HTTP Request的順序,從1開始,以此遞增 |
Result |
HTTP狀態碼 |
Protocol |
請求使用的協議,如HTTP/HTTPS/FTP等 |
Host |
請求地址的主機名 |
URL |
請求資源的位置 |
Body |
該請求的大小 |
Caching |
請求的緩存過期時間或者緩存控制值 |
Content-Type |
請求響應的類型 |
Process |
發送此請求的進程:進程ID |
Comments |
允許用戶為此回話添加備注 |
Custom |
允許用戶設置自定義值 |
圖標 |
含義 |
|
請求已經發往服務器 |
|
已從服務器下載響應結果 |
|
請求從斷點處暫停 |
|
響應從斷點處暫停 |
|
請求使用 HTTP 的 HEAD 方法,即響應沒有內容(Body) |
|
請求使用 HTTP 的 POST 方法 |
|
請求使用 HTTP 的 CONNECT 方法,使用 HTTPS 協議建立連接隧道 |
|
響應是 HTML 格式 |
|
響應是一張圖片 |
|
響應是腳本格式 |
|
響應是 CSS 格式 |
|
響應是 XML 格式 |
|
響應是 JSON 格式 |
3.請求時間記錄
隨意點擊一個請求,就可以看到Statistics關於HTTP請求的性能以及數據分析了
4.請求具體內容
Inspectors是用於查看會話的內容,上半部分是請求的內容,下半部分是響應的內容:
一般我們點擊Inspectors-Raw查看請求的原始內容
5.請求過濾規則
Fiters 是過濾請求用的,左邊的窗口不斷的更新,當你想看你系統的請求的時候,你刷新一下瀏覽器,一大片不知道哪來請求,看着礙眼,它還一直刷新你的屏幕。這個時候通過過濾規則來過濾掉那些不想看到的請求。
Zone 指定只顯示內網(Intranet)或互聯網(Internet)的內容
Host 指定顯示某個域名下的會話
如果框框為黃色(如圖),表示修改未生效,點擊紅圈里的文字即可
6.Timeline 請求響應時間
7.Fiddler 設置解密HTTPS的網絡數據
解密HTTPS需要手動開啟,依次點擊:
Tools –> Options –> HTTPS
四、請求修改與斷點
斷點可以直接點擊Fiddler下圖的圖標位置,就可以設置全部請求的斷點,斷點的命令可以精確設置需要截獲那些請求。如下示例:
在打斷點之后,即可修改發出的http請求: