本文是工具系列第一篇,後期會繼續更新。web
Fiddler 是位於客戶端和服務器端的 HTTP 代理,也是目前最經常使用的 HTTP 抓包工具之一。(Mac OS 建議採用 Charles)瀏覽器
它能夠記錄客戶端和服務器之間的全部 HTTP 請求,並能夠針對特定的 HTTP 請求,分析請求數據、設置斷點、調試 web 應用、修改請求的數據,甚至能夠修改服務器返回的數據,功能很是強大,是 web 調試和網絡請求分析的利器。緩存
Fiddler 做爲一個代理,天然客戶端的全部請求都會先通過它,再轉發給相應的服務器。反之,服務器端的全部響應,也都會先通過 Fiddler 而後發送給客戶端。因此,Fiddler 支持全部能夠設置 HTTP 代理爲 127.0.0.1:8888 的瀏覽器和應用程序。服務器
咱們不妨直接看到 Fiddler 的界面,能夠看到不少不錯的東西。 微信
這裏是大概的主界面,因爲內容涵蓋仍是比較多,因此咱們分塊解析。網絡
web session 面板區域主要包含了每條 HTTP 請求(每一條稱爲 session),主要包含了請求的 url,狀態碼,body 等信息。session
# HTTP Request 的順序,從 1 開始,按照頁面加載請求的順序遞增。其中序列號列中通常還有圖標,表明不一樣的響應類型。具體類型包括: 工具
Result HTTP 響應的狀態。狀態碼解析請參考專業的 HTTP 書籍。測試
Protocol 請求使用的協議,如 HTTP/HTTPS/FTP 等。url
Host 請求地址域名。
URL 請求的服務器路徑和文件名,也包括 GET 參數。
Body 請求的大小,單位爲 byte。
Caching 請求的緩存過時時間或緩存控制 header 等值。
Content-Type 請求響應的類型(Content-Type)
Process 發出此請求的進程及進程 ID。
Comments 用戶經過腳本或者右鍵菜單給此 session 增長的備註。
Custom 用戶能夠經過腳本設置的自定義值。
該區域基本是咱們必須關注的點,咱們能夠在這個區域看到每條 HTTP 請求的具體數據統計和數據包分析。其中的 inspector 面板下的數據每每最受咱們的重視。
這裏能夠看到咱們請求的諸多數據,因爲時間關係,咱們也就僅拿出其中的 Header 部分作講解,其餘部分同理。
上面的 Header 中包含了咱們常見的請求頭,好比客戶端的設備相關信息、Cookies、鏈接狀態。
下面是咱們的響應頭 Header,同時也包含了響應時間、過時時間、響應格式、數據包大小、鏈接狀態等。
咱們常常在作一些接口測試的須要作一些騷操做,好比上傳文件等,這個徹底不像 GET 請求那般能夠直接帶上咱們的參數在瀏覽器訪問。這時候咱們又不想去寫一個腳本。好夥計,Composer 正好知足了咱們的需求。
正如截圖中樣式,咱們能夠設置請求方式、請求地址,參數、甚至是上傳文件等,這一些請求咱們均可以模擬。
不得不感嘆,確實黑科技。
過濾條件涵蓋很是普遍,好比過濾特定 HTTP 狀態碼的請求、特定請求類型的 HTTP 請求等,更多的過濾方式還須要你們本身去挖掘。
對於 Web 抓包 要想抓包到相應的數據,必須設置瀏覽器代理爲 127.0.0.1:8888,不然沒法捕獲到 HTTP 請求。
對於 HTTPS 的支持 默認狀況下,Fiddler 是不支持直接查看 HTTPS 請求的,咱們必須在設備上安裝它的證書。
這裏姑且直接以抓取 Android 手機的 HTTPS 請求作示例。
首先設置 Fiddler。打開工具欄 => Tools => Fiddler Options => HTTPS
導出證書到手機。
直接在手機端安裝。 在手機上安裝證書這個操做,太多機型了,都不太同樣,姑且你們自行百度。
我是南塵,只作比心的公衆號,歡迎關注我。
作不完的開源,寫不完的矯情。歡迎掃描下方二維碼或者公衆號搜索「nanchen」關注個人微信公衆號,目前多運營 Android ,盡本身所能爲你提高。若是你喜歡,爲我點贊分享吧~