Fiddler应用


Fiddler是什么

  Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

  既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。使用了Fiddler之后,web客户端和服务器的请求如下所示:

 

Fiddler原理

 

Fiddler使用界面简介

 

  Fiddler主界面的布局如下:

Fiddler界面简介

 

主界面中主要包括四个常用的块:

  1. Fiddler的菜单栏,上图绿色部分,包括捕获http请求、停止捕获请求、保存http请求、载入本地session、设置捕获规则等功能。
  2. Fiddler的工具栏,上图红色部分,包括Fiddler针对当前view的操作(暂停、清除sessiondecode模式、清除缓存等)。
  3. Web Session面板,上图黄色区域,主要是Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url、协议、状态码、body等信息,详细的字段含义如下图所示:

    Web Session面板各列介绍

     

  4. 详情和数据统计面板。针对每条http请求的具体统计(例如发送/接受字节数、发送/接收时间、还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。

     

Fiddler抓包分析

  在浏览器设置好HTTP代理后,只要在浏览器地址栏输入URL并访问,FiddlerWeb Session面板就会显示这次访问所发出的所有请求,如下图:

Web Session面板

 

  有一点要注意的是Fiddler默认只记录HTTP请求,如果需要抓取HTTPS请求包,则需要进行配置。选择“Tools->Options->HTTPS”,勾选“Decrypt HTTPS traffic”复选框,如下图:

开启HTTPS协议截取功能

 

  我们可以选中某条请求,然后在详细和数据统计面板中,我们可以分析这个请求,如下图:

关于HTTP请求的性能和其他数据分析

请求包(上面)和响应包(下面)分析

 

  我们还可以设置过滤器来筛选出我们需要分析的请求,如下图:

 

 

 

Filters面板

 

  我们选择Filters”标签,然后勾选“Use Filters”。

  过滤规则有:

  • hostzone过滤。可以过滤只显示intranet或则internetHTTP请求,也可以选择特定域名的HTTP请求,如下图:

    特定域名HTTP请求过滤

  • client process:可以捕获指定进程的请求。这对于调试单个应用的请求很有帮助。