Fiddler是什么
Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。使用了Fiddler之后,web客户端和服务器的请求如下所示:
Fiddler原理
Fiddler使用界面简介
Fiddler主界面的布局如下:
Fiddler界面简介
主界面中主要包括四个常用的块:
- Fiddler的菜单栏,上图绿色部分,包括捕获http请求、停止捕获请求、保存http请求、载入本地session、设置捕获规则等功能。
- Fiddler的工具栏,上图红色部分,包括Fiddler针对当前view的操作(暂停、清除session、decode模式、清除缓存等)。
- Web Session面板,上图黄色区域,主要是Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url、协议、状态码、body等信息,详细的字段含义如下图所示:
Web Session面板各列介绍
- 详情和数据统计面板。针对每条http请求的具体统计(例如发送/接受字节数、发送/接收时间、还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。
Fiddler抓包分析
在浏览器设置好HTTP代理后,只要在浏览器地址栏输入URL并访问,Fiddler的Web Session面板就会显示这次访问所发出的所有请求,如下图:
Web Session面板
有一点要注意的是Fiddler默认只记录HTTP请求,如果需要抓取HTTPS请求包,则需要进行配置。选择“Tools->Options->HTTPS”,勾选“Decrypt HTTPS traffic”复选框,如下图:
开启HTTPS协议截取功能
我们可以选中某条请求,然后在详细和数据统计面板中,我们可以分析这个请求,如下图:
关于HTTP请求的性能和其他数据分析
请求包(上面)和响应包(下面)分析
我们还可以设置过滤器来筛选出我们需要分析的请求,如下图:
Filters面板
我们选择“Filters”标签,然后勾选“Use Filters”。
过滤规则有:
- host和zone过滤。可以过滤只显示intranet或则internet的HTTP请求,也可以选择特定域名的HTTP请求,如下图:
特定域名HTTP请求过滤
- client process:可以捕获指定进程的请求。这对于调试单个应用的请求很有帮助。