什么是Fiddler?
網絡項目的開發和測試中,Fiddler是強大的抓包工具,它的原理是以web代理服務器的形式進行工作的 ,可以說是非常常用的手頭工具了,本文就Fiddler使用和配置進行說明。
代理就是在客戶端和服務器之間設置一道關卡,客戶端先將請求數據發送出去后,代理服務器會將數據包進行攔截,代理服務器再冒充客戶端發送數據到服務器;同理,服務器將響應數據返回,代理服務器也會將數據攔截,再返回給客戶端
了解HTTP協議
-
要分析Fiddler抓取的數據包,先要熟悉HTTP協議。HTTP即超文本傳輸協議,是一個基於請求與響應模式的、無狀態的、應用層的協議,絕大多數的Web開發,都是構建在HTTP協議之上的Web應用。
-
HTTP的工作過程:當我們請求一個超鏈接時,HTTP就開始工作了,客戶端先發送一個請求到服務器,請求內容包括:協議版本號、請求地址、請求方式、請求頭和請求參數;服務器收到請求后做相應的處理,並將響應數據返回到客戶端,響應內容包括:協議版本號、狀態碼和響應數據。前端根據響應數據做相應的處理,就是最終我們看到的內容。這些過程是HTTP自動完成的,我們只是輸入或點擊請求地址,然后查看前端給我們展示的內容。更多關於HTTP協議的介紹請參考:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
-
請求方式常用的有:GET、PUT、POST、DELETE。
-
HTTP狀態碼主要分為5類:以1開頭的代表請求已被接受,需要繼續處理;以2開頭的代表請求已成功被服務器接收、理解、並接受;以3開頭的代表需要客戶端采取進一步的操作才能完成請求;以4開頭的代表了客戶端看起來可能發生了錯誤,妨礙了服務器的處理;以5開頭的代表了服務器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是服務器意識到以當前的軟硬件資源無法完成對請求的處理。
-
常見的主要有:每個狀態碼的詳細介紹請參考:https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin
- 200:服務器成功處理了請求;
- 302:請求的URL已臨時轉移;
- 304:客戶端的緩存資源是最新的,要客戶端使用緩存。
- 404:未找到資源;
- 500:內部服務器錯誤;
- 503:服務器目前無法為請求提供服務
Fiddler的配置及使用
1. 安裝
直接在官網下載最新版就行: https://www.telerik.com/fiddler , 根據自己的系統下載版本,正常安裝
Fiddler安裝后,默認的端口號是8888,這個可以根據自己需要進行修改
Fiddler要能進行抓包,需要確保Capture Traffic是開啟的(安裝后是默認開啟的),勾選File->Capture Traffic,也可以直接點擊Fiddler界面左下角的圖標開啟和關閉抓包。

如果想抓HTTPS的請求,Fiddler需要做如下的設置
Tools --> Options ,然后按下圖進行勾選,
將Fiddler正式安裝在電腦上,點Action--> Trust Root Certificate--> Yes ,一步步確定


2. 瀏覽器配置
以Chrome瀏覽器為例,需要配置代理,fiddler才能抓到包。
瀏覽器到此為止,基本上不需要做什么配置,安裝后就可以進行抓包了。

3. 手機的配置 ---安卓手機
(1)以安卓手機為例,先設置到代理,電腦需要連接WIFI,手機與電腦連接相同的WIFI,路徑:設置 -- >已連接的WIFI -->高級設置-->代理:
代理服務器主機名的獲取,cmd --> ipconfig --> IPv4 地址對應的 IP就是代理服務器主機名


(2)對於手機要抓包,還需要在Fiddler上進行如下配置
路徑: Tools --> Options --> 勾選:Allow remote Computers to connect

(3) 手機要能夠正常抓包,還需要安裝證書,在手機瀏覽器里輸入:代理服務器地址:端口號,(如 192.168.123.122:8888)

看到這里,恭喜您吶,PC瀏覽器,手機都可以正常的使用Fiddler抓包了。
4.Iphone手機配置 --- 2018.07.26補充
本打算就以安卓為例就可以了,結果發現很多小伙伴在配置IPhone的時候出現了問題,總是鏈接不上抓包工具,出現下面的錯誤

此處再補充一下Iphone的配置,因為它有一個特殊地方需要打開。直接上圖吧,簡單粗暴直觀,照着配置就行了
(1) 先設置代理

(2) 安裝fiddler證書

(3) 前面的配置都做好了,最關鍵的一步就是要信任證書
最后一步是關鍵了,很多小伙伴都折到這一步,連不上代理,找不到原因了。
經過這三步,Iphone就可以正常的被代理了

2018.6.21補充:
相同網關下,電腦連網線,手機連WiFi,也能抓包
最近公司的無線WiFi特別不穩定,電腦經常斷網,可是不連WiFi又抓不了包,怎么辦?
小哥突發奇想,公司的無線和有線都是在同一個網關下的,那是不是手機連WiFi,電腦連有線,也可以抓包,而且保證電腦不斷網?
有想法就試一試。
(1)電腦連接網線
(2)cmd先獲取以太網的IP地址

(3)手機還是繼續連接WiFi,設置代理同上,只不過ip地址換成了以太網的
(4)通過fiddler測試,可以抓到包,測試通過
