一、简介

1、简介

Fiddler是一个免费的Web调试代理,适用于任何浏览器,系统或平台。

2、特性

  • 可定制的免费工具

可以使用FiddlerScript或任何.NET语言开发功能强大的扩展工具。

  • Web会话操作

可以很简单的编辑Web会话:通过设置断点暂停会话处理(请求发送),而且可以修改请求/响应(可用于安全测试)。

  • 性能测试

使用Fiddler可以一目了然地看到整个HTTP请求的所有数据、缓存和压缩等;也可以使用自定义规则标记例如”大于25kb未压缩的响应”来处理性能瓶颈。

  • 安全测试

使用Fiddler可以修改Web应用程序请求、解密HTTPS请求;也可以通过配置来解密所有请求(traffic)或只解密特定的会话。

  • HTTP/HTTPS流量记录

使用Fiddler可以记录计算机与Internet之间的所有HTTP(S)请求。

  • Web调试

可以使用Fiddler来调试来自任何设备(PC、移动设备等)的请求,以确保在客户端和服务器之间传输合适的cookies、headers和cache。

二、配置

1、代理端口

通过Tools -- Options...打开配置窗口,在Connections页签中可以设置代理端口:

2、配置Host

通过Tools -- HOSTS...打开Host配置窗口,在文本区域中配置Host映射;配置方法与系统Host配置一致,只是此处配置仅在Fiddler工作时有效。

三、Fiddler功能简介

1、工具栏

  • 添加注释

可以给选中的请求添加备注:

  • 重发请求

将选中的请求重新发送,快捷键为R,Shift+Replay可以重发指定次数的该请求:

  • 移除会话

移除列表中全部会话或指定类型的会话,移除列表所有会话的快捷键为Ctrl+X

  • 继续会话

继续当前被断点暂停的所有会话,如果只想继续单个会话需要先选中会话同时按Shift键:

  • 切换工作模式

使用Stream按钮可以切换Fiddler的工作模式:流模式或缓冲模式,默认为缓冲模式。

流模式:实时将服务器数据返回到客户端;

缓冲模式:等待请求的所有数据准备好之后才将数据返回到客户端。

  • 解码

使用Decode按钮可以决定是否开启解码功能,如果开启则会将所有请求解压以便查看。

  • 设置保持会话

设置Fiddler保持会话的最大个数。

  • 设置捕获请求的进程

可以使用此功能来指定Fiddler只捕获某个进程的请求,右键点击此按钮可以去掉过滤。

  • 查找会话(请求)

可以在会话列表中查找指定的会话,并按指定的颜色高亮显示:

  • 保存会话

使用Save按钮可以将当前会话保存为.saz文件,之后可通过FileLoad Archive...来加载保存的会话。

  • 截屏与计时

截屏默认有5秒倒计时,同时按Shift键可立即截屏。

左键点击计时可控制计时的开时与结束,右键重置。

  • 打开浏览器

使用指定的浏览器打开选中的请求,如果没有选中则只打开浏览器:

  • 文本编码/解码

可以使用Fiddler的TextWizard工具对文本按指定的格式编码或解码:

  • 分离详情视图

可以点击Tearoff按钮将详细信息视图以浮动窗口的形式展现:

2、状态栏

  • 控制台

可以在控制台中执行类似cls(清空列表)、help(帮助)的命令:

  • 是否捕获请求

点击可切换控制Fiddler是否捕获请求:

  • 过滤会话

过滤会话列表中的请求:

  • 请求断点

可以通过点击此处来设置发送请求前与响应前的断点。

  • 选中请求/请求总数与URL

3、详情面板

  • 数据统计

可以通过数据统计来分析请求的性能。

  • 检查分析

可以通过Inspectors视图看到请求的Request及Response的详细信息。

  • 自动响应

可以修改指定请求的响应,此功能可以用于调试修复线上的BUG:例如调试找到问题原因后,在AutoResponder中添加规则,将线上的某个JS文件用本地修改之后的文件替换,然后清缓存,此时浏览器会加载替换后的JS文件,之后即可在浏览器中验证。

选中请求后添加规则,在Rule Editor的第二个下拉框中选Find a file…:

修改文件内容:

重新刷新浏览器:

也可以直接使用Fiddler提供的响应,例如:404、502等。

  • Web接口调试

可以在Composer视图下编辑请求方式及参数等,点击Execute发送请求;也可以直接在左侧会话例表中拖一个请求到Composer中,基于此请求做修改。

如果是POST请求,则需将请求参数写在Request Body中。

  • 时间线

可选中一个或多个请求在Timeline视图中查看整个请求的时间,一般在性能分析时使用。

  • Fiddler脚本

使用FiddlerScript可以增强Fiddler的功能,例如通过脚本来实现网络限速:

在OnBeforeRequest方法中增加oSession["request-trickle-delay"]="3000";来实现将请求延迟3秒发送:

也可以在OnBeforeRequest方法中增加oSession["response-trickle-delay"]="3000";将响应延迟3秒。

附: