一、简介
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文件打开即可;
-
:表示用来切换模式,在流模式和缓冲模式下切换,默认是缓冲模式;