fiddle的基本知识点
- Fiddler 的工作原理
Fiddler 本质上是一个 HTTP 代理。
· 代理设置:当你启动 Fiddler 时,它会自动将你系统的网络代理设置修改为 127.0.0.1:8888。这意味着你设备上所有的 HTTP/HTTPS 请求(除非特别指定不走代理)都会先经过 Fiddler,再由 Fiddler 转发给目标服务器。
· 中间人角色:Fiddler 扮演了“中间人”的角色,位于你的客户端(浏览器、APP)和目标服务器之间,因此它可以捕获、记录、甚至修改所有流经它的网络请求和响应。
- 核心界面与功能面板
启动 Fiddler 后,主界面主要分为几个部分:
· 会话列表:左侧的主窗口,显示捕获到的所有网络会话(请求)。每一行代表一个请求,包含编号、状态码、协议、主机、URL、body大小等信息。
· inspectors 面板:右侧的上半部分,用于详细查看选中会话的 请求 和 响应 的各个部分。
· AutoResponder 面板:右侧的一个标签页,用于进行 ** mock 测试**,可以拦截特定请求并返回本地文件或预设内容,而无需访问真实服务器。
· Composer 面板:右侧的一个标签页,用于 手动构建和发送 HTTP 请求,常用于接口测试。
· Filters 面板:用于设置过滤规则,只显示你关心的流量(例如,只显示某个域名的请求),在测试时非常有用。
· 状态栏:底部显示 Fiddler 的运行状态,如捕获会话的数量、是否在捕获状态等。
-
如何开始抓包(基础步骤)
-
启动 Fiddler。
-
确保捕获功能开启:查看菜单栏的 “File” -> “Capture Traffic” 是否被勾选,或者看状态栏的 “Capturing” 字样。快捷键 F12 可以快速开启/关闭捕获。
-
产生网络流量:在你的浏览器或应用程序中进行操作(如点击链接、刷新页面)。
-
观察会话列表:你会在 Fiddler 的左侧列表中看到所有被抓到的 HTTP/HTTPS 请求。
-
点击任意一个会话:在右侧的 Inspectors 面板中,你可以分别查看该请求的详细信息和服务器返回的响应信息。
-
抓取 HTTPS 流量(关键配置)
默认情况下,Fiddler 只能抓取明文的 HTTP 流量。要解密 HTTPS 流量,需要进行额外配置,这利用了“中间人攻击”原理。
· 安装 Fiddler 根证书:
- 打开 Fiddler,进入 Tools -> Options -> HTTPS 选项卡。
- 勾选 Capture HTTPS CONNECTs 和 Decrypt HTTPS traffic。
- Fiddler 会提示你安装一个根证书到你的计算机或移动设备的“受信任的根证书颁发机构”中。你必须同意安装。
· 原理:Fiddler 会动态地为每个你访问的 HTTPS 网站生成一个由它自己的根证书签名的假证书。由于你的系统信任了 Fiddler 的根证书,所以它会接受这个假证书,从而 Fiddler 可以解密你和服务器之间的加密通信。
对于手机抓包:
-
确保电脑和手机在同一个局域网(Wi-Fi)下。
-
在手机的 Wi-Fi 设置中,配置代理为 手动,服务器地址填写你电脑的 IP 地址,端口填写 8888。
-
在手机浏览器中访问 http://:8888,下载并安装 Fiddler 的根证书(iOS 安装后还需在 设置->通用->关于本机->证书信任设置 中完全信任该证书)。
-
Inspectors:请求与响应分析
这是分析数据的核心。它分为上下两部分:
· 请求部分:
· Headers:查看请求头,包括 URL、方法(GET/POST)、Cookies、User-Agent 等。
· WebForms:如果请求是 application/x-www-form-urlencoded 格式(如表单提交),这里会清晰地显示键值对参数。
· JSON/XML:如果请求体是 JSON 或 XML 格式,会在这里以语法高亮和树形结构展示。
· Raw:显示原始的、未解析的请求数据。
· Auth:查看认证相关信息。
· 响应部分:
· Headers:查看响应头,包括状态码、Content-Type、Set-Cookie 等。
· JSON/XML:解析并美化显示 JSON 或 XML 格式的响应体。
· ImageView:如果响应是图片,会在这里显示预览。
· Raw:原始的响应数据。
· Transformer:显示内容是否被压缩(如 gzip),并可以自动解压。
- 常用高级功能
· 断点:可以中断请求或响应,让你在数据发送到服务器或返回到客户端之前修改其内容。通过 Rules -> Automatic Breakpoints 设置,或直接在命令行输入 bpu URL(中断请求)或 bpafter URL(中断响应)。
· AutoResponder:
· 用途:前端开发时,将线上 API 映射到本地文件;模拟服务器返回错误状态码(如 404, 500);屏蔽某些请求(如图片)。
· 用法:勾选 Enable rules 和 Unmatched requests passthrough,然后添加规则,将某个 URL 匹配规则(如 EXACT:http://example.com/api)映射到一个本地文件(如 C:\mock_data.json)。
· Composer:允许你手动构造 HTTP 请求。你可以从会话列表中拖拽一个已有的请求到 Composer 中进行修改并重放,也可以完全从头编写。
· Filters:在复杂的调试环境中非常有用。可以按域名、进程、请求头内容、状态码等进行过滤,只显示你关心的会话,避免被无关流量干扰。
- 典型应用场景
· Web 前端调试:分析 Ajax 请求,查看 API 返回的数据是否正确。
· 移动 App 开发:抓取手机 App 的网络请求,分析其与服务器的交互。
· 性能分析:查看每个请求的耗时,找出加载慢的原因。
· 接口测试:使用 Composer 手动测试后端 API。
· 安全测试:检查请求和响应中是否包含敏感信息。
· Mock 测试:使用 AutoResponder 模拟后端接口,实现前后端并行开发。
总结
掌握 Fiddler 的核心在于理解其 代理本质 和 HTTPS 解密原理。然后,熟练使用 Inspectors 分析数据、AutoResponder 进行 Mock、Filters 过滤噪音 这三大功能,就能解决绝大部分的网络抓包和分析需求。它是一个从开发到测试再到运维都极其有用的瑞士军刀式工具。

浙公网安备 33010602011771号