一、简介
1.1 前言
- Fiddler是最常用的Web调试工具之一。对于开发而言:
- 前端可以通过Fiddle代理来调试JS、CSS、HTML样式。
- 后端可以通过Fiddle查看请求和响应、定位问题。
- 测试可以通过抓包方式,修改前端请求参数、模拟后端返回,快速定位缺陷。
1.2 简介
-
Fiddler是一个HTTP协议调试代理工具,是由C#编写的,包含一个简单却功能强大的基于JS.NET事件的脚本子系统,灵活性极高,并且能够使用.NET框架语言进行扩展,可以记录并检查所有客户端和服务器之间的HTTP和HTTPS请求以允许监视、设置断点,甚至是修改输入输出数据,也可以进行请求构造、设置网络丢包和延迟进行APP弱网测试等。
1.3 原理解析

- Fiddler的原理是以Web代理服务器的形式进行工作的,代理(Proxy)就是在客户端和服务器之间设置一道关卡。
- 对Web客户端而言,Fiddler(代理)扮演的是服务器的角色,接受请求报文、返回响应报文;
- 对于Web服务器而言,代理扮演的是客户端的角色,发送请求报文、接受Web响应报文。
二、下载安装
2.1 下载:
-
官网选择
FIDDLER TOOLS>Fiddler Classic;
-
点击
Try For Free;
-
选择使用原因,然后再填写邮箱,选
Country,勾选上I agree以及I accept,再点击Download For Windows,就会自动下载。
2.2 安装
-
双击运行下载文件,点击
I agree;

-
修改存放路径,点击
Install;

-
等待安装完成;
-
双击
Fiddler.exe启动,点击弹窗中的cancel;
三、界面详解
-
打开Fiddler,界面可以分为6部分:
- 菜单栏
- 工具栏
- 会话面板
- 辅助标签+工具
- 命令行
- 状态栏
3.1 菜单栏
-
File菜单
-
Edit菜单
- Copy:子菜单分别支持复制选中Session的某些信息;
- Remove:子菜单分别支持从Web Session列表中删除全部、选中或反选Session;
- Select All(或Ctrl + A):命令选中Sessions列表的所有内容;
- Paste as session:粘贴内容,生成一个或多个模拟的Web Session;
- Find Session(或Ctrl + F):搜索捕获到的数据流。
-
Rules菜单
-
Hide Image Request:触发器控制是否在Web Session列表中显示图像类Session; -
Hide CONNECTS:触发器控制是否在Web Session列表中显示使用CONNECT请求方法的Session; -
Automatic Breakpoints:子菜单控制Fiddler是否会自动在Before Requests或After Responses处设置断点。Ignore Image触发器控制这些断点是否作用于图片请求; -
Customize Rules…(或 Ctrl + R):菜单命令会使用配置的脚本编辑器打开当前的FiddlerScript文件; -
Require Proxy Authentication:如果选中Require Proxy Authentication菜单项,所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应,要求客户端安装证书,该规则可以用于测试HTTP客户端,确保这些规则在有证书的客户端服务器上可以正常工作; -
Apply GZIP Encoding:如果选中Apply GZIP Encoding菜单项,只要请求包含具有gzip标识的Accept-Encoding请求头,就会对除了图片以外的所有响应使用GZIP HTTP进行压缩。该规则用于测试使用GZIP选项支持的客户端是否真正对内容进行压缩。该选项还支持性能调优,并且计算传输的压缩后的数据流的字节数; -
Remove All Encoding:如果选中Remove All Encoding,会删除所有请求和响应的HTTP内容编码和传输编码; -
Hide 304s:选项会隐藏包含HTTP/304 Not Modified状态的响应的所有Session; -
Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送; -
User-Agents:子菜单支持把所有请求的User-Agent请求头设置或替换成指定值; -
performance:子菜单提供影响Web性能的简单选项。
-
-
Tools菜单
-
Options…:打开Fiddler Options窗口,针对fiddler的设置; -
WinINET Options…:打开IE的Internet Options窗口,windows的ie设置; -
Clear WinINET Cache(或 Ctrl + Shift + X):选项会清空IE和其他应用中所使用的WinINET缓存中的所有文件; -
Clear WinINET Cookies:选项会清空IE和其他应用中所发送的WinINET Cookie.Session的Cookies还是保持不变; -
TextWizard…(或 Ctrl + E):对文本进行编码和解码的工具; -
Compare Session(或 Ctrl + W):选项只有当选中Web Session列表中的两个Session时才有效; -
Reset Script:重置脚本; -
Sandbox:打开 http://webdbg.com/sandbox/; -
View IE Cache:打开IE缓存窗口; -
Win8 Loopback Exemptions:windows使用了一种叫做 “AppContainer” 的隔离技术,使得一些流量无法正常捕获,在fiddler中点击Win8 Loopback Exemptions按钮可以解除这个诅咒,这个与工具栏中的WinConfig功能是一致的; -
New Session Clipboard…:打开一个Session的剪贴板; -
HOSTS…:选项会打开Fiddler的Host Remapping工具。
-
-
View菜单
-
Show Toolbar:控制Fiddler工具栏是否可见,默认是勾选的; -
Default Layout:默认layout,session在左,请求和响应在右边的上下处(界面布局); -
Stacked Layout:session在上,请求在下方(界面布局); -
Wide Layout:session在上,请求和响应在下方的左右处(界面布局); -
Tabs:打开标签页面,其中有三个标签可以打开,分别是 -
Preferences:fiddler偏好属性; -
AutoSave:fiddler自动保存的设置; -
APITest:api的测试; -
Statistics(或 F7):查看一个请求的统计数据; -
Inspectors(或 F8):嗅探,用来查看会话的内容,上面是请求,下面是响应; -
Composer(或 F9):设计构造在Composer中进行请求的修改,可以把session框中的数据先清除,然后点击Composer中的Excute按钮来发送请求,请求出现在session框中; -
Minimize to Tray(或 Ctrl + M):可以最小化Fiddler到系统托盘中; -
Stay On Top:保持置顶; -
Squish Session List(或 F6):控制Web Session列表是否水平收缩; -
AutoScroll Session list:自动滚动会话列表,默认是勾选此项的,勾选此项后,session框中的每出现新的session,session框中就会不断向下滚动,若不勾选此项,就很方便具体某一个session的定位,即使出现了新的session也不会自动向下滚动; -
Refresh(或 F5):刷新功能。
-
-
Help菜单
-
Welcome Screen:回到主页面; -
Help:进入fiddler的帮助的网页中; -
Get Fiddler Book…:fiddler book的网页; -
Discussions:fiddler的讨论网页,这个需要魔法上网; -
HTTP References:进入http参考文献相关网站; -
Troubleshoot…:会捕获所有请求,对于哪些被过滤的请求用删除线表示出来并给出原因,使用时候会打开一个网页; -
Get Priority Support…:购买最新支持; -
Check for Updates…:检查软件更新情况; -
Send Feedback…:意见反馈; -
About:关于当前fiddler的相关信息。
-
3.2 工具栏
-
:windows使用了一种叫做 “AppContainer” 的隔离技术,使得一些流量无法正常捕获,在fiddler中点击 WinConfig 按钮可以解除这个隔离,这个与菜单栏Tools→Win8 Loopback Exemptions功能是一致的。 -
:给 session list中的会话添加备注。选中一条回话,再点击该按钮可直接添加备注内容,添加成功后将会在Comments栏下查看到该备注。 -
:数据重放(快捷键 R),当我们需要再一次对某个请求进行发送的时候,Fiddler提供了回放的功能可以再一次发送请求。 -
:清空监控面板(快捷键 Ctrl + X);可以清除面板上全部或某些请求。 -
:是调试 debug按钮,让请求断点继续往下走。结合状态栏使用。在状态栏第三格点(底部状态栏)一下,箭头朝上打叉,表示请求在发送的阶段有一个断点,再按下向下的是请求回来的时候产生一个断点,比如朝上的,用replay功能重播,但是请求没有发出去,想让断点继续走,按一下go就可以了,类似调试代码中的debug功能。
-
通过结合状态栏中的按钮,可以调试时请求的状态进行拦截。上图状态栏处的箭头向上,表示拦截该请求发送。
-
上图状态栏箭头向下,表示拦截请求返回。放行断点时单击上方的Go按钮即可,查看详情。
-
:表示用来切换模式,在流模式和缓冲模式下切换,默认是缓冲模式;
- 流模式:一种实时通信的模式,有请求就有返回,也就是实时返回;
- 缓冲模式:等所有请求都到一起再返回,就是等所有数据都准备好了,才返回给客户端。
-
:将http请求的内容解压出来,方便预览。 -
:Fiddler默认保存All Session,需要注意的是Fiddler保存的会话状态越多,占用的内存越大。如果性能不是特别好,建议不要保存所有的会话。
-
:过滤请求(靶心状态按钮是过滤不想看到的进程发出的请求,只保留我们要看到的进程请求)。该功能可以只捕获某个客户端或进程发送的请求,点击按钮拖动鼠标到指定客户端或进程上。 -
:查找会话,并默认黄色标识该会话。
-
:可以对捕获到的会话进行保存,保存后只需要把保存的saz文件打开即可;
-
















