Fiddler 基础知识
Fiddler 是什么?
Fiddler 是一款 HTTP 协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP(S) 请求,可以针对特定的 HTTP(S) 请求,分析请求数据、设置断点、调试 web 应用、修改请求的数据,甚至可以修改服务器返回的数据,模拟客户端和服务器的交互,完成一系列 Mock 测试,功能非常强大,是 web 调试的利器
Fiddler 主要功能
- 截获从浏览器或者客户端软件向服务器发送的 http/https 请求
- 修改客户端请求或服务端响应
- 创建自动响应规则
- 模拟弱网场景
- 提供第三方扩展插件,测试网站性能
Fiddler 抓包原理
Fiddler 是以代理 Web 服务器的形式工作的,浏览器/客户端与服务器之间通过建立 TCP 连接以 HTTP 协议进行通信,它使用代理地址是 127.0.0.1,端口为 8888
- fiddler 截获客户端浏览器发送给服务器的 https 请求,此时还未建立握手
- fiddler 向服务器发送请求进行握手,获取到服务器的 CA 证书, 用根证书公钥进行解密,验证服务器数据签名,获取到服务器 CA 证书公钥
- fiddler 伪造自己的 CA 证书,冒充服务器证书传递给客户端浏览器,客户端浏览器做跟 fiddler 一样的事
- 客户端浏览器生成 https 通信用的对称密钥,用 fiddler 伪造的证书公钥加密后传递给服务器,被 fiddler 截获
- fiddler 将截获的密文用自己伪造证书的私钥解开,获得 https 通信用的对称密钥
- fiddler 将对称密钥用服务器证书公钥加密传递给服务器,服务器用私钥解开后建立信任,握手完成,用对称密钥加密消息,开始通信
- fiddler 接收到服务器发送的密文,用对称密钥解开获得服务器发送的明文。再次加密发送给客户端浏览器
- 客户端向服务器发送消息,用对称密钥加密,被 fidller 截获后,解密获得明文
Fiddler 工具界面功能介绍
顶部左侧菜单栏

消息icon:备注,添加之后在会话栏的 Comment 列中显示备注内容
Replay:对选中的请求再次发送对应请求
X:清除会话面板
- 清除所有对话
- 清除加载图片的请求
- 清除使用 http connect 方法的请求
- 清除状态码非200的请求
- 清除非浏览器发出的请求
- 清除已响应请求且未标记的请求
- 清除响应 body 一样的请求,只保留一个
Go:断点调试,点击 go,则会执行下一步
Stream:代理模式。默认为[缓冲模式],点击进行切换
- 流模式 streaming:将客户端的请求数据实时的传给服务端,更接近于浏览器本身的真实行为
- 缓冲模式 buffering:将客户端的请求数据缓冲起来,等数据写完之后再传给服务端
Decode:解压请求。解压 http 请求里面的东西,帮助查看响应内容
Keep:保持会话的数目
顶部右侧菜单栏

Any Process:捕获请求,只看需要的请求。将“靶心”投向需要的请求
Find:查找请求,可以高亮所查找的请求
Save:保存会话
截图:默认5秒后截图(电脑全屏)
时钟icon:计时器
Browse:点击会话,再点击Browse,启动浏览器发送此请求,快速启动浏览器
Clear Cache:清空浏览器缓存
TextWizard:编码、解码文本内容,一般包含中文的请求都需要解码才能看到,所以复制url到TextWizard,然后选择URLDecode
TearOff:浮窗
msdn搜索:.net开发
常见图标的含义
左下控制台

控制台:可以输入一些命令行;输入 help 可以看到常见的命令行
capturing:是否开启捕获功能,显示 capturing 表示正常捕获,否则表示不捕获
All Processes:过滤会话来源,web brower对会话进行过滤
m/n:记录当前展示会话的数量
状态信息:状态条显示
右侧会话功能面板

statistics:请求的性能指标;全世界范围的性能测试
- RTT:一个请求的从发送出去到返回的时间
- 底部的 Show chart 可以看出图表的示例
inspectors:对请求进行解包
- header:请求头信息
- textView:可以看到返回的数据
- imageview:可以看到返回的图片(如果有图片返回的话)
- webforms:看到请求传递的信息
- cookies:请求携带的 cookie
- response header:响应报文的头文件
autoresponder:文件代理,可以使用 fiddler 来自定义请求返回的文件
composer:前后端接口联调,可以将条目拖到 composer 然后进行模拟执行;伪造请求。不写 js 实现跟服务器交互
log:fiddler 的使用日志
filters:过滤功能,可以很好帮助只显示我们关心的请求或者隐藏掉我们不关心的请求
timeline:网站性能分析,一个网站的请求多个网站请求进行,选中查看 timeline 查看请求详情

