Fiddler简介
-
Fiddler是位于客户端和服务器端的HTTP代理
-
目前最常用的HTTP抓包工具之一
-
功能强大,接口调试的工具
- 监控浏览器所有的HTTP/HTTPS流量
- 查看,分析请求内容细节
- 伪造客户端请求和服务器响应
- 测试网站的性能
- 解密HTTPS的web会话
- 全局,局部断点功能
- 第三方插件
-
使用场景
- 接口调试,接口测试,线上环境调试,web性能分析;
- 判断前后端的bug,开发环境hosts配置,mock,弱网断网测试;
Fiddler原理
-
Fiddler在浏览器与服务器之间建立一个代理服务器,Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据;
- Fiddler设置代理(谷歌浏览器设置的都是使用系统代理,firefox需要手动更改)
- Fiddler设置代理(谷歌浏览器设置的都是使用系统代理,firefox需要手动更改)
-
客户端像WEB服务器发送HTTP(S)请求时,请求会先经过代理Fiddler代理服务器;
-
Fiddler代理服务器截取客户端的请求报文,再转发到WEB服务器,转发之前可以做一些请求报文参数修改的操作;
-
WEB服务器处理完请求以后返回响应报文,Fiddler代理服务器会截取WEB服务器的响应报文。同样可以修改响应报文后再发送给前端;Fiddler菜单栏详解
Fiddler菜单栏详解
-
File
-
Rules
-
Tools
Fiddler工具栏详解
局部断点
- 我们会习惯用单个断点,因为全局断点并不很好用,会把所有请求都打断点了;
- 单个请求断点:bpu login;会去匹配路径里包括login的接口进行断点,这里可以写全部路径;取消断点:bpu
- 单个响应断点:bpafter login ; 取消断点:bpafter
弱网测试
- Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多;
- Rules—>Cutomize Rules打开CustomRules.js 文档
- 在文件中搜索关键字,m_SimulateModem
-
oSession[“request-trickle-delay”] = “300”; 注释,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)
-
也可以限制下载的速度,调整oSession[“response-trickle-delay”]即可。
-
修改后保存,重启fiddler;
HTTPS抓包
-
点击Tools > Fiddler Options > HTTPS
- 勾选Decrypt HTTPS Traffic
- 如果还抓不到https请求就在actions中把fiddler证书卸载再重新安装;
APP抓包
- 点击Tools > Fiddler Options > Connections
- 勾选Allow remote computers to connect
- 重启fiddler
- 确保防火墙允许Fiddler进程可以远程连接
- ios连接wifi
- 手动设置wifi代理,代理IP为Fiddler所在电脑的IP;端口为监听的端口(8888);
- 浏览器访问 电脑ip:8888,安装fiddler根证书;(打开设置>更多设置>系统安全>加密与凭据>从储存设备安装>选择下载好的FiddlerRoot.cer进行安装)
- 测试完毕关闭代理