在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.mzph.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…