Fiddler 反向代理調試:修改http請求、修改http響應

Fiddler 抓包調試

 

Fiddler 是一款功能強大的 http 抓包工具,對於 http 請求響應抓包調試十分實用,可以很方便查看 http 請求,http 響應的內容,修改 http 請求後重新發送,攔截 http 響應修改後重新響應;

 

Fiddler 基本界面介紹

以下是 fiddler 主界面的工具欄

 

其中“切換代理模式”,fiddler 有以下 2 種代理模式:

緩衝模式:http 請求把所有數據緩衝結束後,再返回給客戶端;

流模式:實時把服務器的數據返回給客戶端;

 

請求響應調試工具欄常用組件面板介紹:

  • Statistics:顯示當前用戶選擇的 Sessions 的彙總信息;
  • Inspectors:允許使用多種不同格式查看每個請求和響應的內容;
  • AutoResponder:將某一請求的響應結果替換成指定的資源;
  • Composer:創建自定義 http 請求,用於調試後端接口十分方便;
  • Filters:過濾器功能,用於對請求進行自定義規則過濾;
  • Timeline:用於分析請求響應時間,類似於 chrome network 調試面板的請求時間線;

 

 


Fiddler 反向代理調試

 

解決抓取 https 連接返回 443 問題

如果抓包請求爲 https 請求,fiddler 會默認返回443端口無法解析的記錄,類似如下:

進入【Tools -> Options -> HTTPS】, 勾選 Capture HTTPS traffic,Decrypt HTTPS traffic,之後重新啓動 fiddler

 

過濾 http 請求

進入 Filter 面板,勾選 Use Filters 選項,比如需要只顯示“api.bilibili.com”主機下的請求,可以如以下設置:

當然 Fileters 還有十分豐富的過濾配置,可以根據需求進行相應的請求過濾配置,如 Client process 可以對請求來源進行過濾,Request Headers 可以對請求頭進行過濾,Response Status Code、Response Typeand Size 可以對響應狀態碼、響應類型進行配置;

 

修改重發 http 請求

Fillder 一個十分實用的功能,就是可以修改攔截到的 http 請求,修改請求參數後重新發送改請求,這個功能對於後端接口的調試十分方便(因爲有些 http 請求需要驗證 session,cookie 等數據,如果手動編寫請求腳本,還原參數部分十分麻煩),特別是後端 web controller 相應的接口有比較複雜的條件判斷分支,如果僅僅靠客戶端界面去修改數據發送請求,有些判斷分支的進入場景是十分難以再現的,使用這個功能可以直接修改請求參數,儘可能達到後端接口 controller 的每一個判斷分支;

以下以更改 bilibili 視頻詳情頁評論接口 https://api.bilibili.com/x/v2/reply?callback=jQuery17203964950070835611_1531888910878&jsonp=jsonp&pn=1&type=1&oid=26473757&sort=0&_=1531888915223,分頁參數爲例:

  • 右鍵指定請求,點擊 Unlock For Editing 

  • 在 Inspectors 頁中修改 Request Headers 中的分頁 pn 請求參數(pn),因爲該請求爲 GET 請求,請求參數放置在 url 中,可以直接這樣操作,如果是 POST 請求等把請求參數放置在請求正文中(表單形式、json、xml 等),可以在 TextView 或 SyntaxView 頁中修改該請求參數;

  • 右鍵該請求,選擇  Replay -> Reissue Requests,即可獲取該請求修改參數後返回的 http 響應;

 

修改重發 http 響應

同樣的,Fiddler 也可以修改某個請求的響應正文,之後再該攔截該請求,自動將響應正文替換爲修改後的響應正文,這個功能主要用在前端頁面的調試上面,十分方便,無需後端接口編寫某些特定的返回值,同時對比 chrome 自帶的 source 工具,又具有跨頁面調試的優勢;

以下以修改bilibili 番劇詳情頁  https://bangumi.bilibili.com/ext/web_api/season_count?season_id=24572&season_type=1 http 響應正文中的番劇觀看數量參數(views) ,驗證前端字段渲染正確性爲例;

  • 解鎖該請求,同修改 http 請求步驟一樣,右鍵請求,選擇 Unlock For Edit;
  • 在 Inspectors 面板中,在響應部分的 SyntaxView 或 TextView 修改響應的參數;

  • 直接拖動該請求到 AutoResponder ,勾選 Enable rules,Unmatcjed requests passthrough 

  • 重新刷新瀏覽器頁面,或者進行任何可以重新觸發該請求的操作,可以在前端頁面看到該響應數據被修改後的情況;

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章