Fiddler(一) - Fiddler 简介
一、为什么选择 Fiddler 作为抓包工具?
抓包工具有很多,小到最常用的 web 调试工具 firebug,达到通用的强大的抓包工具 wireshark。为什么使用 fiddler?原因如下:
Firebug
虽然可以抓包,但是对于分析 http 请求的详细信息,不够强大。模拟 http 请求的功能也不够,且 firebug 常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。Wireshark
是通用的抓包工具,但是比较庞大,对于只需要抓取 http 请求的应用来说,似乎有些大材小用。Httpwatch
也是比较常用的http
抓包工具,但是只支持 IE 和 firefox 浏览器(其他浏览器可能会有相应的插件),对于想要调试 chrome 浏览器的 http 请求,似乎稍显无力,而 Fiddler2 是一个使用本地 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
作为系统代理,当启用 Fiddler
时,IE 的 PROXY 设定会变成 127.0.0.1:8888
,因此如果你的浏览器在开启fiddler
之后没有设置相应的代理,则fiddler
是无法捕获到 HTTP 请求的。如下是启动 Fiddler 之后,IE 浏览器的代理设置:
三、Fiddler 使用界面简介
Fiddler 主界面的布局如下:
主界面中主要包括四个常用的块:
Fiddler 的菜单栏。包括捕获 http 请求,停止捕获请求,保存 http 请求,载入本地 session、设置捕获规则等功能。
Fiddler 的工具栏。包括 Fiddler 针对当前 view 的操作(暂停,清除 session,decode 模式、清除缓存等)。
web Session 面板。主要是 Fiddler 抓取到的每条 http 请求(每一条称为一个 session),主要包含了请求的 url,协议,状态码,body 等信息 详细的字段含义如下图所示:
详情和数据统计面板。针对每条 http 请求的具体统计(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。如 inspector 面板下,提供 headers、textview、hexview,Raw 等多种方式查看单条 http 请求的请求报文的信息。
而 composer 面板下,则可以模拟向相应的服务器发送数据的过程(不错,这就是灌水机器人的基本原理,也可以是部分 http flood 的一种方式)。
也可以粘贴一次请求的 raw http headers,达到模拟请求的目的:
Filter
标签则可以设置Fiddler
的过滤规则,来达到过滤 http 请求的目的。最简单如:过滤内网 http 请求而只抓取 internet 的 http 请求,或则过滤相应域名的 http 请求。Fiddler 的过滤器非常强大,可以过滤特定 http 状态码的请求,可以过滤特定请求类型的 http 请求(如 css 请求,image 请求,js 请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求。更多的过滤器规则需要一步一步去挖掘。
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/54b9c6f8b827623e8d0e3782c】。文章转载请联系作者。
评论