Fiddler 是一款专注于网络流量捕获和调试的工具,它能截取设备上的网络请求与响应,帮助开发者进行深度分析、问题定位和优化。无论是前端、后端还是测试人员,Fiddler 都是不可多得的调试利器。
Fiddler 的亮点功能
- HTTP/HTTPS 抓包:轻松解密 HTTPS 流量,查看请求与响应的完整数据。
- 性能优化:分析网络性能瓶颈,快速定位延迟或错误请求。
- 流量重放:模拟多种网络场景,测试应用在不同环境下的表现。
- 请求编辑:随心修改请求参数、头部和内容,验证不同接口行为。
- 插件扩展:支持自定义脚本与扩展,让功能无限可能。
一、安装 Fiddler4
-
下载和安装:
- 访问 Fiddler 官网 下载 Fiddler Classic。
- 根据提示完成安装。
-
安装成功后启动 Fiddler4。
二、Fiddler 基本界面介绍
-
左侧会话面板:
- 显示捕获的网络流量(每一行代表一个请求)。
- 包含请求 URL、状态码、协议、主机名等。
-
右侧详情面板:
- 请求和响应的详细信息,包括 Header、Body、Cookies 等。
-
下方工具栏:
- 控制流量捕获的按钮,例如
Capturing
(控制是否捕获流量)。
- 控制流量捕获的按钮,例如
三、配置 Fiddler4 抓取流量
1. 启用捕获流量
- 点击底部工具栏的
Capturing
,启用/禁用捕获流量。 - 默认情况下,Fiddler4 会抓取电脑的所有 HTTP 和 HTTPS 流量。
2. 设置 HTTPS 解密(重要)
HTTPS 流量默认加密,需要设置 Fiddler 进行解密。
- 步骤:
- 点击菜单栏
Tools
>Options
。 - 选择
HTTPS
选项卡,勾选:Capture HTTPS CONNECTs
Decrypt HTTPS traffic
- 如果是首次解密,Fiddler 会提示安装自签名证书:
- 点击
Yes
安装证书。 - 在浏览器中也需信任该证书。
- 点击
- 点击菜单栏
- 检查 HTTPS 流量是否解密成功:
- 访问 HTTPS 网站(如 https://www.baidu.com),请求显示完整的内容即表示解密成功。
3. 设置代理
Fiddler 默认监听本机的 8888 端口,设置为代理服务器即可抓取其他设备流量。
-
PC 环境:
- Fiddler 启动时会自动设置为系统代理,浏览器或软件无需额外设置。
-
手机环境:
- 确保手机与电脑在同一局域网。
- 在手机的 Wi-Fi 网络设置中,手动设置代理为 Fiddler 电脑的 IP 地址,端口为 8888。
- 手机浏览器访问
http://<Fiddler电脑IP>:8888
,下载并安装 Fiddler 证书。 - 信任证书后,Fiddler 即可抓取手机流量。
华为手机举例,设置服务器主机名(命令行输入ipconfig获取)和端口(默认都是8888)
四、抓包分析流量
-
过滤流量:
- 使用左侧面板顶部的过滤框(QuickExec),输入关键字过滤流量,例如特定域名
google.com
。 - 也可点击菜单栏
Filters
,设置更复杂的过滤规则。
- 使用左侧面板顶部的过滤框(QuickExec),输入关键字过滤流量,例如特定域名
-
查看详细信息:
- 选中一个请求,右侧面板会显示请求和响应的详细内容:
- Headers:查看请求头和响应头信息。
- TextView 或 JSON:查看请求/响应体内容。
- Timeline:查看请求的时长、延迟等信息。
- 选中一个请求,右侧面板会显示请求和响应的详细内容:
-
重发请求:
- 右键选中某个请求,选择
Replay
>Reissue and Edit
,可以修改参数后重新发送。
- 右键选中某个请求,选择
-
断点调试:
- 点击菜单栏
Rules
>Automatic Breakpoints
,选择Before Requests
或After Responses
,设置断点。 - 请求或响应到达断点时,可手动修改数据并继续。
- 点击菜单栏
选中JSON选项,返回json类型数据
五、高级功能
-
Mock 响应数据:
- 在
AutoResponder
中设置规则,用本地文件或自定义响应替代实际服务器返回内容。
- 在
-
性能分析:
- 查看每个请求的耗时(Timeline),优化接口性能。
-
保存抓包数据:
- 点击菜单栏
File
>Save
,保存为.saz
文件,方便后续分析。
- 点击菜单栏
-
编写脚本:
- 在
Rules
>Customize Rules
中编辑 FiddlerScript,自定义处理逻辑。
- 在
六、常见问题及解决方法
-
无法抓取 HTTPS 流量:
- 检查是否安装并信任 Fiddler 证书。
- 确保目标流量通过 Fiddler 的代理端口。
-
手机无法抓包:
- 检查手机和电脑是否在同一局域网。
- 确保 Fiddler 监听的 IP 地址正确。
-
流量未显示:
- 检查 Fiddler 底部是否显示
Capturing
状态。 - 检查代理设置是否正确。
- 检查 Fiddler 底部是否显示
Fiddler 的应用场景
- **前端开发:**调试接口调用,分析页面资源加载情况。
- **后端调试:**排查接口错误,优化 API 性能。
- **移动开发:**捕获 App 的网络请求,优化数据交互。
- **测试分析:**还原用户操作场景,验证异常请求。