很多時候,我們測試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 代理

(任何能夠設置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程序都可以使用 Fiddler)

2、Fiddler本身對http協議支持較好,且操作簡單容易上手

3、具有抓包和分析功能,省去了安裝其他工具的必要

4、工具本身功能強大,如劫包、篡改數據、限速等

Fiddler 的基本原理

本地應用與伺服器之間所有的Request 和Response都將經過Fiddler,由Fiddler進行轉發,此時Fiddler以代理伺服器的方式存在。

由於所有的網路數據都會經過Fiddler,因此Fiddler能夠截獲這些數據,實現網路數據的抓包。

Fiddler的抓包過程

1、配置

此處將不再贅述Fiddler的下載和安裝過程,具體可參考Fiddler的官方文檔:docs.telerik.com/fiddle

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。

推薦閱讀:

相關文章