🌍 Fiddler 安装及使用
概述
Fiddler 是一个 http 协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的 http 通讯,设置断点,查看所有的进出 Fiddler 的数据。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露 http 通讯还提供了一个用户友好的格式。
为什么使用 Fiddler
- FireBug:虽然可以抓包,但是对于分析 http 请求的详细信息,不够强大。模拟 http 请求的功能也不够,且 firebug 常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。
- WireShark:是通用的抓包工具,但是比较庞大,对于只需要抓取 http 请求的应用来说,似乎有些大材小用。
- HttpWatch:也是比较常用的 http 抓包工具,但是只支持 IE 和 firefox 浏览器(其他浏览器可能会有相应的插件),对于想要调试 chrome 浏览器的 http 请求,似乎稍显无力,而 Fiddler 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。
Fiddler 简介
Fiddler 是位于客户端和服务器端的 HTTP 代理,也是目前最常用的 http 抓包工具之一,它能够记录客户端和服务器之间的所有 HTTP 请求,可以针对特定的 HTTP 请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是 web 调试的利器。
既然是代理,也就是说:客户端的所有请求都要先经过 Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过 Fiddler 然后发送到客户端,基于这个原因,Fiddler支持所有可以设置 http 代理为 127.0.0.1:8888 的浏览器和应用程序。使用了 Fiddler 之后,web 客户端和服务器的请求如下所示:

Fiddler 捕获 HTTPS 会话
默认下,Fiddler 不会捕获 HTTPS 会话,需要设置下, 打开 Fiddler Tools --> Fiddler Options --> HTTPS

选中 Checkbox,弹出如下的对话框,点击 “Yes”

安装证书

忽略 HTTPS 错误

Fiddler 基本界面

Inspectors 下有很多查看 Request 或者 Response 的消息。其中 Raw 可以查看完整的消息,Headers 只查看消息中的 header,JSON 返回响应的 JSON 数据,如下图:

Fiddler HTTP 统计
通过陈列出所有的 HTTP 通信量,Fiddler 可以很容易的向您展示哪些文件生成了您当前请求的页面。使用 Statistics 页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。

Fiddler 命令行工具
Fiddler 的左下角有一个命令行工具叫做 QuickExec,允许你直接输入命令,常用命令,如:
help:打开官方的使用页面介绍,所有的命令都会列出来cls:清屏(Ctrl + X)select:选择会话的命令?.png:用来选择 png 后缀的图片bpu:截获 Request

Fiddler 会话管理
每次使用 Fiddler, 打开一个网站,都能在 Fiddler 中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. Fiddler 中有过滤的功能, 在右边的 Filters 页签中

过滤会话

比较会话
选中 2 个会话,右键然后点击 Compare,就可以用 WinDiff 来比较两个会话的不同了(在此之前需要先设置并安装 WinDiff)
设置 WinDiff
图1

图2

比较


查询会话
用快捷键 Ctrl+F 打开 Find Sessions 的对话框,输入关键字查询你要的会话。查询到的会话会用黄色显示 
保存会话
有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。选中你想保存的会话,然后点击 File --> Save --> Selected Sessions

Fiddler 手机抓包
Fiddler 配置
需要配置 Fiddler 允许远程连接,点击 Tools --> Fiddler Options --> Connections,勾选 allow remote computers to connect,默认监听端口为 8888,若端口被占用可以设置成其他的,配置好后要重新启动 Fiddler,如下图:

iOS 系统抓包
设置网络代理
打开 iPhone, 找到你的网络连接,打开 HTTP 代理,输入 Fiddler 所在机器的 IP 地址以及 Fiddler 的端口号 8888

安装 Fiddler 证书
这一步是为了让 Fiddler 能捕获 HTTPS 请求。如果你只需要截获 HTTP 请求,可以忽略这一步

首先要知道 Fiddler 所在的机器的 IP 地址,例如我安装了 Fiddler 的机器的 IP 地址是:192.168.0.103 打开 iPhone 的 Safari,访问 http://192.168.0.103:8888,点击 FiddlerRoot certificate 然后安装证书




开启 Fiddler 证书
iOS 10.3 以后,安装了的证书不是默认启用的,而是需要手动开启。设置 --> 通用 -> 关于本机 -> 证书信息设置

抓包效果图

注意事项
用完了,需要把 iPhone 上的 Fiddler 代理关闭,否则无法上网。