很多時候,我們測試app過程中,發現了一些bug,比如我們訂單的數據不對啊,本來應該是小王的,怎麼顯示小李?心裡暗喜,給App端開發提交了一個bug,結果app端分析後回復:朋友,你技能有點差啊,這是服務端的問題,你為什麼提交給我?頓時心裡不開心,感覺被羞辱了,實際上,其實我們可以在發現類似問題時,先通過抓包工具例如Fiddler,抓包分析下就知道是誰的問題了。下面我們就來聊一聊這個超好用的抓包工具——Fiddler。
Fiddler 工具淺析
Fiddler 是位於客戶端和伺服器端的 HTTP 代理,也是目前最常用的 HTTP 抓包工具之一。(Mac OS 建議採用 Charles)
它可以記錄客戶端和伺服器之間的所有 HTTP 請求,並可以針對特定的 HTTP 請求,分析請求數據、設置斷點、調試 web 應用、修改請求的數據,甚至可以修改伺服器返回的數據,功能非常強大,是 web 調試和網路請求分析的利器。
Fiddler 作為一個代理,自然客戶端的所有請求都會先經過它,再轉發給相應的伺服器。反之,伺服器端的所有響應,也都會先經過 Fiddler 然後發送給客戶端。所以,Fiddler 支持所有可以設置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程序。
為什麼選擇Fiddler ?
1、本地化的工具,是一個使用本地 127.0.0.1:8888 的 HTTP 代理
2、Fiddler本身對http協議支持較好,且操作簡單容易上手
3、具有抓包和分析功能,省去了安裝其他工具的必要
4、工具本身功能強大,如劫包、篡改數據、限速等
Fiddler 的基本原理
本地應用與伺服器之間所有的Request 和Response都將經過Fiddler,由Fiddler進行轉發,此時Fiddler以代理伺服器的方式存在。
由於所有的網路數據都會經過Fiddler,因此Fiddler能夠截獲這些數據,實現網路數據的抓包。
Fiddler的抓包過程
1、配置
此處將不再贅述Fiddler的下載和安裝過程,具體可參考Fiddler的官方文檔:http://docs.telerik.com/fiddler/。
2、簡單抓包說明
3、Fiddler抓包配置
打開【Tools】--【Options】選項
4、配置抓取https請求
【Options】--【HTTPS】
5、修改默認監聽埠
【Options】--【Connections】 默認埠號為8888
6、抓取數據
【Inspectors】--【WebForms】
【Inspectors】--【Raw】
7、請求session過濾
【Filters】 勾選 【use filters】
8、如何攔截請求
【Rules】--【Atuomatic BreakPoints】--【Befor Requets】
設置斷點
9、篡改伺服器端響應數據
【Rules】--【Atuomatic BreakPoints】-- 【After Responses】
10、抓包並設置自定義響應數據
【AutoResponer】--【Enable Rules】--【Add Rule】
11、使用fiddler模擬發送get請求介面
【Composer】面板設置
12、使用fiddler模擬發送post請求介面
13、修改HOST值
總結:
常用的抓包工具對比:
抓包工具有很多,小到最常用的web調試工具firebug,達到通用的強大的抓包工具wireshark。大家在選擇抓包工具時,一定要定位好自己的需求。
Firebug雖然可以抓包,但是對於分析http請求的詳細信息,不夠強大。模擬http請求的功能也不夠,且firebug常常是需要「無刷新修改」,如果刷新了頁面,所有的修改都不會保存。
Wireshark是通用的抓包工具,但是比較龐大,對於只需要抓取http請求的應用來說,似乎有些大材小用。
Httpwatch也是比較常用的http抓包工具,但是隻支持IE和firefox瀏覽器(其他瀏覽器可能會有相應的插件),對於想要調試chrome瀏覽器的http請求,似乎稍顯無力。
Fiddler是一個使用本地 127.0.0.1:8888 的 HTTP 代理,任何能夠設置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程序都可以使用 Fiddler。
推薦閱讀: