🌍 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
代理关闭,否则无法上网。