Fiddler 和其他抓包软件的比较
Fiddler 和其他抓包软件的比较
与Fiddler同类的抓包软件还有 Charles、Firebug、Wireshark、HTTPWatch等。
Fiddler 被称为世界上最好用的HTTP 调试工具。比起其他工具来说,其具有更多的优势。
(1) Fiddler 可以通过 FiddlerScript 写脚本来扩展功能,Charles 则不能。
(2) 使用 Charles 要付费,Fiddler 可免费使用。
(3) Charles是跨平台的(Windows、Mac、Linux) ,
Fiddler 现在同样也是跨平台的了(Windows、Mac、Linux) 。
(4) HTTPWatch 也是比较常见的 HTTP 抓包工具,但是只支持IE和Firefox浏览器,而且不能修改HTTP包。
(5) Wireshark 支持更多的协议,主要是用来监听 TCP/IP 协议,直接与网卡进行数据报文交互。如果用 Wireshark 来监控 HTTP 协议,就有点大材小用,而且不方便。
Fiddler 抓不到包应该怎么解决
很多读者经常发现 Fiddler 不能捕获数据包,这时可以按下面的步骤进行解决。
(1)先确定是HTTP包抓不到,还是HTTPS包抓不到。如果只是HTTPS包抓不到,说明是证书的问题,需要重新安装证书。
(2)检查浏览器的HTTP代理设置是否正确,或者换个浏览器试试。
(3) 检查 Fiddler 的捕获开关是否打开。
(4) 检查过滤的设置。
(5) 确定是否是捕获 Localhost 的流量。
如何找到想抓的包
启动 Fiddler, Web Sessions 列表就会抓到很多HTTP请求,我们需要找的HTTP 请求被淹没其中。这往往让初学者不知所措,不知道哪个才是自己要抓的HTTP请求。
我们在抓包之前,可以先把 Web Sessions 列表清空,然后再操作,这样 Web Sessions中抓到的HTTP请求就会少很多。
有以下几种方法可以清空 Web Session 列表。
第一种方法:Fiddler菜单栏上有一个x图标,单击小箭头后会看到“Remove all”选项,选此即可以清空 Web Session 列表。
第二种方法:单击 Web Session 列表中的任何一个HTTP 请求,并按快捷键【CTRL+X】。
第三种方法:在 QuickExec 命令行工具中输入命令“cls”, 按回车键,也可以清空Web Sessions 列表。
抓到自己想要的包后,应该让 Fiddler 暂停抓包,这样就不会因为抓到一些不相干的包而被干扰了。
Fiddler 异常退出后无法上网
电脑意外死机,Fiddler 异常退出后会导致电脑无法上网。原因是Fiddler异常退出后,没有注销代理,系统的代理仍然是 127. 0. 0. 1, 端口号是8888。
解决的办法是重新启动Fiddler 再关闭,这样浏览器就能上网了。
Fiddler排序
Fiddler 中的Web Session 默认是按照序号排序的,可能某种误操作会让 Web Session按照别的标准排序,导致用户找不到抓的包。
我们可以单击“序号”的列名,重新按照序号来排序,如图8-1所示。
▲图8-1 Fiddler 按时间排序
Fiddler 中查询会话
在菜单栏中单击 Edit-> Find Sessions, 或者用快捷键【Ctrl+F】打开“Find Sessions”的对话框,输入关键字查询你要的会话。查询到的会话会以黄色显示,如图8-2所示。
▲图8-2 查找会话
注意的是,汉字或者特殊字符很可能查询不到,因为在HTTP请求中,汉字或者特殊字符被转义了。
Fiddler 中保存抓到的包
有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。保存会话的步骤如下:
(1)选择你想保存的会话,然后单击 File-> Save-> Selected Sessions.保存后的文件后缀名是.saz。文件中会保存完整的HTTP请求和HTTP响应;
(2) 双击.saz文件,或者单击 Fiddler 菜单栏中的 File-> Load Archive, 就能打开.saz文件。
Fiddler中编辑会话
默认的情况下,Fiddler 中的 Session是不能编辑的。
选择一个Session, 用鼠标右键选择“Unlock For Editing” (快捷键是【F2】) , 这样就可以在Inspectors的 Raw 模式下编辑HTTP请求和HTTP响应。
过滤会话
每次启动 Fiddler, 打开一个网页,都能看到几十个会话,看得人眼花缭乱。这时候我们可以使用 Filter 的功能来过滤,使网页只显示自己想要的 HTTP请求。
Filters 提供了很多过滤选项,一定能满足你的需求。
在Fiddler中找到Filters 选项卡,选中“Use Filters”, 就可以启动过滤功能。如图8-3 所示。
▲图8-3会话过滤
Filters的Actions中,我们可以保存好当前的过滤配置,也可以加载已经保存好的过滤配置。
常用快捷键
Fiddler中的 Web Sessions是我们用得最多的地方。通常我们必须选择Web Sessions中的 Session, 然后做其他的操作。表8-1所示的快捷键可以帮助你选择Session。
QuickExec命令行的使用
Fiddler 的左下角有一个命令行工具叫作 QuickExec, 允许你直接输入命令,如图8-4所示。
▲图8-4QuickExec命令
常见的命令如下。
(1) help: 打开官方的使用页面介绍,所有的命令都会列出来。
(2) cls: 清屏(【Ctrl+X】快捷键也可以清屏)。
(3) select: 选择会话的命令。
(4) 2.png: 用来选择。png 后缀的图片。
(5) bpu: 截获request。
还可以用"urlreplacehttp://fanmao.mysxl.cn/”替换掉host.
我们最初发送给A站点的HTTP请求,都被Fiddler转发到B站点,而在浏览器中毫无感觉。测试或者debug过程中经常会有这种需求。
Fiddler比较会话的不同
如果需要比较两个Session的内容的不同,我们可以使用 Windiff工具。具体操作步骤如下。
(1) 下载 WinDiff。
(2) 在 Fiddler 中设置 Compare 工具为 WinDiff.启动 Fiddler, 在菜单栏中单击 Tools-> Fiddler Options, 在Tools选项卡中选择WinDiff的路径,如图8-5所示。
▲图8-5 配置 DiffTool
(3) 选中两个会话,用鼠标右键选择Compare, 就可以使用 WinDiff 来比较两个会话的不同了,如图8-6所示。
▲图8-6 比较会话
Fiddler插件
如果 Fiddler 不能满足要求,你可以来看看 Fiddler 的插件。
http: //www.telerik.com/fiddler/add-ons。
8. 13. 1 JavaScript Formatter
从服务器返回来的 JavaScript 代码都没有格式化。利用 Java Script Formatter 插件可以格式化 JavaScript 代码,增加可读性。
安装好 Java Script Formatter 插件后,在 Fiddler 中选择一个Session, 用鼠标右键选择"Make JavaScript Pretty”, 就可以格式化 JavaScript 代码了。
8. 13. 2 Gallery 插件
选择很多图片的会话后,Gallery 插件可以显示这些图片的缩略图 。
假如所有的插件都不能满足你的需求,那么你只能自己开发插件了。
往期精彩文章