Fiddler的一些技巧

目录:
  • 1、原理简介:
  • 2、一些常用技巧介绍:
  • (1)Fiddler中设置断点修改Request
  • (2)Fiddler中设置断点修改Response
  • (3)自动重定向 AutoResponder 到本地文件
  • (4)过滤会话 session list filter:
  • (5)请求构建器(Request Builder)、对两个数据流进行比较
  • (6)文本编码和解码:开启Tools -> Text Encode/Decode
  • (7)模拟user-agent:Rules->Customize Rules、模拟慢速网络
  • (8)fiddler 打印 cgi log:
  • (9)fiddler-使用技巧:
  • (10)FiddlerScript:
  • (11)Filters Reference:
  • (12)自定义列:Add Columns to the Web Sessions List:
  • (13)常用fiddler命令:
  • 3、注意的问题及解决方法
  • (1)chrome和firefox浏览器无法被监听
  • (2)无法代理本地web服务器的访问请求
  • (3)Fiddler不能监听Java HttpURLConnection请求,请看:
  • 4、其它
<script></script>

1、原理简介:

Fiddler 是目前最强大最好用的 Web 调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置 CGI 请求的断点,甚至修改输入输出数据。同类的工具还有httpwatch,firebug,wireshark,google审查元素。与这些基于网页浏览器的工具不同,fiddler是一个富客户端桌面工具,不仅能监听浏览器对网页的请求和对浏览器的响应(http和https请求),而且可以监听其他程序(比如java桌面应用)的http请求(当然需要额外的设置,在此不赘述)。另外,值得一提的是,即便在浏览器的调试中,它也能胜任其他工具,比如IE浏览器,当我们需要弹出一个模式对话框(modalDialog)时,这些浏览器监听插件就派不上用场了,还得fiddler出场。如果你还未曾听说过这个工具,请先阅读这篇科普文:《WEB 调试利器:Fiddler 教程》

fiddler 和常见的底层抓包(网卡) 工具不一样(如 wincap、wireshark),它是在 web server 和 web browser 之间搭了一层 proxy,所有的请求都会经过它,如下图所示:

 

\

    fiddler在客户浏览器及web服务器之间充当了一个请求及响应的代理角色,它会在本地建立一个默认代理服务,端口为8888,为此我们访问一下此端口,可见如下效果:

\

2、一些常用技巧介绍:

(1)Fiddler中设置断点修改Request

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->Before Requests(这种方法会中断所有的会话)
如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled
第二种:  在命令行中输入命令:  bpu www.baidu.com   (这种方法只会中断www.baidu.com)
如何消除命令呢?  在命令行中输入命令 bpu

(2)Fiddler中设置断点修改Response

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中断所有的会话)
如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled
第二种:  在命令行中输入命令:  bpafter www.baidu.com   (这种方法只会中断www.baidu.com)
如何消除命令呢?  在命令行中输入命令 bpafter,

(3)自动重定向 AutoResponder 到本地文件

创建重定向规则,例如将目标请求是这个js的HTTP请求重定向到本地文件

请参考阿里 UED 的这篇:使用Fiddler提高前端工作效率 (实例篇)

http://www.2cto.com/kf/201308/234828.html

(4)过滤会话 session list filter:

比如你可能在debug某些网页时,会遇到上百个请求,看的你眼花缭乱,这是你可以启用 fiddler 强大的过滤机制,还可以依据正则来过滤,

如: REGEX:(empty.js.gif|__utm.gif) ,

具体你可以参考:

http://fiddler2.com/documentation/KnowledgeBase/Filters

例如:

\

(5)请求构建器(Request Builder)、对两个数据流进行比较
(6)文本编码和解码:开启Tools -> Text Encode/Decode
(7)模拟user-agent:Rules->Customize Rules、模拟慢速网络
(8)fiddler 打印 cgi log:
(9)fiddler-使用技巧:

       http://vdisk.weibo.com/s/CcitC7ClCn_vr

       http://vdisk.weibo.com/s/CcitC7ClCopIM

(10)FiddlerScript:

         http://fiddler2.com/blog/blog/2013/07/15/understanding-fiddlerscript

(11)Filters Reference:

          http://fiddler2.com/documentation/KnowledgeBase/Filters

(12)自定义列:Add Columns to the Web Sessions List:

          可以看上图的蓝色方框就是自定义列

         http://fiddler2.com/documentation/KnowledgeBase/FiddlerScript/AddColumns

         举个栗子:

         在 rule规则脚本的 static function Main() 函数中添加 3 列:远程、本地ip、referer

 
1 static function Main() {
2     var today: Date = new Date();
3     FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today;
4     // Uncomment to add a "Server" column containing the response "Server" header, if present
5     // FiddlerObject.UI.lvSessions.AddBoundColumn("Server", 50, "@response.server");
6     FiddlerObject.UI.lvSessions.AddBoundColumn("remoteIP", 50, "X-HOSTIP");
7     FiddlerObject.UI.lvSessions.AddBoundColumn("localIP", 50, "X-CLIENTIP");
8     FiddlerObject.UI.lvSessions.AddBoundColumn("Referer", 50, "Referer");
9 }
(13)常用fiddler命令:
选择类:?text、>size、<size、=status、@host、
blod text、select、allbut、keeponly
断点类:bpafter、bps、bpv、bpm、bpu
控制类:hide、start、stop、show、quit

其他:cls/clear、dump、g/go、help、urlreplace

例如:?text 高亮选中会话后,shift + delete 即可反选删除,这样就过滤除了你要的 session 请求。

http://fiddler2.com/documentation/KnowledgeBase/QuickExec

 

3、注意的问题及解决方法

(1)chrome和firefox浏览器无法被监听
fiddler安装之后,默认会在IE浏览器中安装一个fiddler的插件,所以它对IE及国内基于IE内核的各类浏览器都能实现监听,但其他内核的浏览器无法被监听。
解决办法:禁用chrome和firefox中具有代理功能的插件,比如我的chrome安装了switchSharp,禁用它或选择“使用系统代理设置”,或在switchSharp中新配置一个代理项(比如名为fiddler,用于指向代理127.0.0.1,端口8888,如下图),即可实现监听。

\

(2)无法代理本地web服务器的访问请求
使用fiddler的时候,我们更多的是基于本地程序的调试,可惜fiddler捕捉不了本地(localhost或127.0.0.1)的http请求。难道fiddler就束手无策了吗?当然不是。
一般我们访问安装在本地的服务器程序时,使用的localhost或127.0.0.1,默认会绕过代理,直接访问目标服务器,通过fiddler特有的请求方式,可以使本地请求及响应都被fiddler拦截。

\

方法一:在localhost后增加.fiddler
比如请求http://localhost:8080改为http://localhost.fiddler:8080即可
方法二:更简单,在localhost或127.0.0.1后增加一个点即可
比如http://localhost.:8080

\

具体请参考:http://www.2cto.com/kf/201308/234833.html

(3)Fiddler不能监听Java HttpURLConnection请求,请看:
http://www.2cto.com/kf/201308/234835.html

http://stackoverflow.com/questions/8549749/how-to-capture-https-with-fiddler-in-java

4、其它

为什么想来总结一下呢,是因为最近有个测试需求,需要检测某个网页指定的 url 请求个数,测试的同学还为此专门用  JPCAP 开发了一个系统来监听指定的网卡,抓包、解包,分析请求的数据包,然后得出指定 url 的个数。感觉这个有点大材小用了,呵呵。因为这个 fiddler 就已经可以搞定了,然后 ctrl - a、ctrl - c 即可满足需求了,只是没有完全自动化而已,呵呵。

最后题外话一下有关 JPCAP 的东西:

       众所周知,JAVA语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。JPCAP扩展包弥补了这一点。

  JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用wincap/libpcap,而给JAVA语言提供一个公共的接口,从而实现了平台无关性。在官方网站上声明,JPCAP支持FreeBSD 3.x, Linux RedHat 6.1, Fedora Core 4, Solaris, and Microsoft Windows 2000/XP等系统。JPCAP的整个结构大体上跟wincap/libpcap是很相像的,例如NetworkInterface类对应wincap的typedef struct _ADAPTERADAPTER,getDeviceList()对应pcap_findalldevs()等等。 使用 JPCAP 实现监听利用的是所谓的“ARP欺骗”技术。具体请参考:http://www.2cto.com/kf/201308/234835.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Fiddler 使用手册是一本详细介绍和指导如何使用 Fiddler 的指南。Fiddler 是一个功能强大的网络调试工具,可以帮助用户监控和调试网络流量。它可以捕获来自浏览器、APP、系统服务等各种应用程序的 HTTP 和 HTTPS 通信数据,并提供了丰富的功能和工具,方便用户对这些数据进行分析和修改。 Fiddler 使用手册通常包含以下几个部分: 1. 简介与安装:在这一部分,手册会简要介绍 Fiddler 的概念和作用,并提供详细的安装步骤,帮助用户快速上手。 2. 主界面导览:手册会详细介绍 Fiddler 的主要界面元素和功能,如会话列表、请求和响应面板等,让用户熟悉 Fiddler 的界面和操作方式。 3. 功能和工具:Fiddler 提供了许多功能和工具,如截获和过滤数据、自动化脚本、重放会话、修改请求和响应等。手册会对这些功能进行详细说明,并提供示例和使用技巧,帮助用户充分发挥 Fiddler 的能力。 4. 高级功能和配置:对于一些高级用户或开发者来说,手册还会介绍一些更复杂的功能和配置,如自定义规则、修改响应头和内容、使用插件等。 5. 常见问题解答:手册通常还会提供一些常见问题和解答,帮助用户解决常见的使用问题和故障。 通过阅读 Fiddler 使用手册,用户可以系统地学习并掌握 Fiddler 的使用方法和技巧,提升网络调试和分析的能力。无论是前端开发人员、后端工程师还是安全研究人员,对于网络数据的监控和分析都是非常重要的,而 Fiddler 作为一款简单易用又功能强大的工具,其使用手册的编写和传播无疑能够帮助更多用户了解和使用 Fiddler

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值