在Fiddler中添加自定義HTTP方法列并高亮顯示

在Fiddler中添加自定義HTTP方法列并高亮顯示

Fiddler 是一款強大的 Web 調試代理工具,允許開發者檢查和操作 HTTP 流量。一個常見需求是自定義 Web Sessions 列表,添加顯示 HTTP 方法(GET、POST 等)的列,并通過顏色區分不同方法。本文將指導你如何在 Fiddler 中添加一個 HTTPMethod 自定義列,并為 POST 請求設置紅色背景、GET 請求設置綠色背景。

為什么要自定義 Fiddler?

Fiddler 的 Web Sessions 列表提供了 HTTP 請求和響應的詳細信息,但默認列可能無法滿足所有需求。例如,你可能希望快速區分 GET 和 POST 請求,并讓 POST 請求在調試表單提交或 API 調用時更顯眼。通過添加自定義列和高亮顯示,你可以優化調試流程,提高效率。

解決方案:使用 FiddlerScript 和 BindUIColumn

我們將使用 FiddlerScript(基于 JScript.NET 的腳本引擎)來添加自定義列并實現顏色高亮。BindUIColumn 方法適合提取 HTTP 方法,而 OnBeforeRequest 鉤子可用于根據方法設置顏色。

步驟 1:打開 FiddlerScript 編輯器

  1. 啟動 Fiddler(Fiddler Classic 或 Fiddler Everywhere)。
  2. 點擊菜單欄的 Rules > Customize Rules(或按 Ctrl+R),打開 CustomRules.js 文件。

步驟 2:添加自定義 HTTPMethod 列

我們使用 BindUIColumn 屬性定義一個名為 HTTPMethod 的列,通過自定義函數提取每個會話的 HTTP 方法。

CustomRules.js 中添加以下代碼:

public static BindUIColumn("HTTPMethod", 80)
function CalcMethodCol(oS: Session) {if (oS != null && oS.oRequest != null && oS.oRequest.headers != null) {return oS.oRequest.headers.HTTPMethod; // 返回 GET、POST 等}return "N/A"; // 無效會話的默認值
}
  • 說明
    • BindUIColumn("HTTPMethod", 80) 定義列名 HTTPMethod,寬度為 80 像素。
    • CalcMethodCol 函數為每個會話(oS)計算列值。
    • oS.oRequest.headers.HTTPMethod 獲取 HTTP 方法(如 GET、POST)。
    • 添加了空值檢查,避免異常并返回 "N/A"

步驟 3:高亮 POST 和 GET 請求

為 POST 和 GET 請求設置不同背景色,我們修改 OnBeforeRequest 函數,根據 HTTP 方法設置會話顏色。

CustomRules.js 中添加或更新以下代碼:

public static RulesOption("高亮 POST 請求")
var m_HighlightPost: boolean = true;static function OnBeforeRequest(oSession: Session) {if (m_HighlightPost && oSession.HTTPMethodIs("POST")) {oSession["ui-color"] = "red"; // POST 請求背景設為紅色} else if (m_HighlightPost && oSession.HTTPMethodIs("GET")) {oSession["ui-color"] = "green"; // GET 請求背景設為綠色}
}
  • 說明
    • RulesOption("高亮 POST 請求")Rules 菜單中添加一個可切換選項,控制高亮功能。
    • m_HighlightPost 是一個布爾標志,用于啟用或禁用高亮。
    • OnBeforeRequest 在處理每個請求前運行。
    • oSession.HTTPMethodIs("POST") 檢查是否為 POST 請求,oSession["ui-color"] = "red" 將背景設為紅色。
    • GET 請求同樣被設置為綠色。
    • ui-color 屬性控制 Web Sessions 列表中的背景顏色。

步驟 4:保存并測試

  1. 保存 CustomRules.js 文件。
  2. Fiddler 通常會自動重新加載腳本。如未生效,重啟 Fiddler 或重新打開 Customize Rules
  3. 發起一些 HTTP 請求(例如瀏覽網頁、提交表單,或使用 curl 發送 GET 和 POST 請求)。
  4. 在 Web Sessions 列表中檢查:
    • 新增的 HTTPMethod 列應顯示方法(如 GET、POST)。
    • POST 請求顯示紅色背景,GET 請求顯示綠色背景。

示例效果

應用腳本后,Web Sessions 列表可能如下:

  • GET /index.htmlHTTPMethod 列顯示 GET,行背景為綠色。
  • POST /submit-formHTTPMethod 列顯示 POST,行背景為紅色。
  • 無效會話HTTPMethod 列顯示 N/A,無顏色。

故障排除

如果列或顏色未按預期工作,嘗試以下步驟:

  • 列值為空:確認 oS.oRequest.headers.HTTPMethod 可訪問。添加調試日志檢查值:

    FiddlerObject.log("HTTP 方法: " + oS.oRequest.headers.HTTPMethod);
    

    Log 面板查看輸出。

  • 顏色未生效:驗證 oSession.HTTPMethodIs("POST") 是否正常工作。測試一個已知的 POST 請求(如表單提交)。

  • 腳本錯誤:檢查 Log 面板中的語法錯誤,修復 CustomRules.js 中的問題。

  • Fiddler 版本:確保使用最新版本的 Fiddler Classic 或 Fiddler Everywhere,腳本支持可能因版本而異。

為什么選擇 BindUIColumn?

最初嘗試使用 AddBoundColumn 配合 @method@request.Method,但這些方法有時因字段不可用或版本差異導致值為空。BindUIColumn 更可靠,因為它通過自定義函數顯式控制列值,確保兼容性和穩定性。

結論

通過在 Fiddler 中添加 HTTPMethod 自定義列和高亮顯示,你可以更高效地分析 HTTP 流量。BindUIColumn 結合 OnBeforeRequest 的方法為 Fiddler 的功能擴展提供了強大支持。這對調試 API、Web 表單或復雜 Web 應用尤為有用。

你可以進一步擴展腳本,例如為 PUT、DELETE 等方法添加支持,或調整顏色以適應個人偏好。祝調試愉快!


于 2025 年 5 月 8 日在 Fiddler Classic 上測試。對于 Fiddler Everywhere,請參考官方文檔確認腳本差異。

最后效果查看:在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80585.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫分庫分表實戰指南:從原理到落地

1. 為什么要分庫分表? 1.1 單庫瓶頸表現 存儲瓶頸:單表數據超過5000萬行,查詢性能急劇下降性能瓶頸:單庫QPS超過5000后響應延遲顯著增加可用性風險:單點故障導致全系統不可用 1.2 突破性優勢 --------------------…

Selenium的driver.get_url 和 手動輸入網址, 并點擊的操作,有什么不同?

我在搞爬取的時候,發現有些網站直接用driver.get(url) 跳轉到目標特定的網址的時候,會被強制跳轉到其他的網址上,但是如果是自己手動,在網址欄那里輸入網址,并點回車,卻能完成跳轉。 這是在使用 Selenium …

Java【06】數組查找(二分查找)、排序(冒泡排序、簡單選擇排序)

1. 數組的操作 1.1 數組的反轉 int[] arrs{3,5,7,8,9}; 編寫程序,讓arrs中的數據進行反轉{9,8,7,5,3} 1.2數組的查找 ① 順序查找 從頭到尾一個一個的找! ② 二分查找 對數組有一個要求:數組必須是有序(大小)的! int num3; int[]…

Redis 基礎詳解:從入門到精通

在當今互聯網應用開發領域,數據存儲與處理的性能和效率至關重要。Redis(Remote Dictionary Server)作為一款開源的、基于內存的鍵值存儲系統,憑借其出色的性能和豐富的功能,被廣泛應用于數據庫、緩存、消息中間件等場景…

圖片轉ICO圖標工具

圖片轉ICO圖標 可批量操作 下載地址: 鏈接:https://pan.quark.cn/s/6312c565ec98 這個工具是一個批量圖片轉ICO圖標的神器,有了它,以后再也不用為ICO格式的轉換煩惱!而且這個軟件特別小巧,完全不用安裝。…

0基礎 | L298N電機驅動模塊 | 使用指南

引言 在嵌入式系統開發中,電機驅動是一個常見且重要的功能。L298N是一款高電壓、大電流電機驅動芯片,廣泛應用于各種電機控制場景,如直流電機的正反轉、調速,以及步進電機的驅動等。本文將詳細介紹如何使用51單片機來控制L298N電…

Flink 系列之十五 - 高級概念 - 窗口

之前做過數據平臺,對于實時數據采集,使用了Flink。現在想想,在數據開發平臺中,Flink的身影幾乎無處不在,由于之前是邊用邊學,總體有點混亂,借此空隙,整理一下Flink的內容&#xff0c…

大疆卓馭嵌入式面經及參考答案

FreeRTOS 有哪 5 種內存管理方式? heap_1.c:這種方式簡單地在編譯時分配一塊固定大小的內存,在整個運行期間不會進行內存的動態分配和釋放。它適用于那些對內存使用需求非常明確且固定,不需要動態分配內存的場景,優點是…

Java 線程池原理

Java 線程池是一種管理和復用線程的機制,其原理如下: 核心概念 線程池的初始化 :在創建線程池時,需要設置一些關鍵參數,如核心線程數(corePoolSize)、最大線程數(maximumPoolSize&am…

大模型都有哪些超參數

大模型的超參數是影響其訓練效果、性能和泛化能力的關鍵設置,可分為以下幾大類別并結合實際應用進行詳細說明: 一、訓練過程相關超參數 學習率(Learning Rate) 作用:控制參數更新的步長,直接影響收斂速度和穩定性。過高會導致震蕩或過擬合,過低則收斂緩慢。調整策略:初…

路由器斷流排查終極指南:從Ping測試到Wireshark抓包5步定位法

測試路由器是否出現“斷流”(網絡連接間歇性中斷),需通過多維度排查硬件、軟件及外部干擾因素。以下是詳細步驟指南: 一、基礎環境準備 設備連接 有線測試:用網線將電腦直接連接路由器LAN口,排除WiFi干擾。…

低代碼開發:開啟軟件開發的新篇章

摘要 低代碼開發作為一種新興的軟件開發方式,正在迅速改變傳統軟件開發的模式和效率。它通過可視化界面和預設的模板,使非專業開發者也能夠快速構建應用程序,極大地降低了開發門檻和成本。本文將深入探討低代碼開發的定義、優勢、應用場景以及…

基于Django汽車數據分析大屏可視化系統項目

基于Django汽車數據分析大屏可視化系統項目 一、項目概述 本項目是一個基于 Python 的汽車數據分析大屏可視化系統,旨在通過直觀的可視化界面展示汽車相關數據,幫助用戶更好地理解和分析汽車市場動態、車輛性能等信息。系統采用前后端分離的架構&#…

WebRTC通信原理與流程

1、服務器與協議相關 1.1 STUN服務器 圖1.1.1 STUN服務器在通信中的位置圖 1.1.1 STUN服務簡介 STUN(Session Traversal Utilities for NAT,NAT會話穿越應用程序)是一種網絡協議,它允許位于NAT(或多重 NAT)…

Beta分布--貝葉斯建模概率或比例常用分布

Beta分布是一種定義在區間 ([0, 1]) 上的連續概率分布,常用于描述比例或概率的不確定性。它的形狀由兩個正參數 (\alpha)(alpha)和 (\beta)(beta)控制,能夠呈現多種形態(如對稱、偏態、U型等&am…

深度學習算法:開啟智能時代的鑰匙

引言 深度學習作為機器學習的一個分支,近年來在圖像識別、自然語言處理、語音識別等多個領域取得了革命性的進展。它的核心在于構建多層的神經網絡,通過模仿人腦處理信息的方式,讓機器能夠從數據中學習復雜的模式。 深度學習算法的基本原理…

深入了解linux系統—— 自定義shell

shell的原理 我們知道,我們程序啟動時創建的進程,它的父進程都是bash也就是shell命令行解釋器; 那bash都做了哪些工作呢? 根據已有的知識,我們可以簡單理解為: 輸出命令行提示符獲取并解析我們輸入的指令…

Redux和Vuex

為什么React和Vue需要Redux和Vuex 狀態管理需求的演變 #mermaid-svg-GaKl3pkZ82yc1m8E {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GaKl3pkZ82yc1m8E .error-icon{fill:#552222;}#mermaid-svg-GaKl3pkZ82yc1m8E…

Kubernetes排錯(十三):Pod間偶發超時問題排查

在微服務架構中,Pod間偶發的通信超時是最令人頭疼的問題之一。本文將通過生產環境中的真實案例,手把手教你定位這類"幽靈問題"。 一、快速定位問題方向(5分鐘縮小范圍) 1. 基礎檢查三板斧 # 檢查Service與Endpoint映…

Nginx 源碼安裝成服務

一、環境準備 一臺裝有 CentOS 7.9 的虛擬機(IP: 192.168.40.81)nginx-1.21.6.tar.gz 安裝包一個(版本隨意) 二、安裝 1)解壓 nginx-1.21.6.tar.gz tar -xzvf nginx-1.21.6.tar.gz -tar:這是一個在 Linu…