Fiddler过滤深度探究

一、Filter介绍

Fiddler是一款免费的web调试代理工具,不仅可以查看和修改HTTP请求和响应数据,并且还有非常强大的过滤功能,这让我们在调试过程中能够过滤掉不必要的内容,大大提高调试效率。Filter是Fiddler中非常重要的一个功能,通过Filter可以实现只展示特定内容、过滤掉无关内容、快速定位调试信息等功能。

二、Filter的基础使用

Fiddler的主界面中最上方是Filter选项卡,我们在这里可以输入过滤的关键词,下方会自动显示符合条件的会话列表。最简单的使用方法就是输入关键词,然后点击“Show Only Matching Sessions”按钮,就可以看到符合条件的会话列表,如下所示:

//简单filter示例
//过滤掉所有URL地址中包含“baidu”关键字的会话
if (oSession.uriContains("baidu")) {
    oSession["ui-hide"] = "true";
}

除了uriContains,Fiddler还支持其他多种过滤方式,例如:uriMatches、uriEquals、oSession.RequestHeaders.AllKeys.Contains()等。同时,我们还可以利用not关键字实现反向匹配,例如:“not(uriContains(“facebook”))”,这样的Filter就是过滤掉所有包含“facebook”的会话。

三、Filter高级功能

1、正则表达式的使用

除了简单的文本过滤之外,Fiddler还支持使用正则表达式进行过滤。在Filter选项卡中,勾选“Use regular expressions”选项,就可以在过滤关键字输入框中使用正则表达式了。

//正则表达式filter示例
//过滤掉URL中以.baidu.com为结尾的会话
if (oSession.uriMatches(".*/[.]?baidu[.][^/]*$")) {
    oSession["ui-hide"] = "true";
}

2、自定义列的添加和过滤

Fiddler中可以方便地添加自定义列,在自定义列中可以显示我们需要的信息,例如请求头、响应头信息、页面加载时间、HTTP状态码等。自定义列中的内容也支持过滤操作,在Filter选项卡中,点击“Filter by Column”按钮就可以进行自定义列的过滤。

//自定义列和自定义列过滤filter示例
//自定义列名“MyHeader”,显示oSession.RequestHeaders["MyHeader"]的值
FiddlerObject.UI.lvSessions.AddBoundColumn("MyHeader","MyHeader value","RequestHeaders", "MyHeader");
//过滤掉MyHeader值为"SensitiveValue"的会话
if (oSession.RequestHeaders["MyHeader"]=="SensitiveValue") {
    oSession["ui-hide"] = "true";
}

3、JavaScript脚本的使用

Fiddler支持在Filter中使用JavaScript脚本,这让我们在过滤方面有了更强大的控制。通过JavaScript脚本我们可以实现更为复杂的逻辑过滤,以及定位特定的会话信息。

//JavaScript脚本filter示例
//过滤掉所有含有图片和脚本的会话
if(oSession.oResponse.headers.ExistsAndContains("Content-Type", "image/") || 
   oSession.oResponse.headers.ExistsAndContains("Content-Type", "script/")){
    oSession["ui-hide"] = "true";
}

四、Filter的效率和性能

Filter的效率和性能对于Fiddler的使用和性能至关重要。当我们的过滤条件变得复杂或者数据量变得庞大时,Filter的效率和性能就会受到一定的影响。在实际使用中,推荐在Filter条件中使用最简单的文本过滤,避免使用反复匹配的过滤条件以及复杂的JavaScript操作。

五、总结

Fiddler的Filter功能非常强大,可以让我们快速定位并修复错误。无论是基础还是高级的Filter操作,都可以通过Fiddler的帮助文档和详细的API进行实现。在实际开发中,我们可以灵活地使用Filter功能,达到根据需求进行快速和准确的定位与调试的目的。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/258401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-15 12:49
下一篇 2024-12-15 12:49

相关推荐

  • 深度查询宴会的文化起源

    深度查询宴会,是指通过对一种文化或主题的深度挖掘和探究,为参与者提供一次全方位的、深度体验式的文化品尝和交流活动。本文将从多个方面探讨深度查询宴会的文化起源。 一、宴会文化的起源 …

    编程 2025-04-29
  • Python下载深度解析

    Python作为一种强大的编程语言,在各种应用场景中都得到了广泛的应用。Python的安装和下载是使用Python的第一步,对这个过程的深入了解和掌握能够为使用Python提供更加…

    编程 2025-04-28
  • Python递归深度用法介绍

    Python中的递归函数是一个函数调用自身的过程。在进行递归调用时,程序需要为每个函数调用开辟一定的内存空间,这就是递归深度的概念。本文将从多个方面对Python递归深度进行详细阐…

    编程 2025-04-27
  • 如何解决Fiddler抓不到谷歌浏览器的包问题

    当使用Fiddler工具抓取网络数据包时,由于谷歌浏览器的加密机制,使得Fiddler无法直接抓取到谷歌浏览器发送的网络数据包。下面将从几个方面阐述如何解决这个问题。 一、关闭谷歌…

    编程 2025-04-27
  • Spring Boot本地类和Jar包类加载顺序深度剖析

    本文将从多个方面对Spring Boot本地类和Jar包类加载顺序做详细的阐述,并给出相应的代码示例。 一、类加载机制概述 在介绍Spring Boot本地类和Jar包类加载顺序之…

    编程 2025-04-27
  • 深度解析Unity InjectFix

    Unity InjectFix是一个非常强大的工具,可以用于在Unity中修复各种类型的程序中的问题。 一、安装和使用Unity InjectFix 您可以通过Unity Asse…

    编程 2025-04-27
  • 深度剖析:cmd pip不是内部或外部命令

    一、问题背景 使用Python开发时,我们经常需要使用pip安装第三方库来实现项目需求。然而,在执行pip install命令时,有时会遇到“pip不是内部或外部命令”的错误提示,…

    编程 2025-04-25
  • 动手学深度学习 PyTorch

    一、基本介绍 深度学习是对人工神经网络的发展与应用。在人工神经网络中,神经元通过接受输入来生成输出。深度学习通常使用很多层神经元来构建模型,这样可以处理更加复杂的问题。PyTorc…

    编程 2025-04-25
  • 深度解析Ant Design中Table组件的使用

    一、Antd表格兼容 Antd是一个基于React的UI框架,Table组件是其重要的组成部分之一。该组件可在各种浏览器和设备上进行良好的兼容。同时,它还提供了多个版本的Antd框…

    编程 2025-04-25
  • Fiddler手机抓包iOS完全指南

    在移动应用开发中,我们常常需要对应用程序进行调试和优化。Fiddler是一个常用的网络调试工具,可以帮助开发人员更好地观察和分析网络请求,识别请求中的问题和错误。在这篇文章中,我们…

    编程 2025-04-25

发表回复

登录后才能评论