Fiddler Classic

Fiddler Classic是一个非常好用的HTTP/HTTPS协议抓包工具,它不同于Wireshark,Wireshark专注于网络底层的Socket数据字节流,Wireshark适合通信协议的抓包和字节级别的数据分析,而Fiddler Classic属于应用层的抓包工具,它只抓取HTTP/HTTPS协议的数据包。由于只抓取HTTP/HTTPS协议的数据包,因此它能更好的把数据呈现给软件开发工程师,方便开发和测试人员分析浏览器或桌面应用程序的HTTP/HTTPS数据。总之,它有很多功能,你用了之后就会感觉好处多多,举之不尽。

下载和安装

  • 下载地址:https://www.telerik.com/fiddler/fiddler-classic
  • 安装:直接使用默认设置安装

抓包原理

Fiddler Classic使用代理的方式截获、重发HTTP/HTTPS数据包,因此如果电脑上有其他的代理转发工具软件,通常情况下都会有冲突,此时请禁用其它代理软件。例如我的电脑中有IBSA代理服务,在使用Fiddler Classic抓包之前,请先停止该服务。
日志文件夹

启用HTTPS抓包功能

对于HTTPS协议,由于牵涉到证书的问题,需要先设置一下,通过菜单“Tools -> Options -> HTTPS”打开HTTPS设置页面。按如下方式设置,在启用HTTPS功能时,会提示是否安装证书,此时需要同意把Fiddler的证书安装到你的电脑中:
日志文件夹

抓包

打开Fiddler后,软件就开始抓包了,通过点击软件左下角的Capturing按钮,可以启用或关闭抓包功能。软件的左侧会按顺序列出每一个数据包的URL列表,通过选中某一个Request,软件的右侧会显示该数据包request和response详细的数据包信息。通过切换选项卡,可以详细查看原始数据(Raw),HTTP头(Headers)等信息。如果数据的内容是JSON或XML格式的,那么点击JSON或XML选项卡,同样可以非常方便的查看JSON或XML数据。 日志文件夹
日志文件夹

过滤功能

通过点击Filters按钮,可以切换右侧界面到过滤数据包页面,通过组合右侧的过滤参数,可以对抓取的数据包进行更多的分析。
日志文件夹

注意事项

本机访问

如果通过编程(如C#的WebRequest)的方式访问HTTP/HTTPS服务器,且该服务器和客户端在同一台电脑上,如果程序中使用127.0.0.1或localhost的IP地址和服务器通信的话,那么此时有可能Fildder不能截取到该数据包。此时请把IP地址修改为计算机名就可以了。

//PickMasterUrl = string.Format("https://{0}:50000/pickmaster", "localhost");
PickMasterUrl = string.Format("https://{0}:50000/pickmaster", "CN-L-7256975");

HttpWebRequest代理

由于Fiddler使用的代理方式抓取HTTP/HTTPS数据包,所以如果使用编程的方式设置request时,不能禁用代理。

//request.Proxy = null;