1、Fiddler 介紹
Fiddler 是一個使用 C# 編寫的 http 抓包工具。它使用靈活,功能強大,支持衆多的 http 調試任務,是 web、移動應用的開發調試利器。
css
1,功能特色
- 同 Httpwatch、Firebug 這些抓包工具同樣,Fiddler 夠記錄客戶端和服務器之間的全部 HTTP 請求,能夠針對特定的 HTTP 請求,分析請求數據、設置斷點等。
- 但 Fiddler 更爲強大的是,它還能夠修改請求的數據,甚至能夠實現請求自動重定向,從而修改服務器返回的數據。
- Fiddler 使用也十分方便。在打開 Fiddler 的時候,它就自動設置好了瀏覽器的代理,經過改寫 HTTP 代理,讓數據從它那經過,來監控而且截取到數據。當關閉 Fiddler 的時候,它又自動幫你把代理還原。
2,下載安裝
2、http 請求抓取
1,Fiddler 啓動後就自動開始工做了。
- 使用瀏覽器隨便訪問幾個頁面,左側區域就會將捕獲的結果顯示出來。
- 經過點擊左下角的圖標能夠關閉/開啓抓包功能。
2,查看請求內容
雙擊某個會話請求,在右側的 Inspectors 選項卡中能夠查看該會話的內容,上半部分是請求的內容,下半部分是響應的內容。
3,使用 Filters 過濾請求
因爲 Fiddler 會抓取全部的 HTTP 請求,這樣會形成左邊的窗口不斷的更新,有時可能會對咱們的調試形成干擾。咱們能夠經過過濾規則的設置,從而來過濾掉那些不想看到的請求。
(1)點擊 Fiters 選項卡,勾選左上角的 Use Filters 便可開啓過濾器。下方有兩個最經常使用的過濾條件:Zone 和 Host:
- Zone:指定只顯示內網(Intranet)或互聯網(Internet)的內容
- Host:指定顯示某個域名下的會話
(2)好比咱們只想顯示與
hangge.com 的會話,能夠這麼設置。(若是有紅框中的文字,表示修改未生效,點擊便可。)
3、AutoResponder 用法(攔截指定請求,並返回自定義數據)
AutoResponder 容許你攔截指定規則的求情,並返回本地資源或 Fiddler 資源,從而代替服務器響應。這個在咱們平時開放調試中也是頗有用的:
- 好比在前端開發中,若是發現服務器上某個 css/JavaScript 文件有問題,直接上去改會影響生產環境的穩定。利用 Fiddler 的 AutoResponder 功能,我能夠將須要修改的文件重定向到本地文件上,這樣就能夠基於生產環境修改並驗證,確認後再發布。
- 再好比服務端提供了接口和數據格式給前端調用,可能因爲某些緣由,接口還未開發完畢、或者返回數據有異常。爲了避免影響開發進度,前端仍然能夠繼續調用這個接口,而後經過 Fiddler 將請求轉向本地的數據文件上。
(1)好比
hangge.com 首頁用到了 jQuery,假設咱們要修改這個 js。
(2)首先將 js 文件保存到本地(若是本地已經有這個文件,能夠跳過這步)
(3)接着打開 AutoResponder 標籤設置,勾選前面兩個複選框,開啓 Fiddler 的請求自動重定向功能。
- 第一個複選框的做用是開啓或禁用自動重定向功能,咱們就能夠在下面添加劇定向規則了。
- 第二個複選框框勾上時,不影響那些沒知足咱們處理條件的請求。
(4)下面就要建立重定向規則了,將目標是這個 js 的 HTTP 請求重定向到本地文件。咱們能夠經過「Add…」按鈕手動添加規則,不過這個 URL 已經出如今咱們的 session 列表中,能夠直接拖動過來。
(5)接着修改這個規則。點擊下方的下拉框,選擇「Find a file…」,就能夠選擇本地的文件做爲返回的 body 內容。
(6)這裏咱們選擇剛纔保持下來的 js 文件。這樣咱們的請求重定向就設置好了。
(7)試着修改下本地這個 js 文件。好比咱們在開頭加了個 alert 語句。
(8)刷新頁面,從新訪問就能夠看到效果了。(若是瀏覽器有緩存,要先清下緩存)
4、解密 HTTPS 的網絡數據
一般狀況下,對於 HTTPS 請求,咱們捕獲後是沒法看到裏面的數據。
不過 Fiddler 能夠經過僞造 CA 證書來欺騙瀏覽器和服務器,從而實現解密 HTTPS 數據包的目的。大概原理就是在瀏覽器面前 Fiddler 假裝成一個 HTTPS 服務器,而在真正的 HTTPS 服務器面前 Fiddler 又裝成瀏覽器。
(1)要開啓 HTTPS 解密,咱們依次點擊菜單欄 Tools -> Telerik Fiddler Options
(2)在彈出窗口中,勾選 HTTPS 標籤頁下的 Decrypt HTTPS Traffic。這是會彈出個對話框詢問是否安裝證書,選擇 Yes 安裝便可。
(3)再次訪問 HTTPS 頁面,能夠發現數據已經夠被成功解析了。
5、自定義請求發送到服務器
在 Composer 面板中,咱們能夠向服務器發送自定義請求,能夠手動建立一個新的請求,也能夠從會話表中,拖拽一個現有的請求。
使用時咱們只須要提供簡單的 URLS 地址便可。固然還能夠在 RequestBody 定製一些屬性,如模擬瀏覽器 User-Agent 等等。
6、抓取 iPhone / Android 設備的數據包
想要 Fiddler 抓取移動端設備的數據包,其實很簡單。只要設置代理,讓這些數據經過 Fiddler 便可。
(1)首先確保 PC 和手機是在同一個局域網下。打開 Fidder,點擊菜單欄中 Tools –> Telerik Fiddler Options
(2)勾選 Connections 選項卡中的「Allow remote computers to connect」容許遠程鏈接。
- 勾選後可能會要求重啓 Fiddler,那就重啓一下。
- 默認代理端口是 8888,能夠不須要修改。
(3)將手機端的代理設置爲 PC 的 IP 和端口(這裏假設咱們 PC 地址爲 192.168.1.101)
(4)接着打開手機瀏覽器,訪問 PC 的地址+端口
(5)在打開的頁面中點擊「FiddlerRoot certificate」,下載並安裝證書。
(6)安裝完了證書,使用用手機訪問應用,就能夠看到截取到的數據包了。(這裏我使用百度外賣 App 隨便測試了下)
原文出自:www.hangge.com 轉載請保留原文連接:http://www.hangge.com/blog/cache/detail_1697.htmlhtml