Fiddler快速入门

简介: Fiddler是一个免费、强大、跨平台的HTTP抓包工具。Wireshark也是一个强大的抓包工具,不过Wireshark是一个通用的抓包工具,主要精力放在各种协议上了,针对HTTP的特定功能较少。

Fiddler是一个免费、强大、跨平台的HTTP抓包工具。Wireshark也是一个强大的抓包工具,不过Wireshark是一个通用的抓包工具,主要精力放在各种协议上了,针对HTTP的特定功能较少。所以如果你需要研究HTTP包的话,Fiddler一定是最适合的工具。

下载和安装

我们可以到Fidller下载页面下载Fiddler。下载完成之后安装即可。安装之后,我们打开它,可以得到类似的用户界面。在Windows下可能需要管理员权限,允许即可。

img_3b4ce7e711bee2b4194590e97e6e26a0.png
Fiddler

Fiddler通过打开localhost:8888端口来监听HTTP连接。在Windows下启动Fiddler的时候回自动将系统代理设置为localhost:8888。只要一个程序可以设置代理到localhost:8888,那么它就可以被Fiddler监听。

基本使用

Fiddler最常用的就是监听和查看浏览器请求。我们把浏览器代理设置为Fiddler代理。然后随便打开几个网页,就可以看到Fidller成功捕获到了这些HTTP请求。

img_de1c39814c5b23d36ca8726ebff3b4dc.png
监听请求

如果我们需要详细查看某个请求,可以在左边列表选择一个,然后在右边点击Inspectors。点击Inspectors之后,我们可以看到右边有很多标签,上面是请求,下面是响应。我们可以查看Headers、TextView、ImageView等多种视图。如果点击Raw视图的话,我们就可以查看原始的HTTP请求内容了。这里由于我在使用Fiddler捕获的时候网页开着简书,所以捕获了多个简书的自动保存请求。我们可以看到简书的文章使用JSON格式发送到服务器的。

img_09f0adfa3da84ad9dd93fda662239038.png
查看HTTP信息

过滤捕获

默认情况下Fiddler会捕获通过localhost:8888的所有请求。这样的话列表中会显示很多我们实际上不需要的请求。我们可以使用过滤功能来得到我们需要的结果。

按进程过滤

在按钮栏上有一个按钮叫All Process,我们按住这个按钮不放,鼠标会变成十字,然后我们拖动到需要捕获的程序上,Fiddler就会获取到该程序的进程号,这样我们就可以只不过某个程序的请求了。

使用过滤器

在右边选择Filter,选中Use Filter,即可使用过滤器。我们可以看到有很多过滤条件。

  • 过滤主机。我们可以指定只捕获某些主机和端口号的请求。不过貌似Fiddler不过智能,我们为了过滤本机回环地址,需要同时指定127.0.0.1localhost。如果近指定一个,就无法捕获另一个地址的请求。
  • 过滤进程。和上面指定进程的方式差不多。
  • 过滤请求头。我们可以根据某个请求头是否存在显示或隐藏某些请求,还可以使用Fiddler添加或删除请求头。
  • 断点。我们还可以在捕获到某些请求时暂停它们,以便进行调试。
  • 过滤响应状态码,响应类型等等。

图上是我自己的Spring小程序,返回了一个JSON。

img_24603943a81a7339a831e50fbf2c7bb3.png
过滤器

如果这些过滤器不能满足需求,可能需要自己编写Fiddler脚本了。

模拟表单提交

假设我们有如下一个表单需要填写。

img_90dc9d2f98cd36c87374f36e59124ac6.png
表单网页

表单代码如下。

<form method="post" action="/spring-web-mvc-sample/addUser">
    <label for="name">姓名</label>
    <input type="text" name="name" id="name"/>
    <br>
    <label for="age">年龄</label>
    <input type="text" name="age" id="age"/>
    <br>
    <label for="gender">性别</label>
    <input type="text" name="gender" id="gender"/>
    <br>
    <input type="submit" value="提交"/>
</form>

利用Fiddler可以帮我们完成表单提交这样的工作。切到Composer选项卡即可使用该功能。我们在上半部分填写请求头,下面填写请求体。如果是POST提交,那么数据应该写在请求体;如果是GET提交,那么数据应写在请求头。

img_730f5351872ffcecabc0b75ca52259b2.png
模拟提交

如果不知道请求头和请求体如何填写,可以先使用浏览器提交一个表单,然后用Fiddler查看一下浏览器是如何提交的,再改为自己的。

模拟返回

Fiddler还有一个功能就是不经过网络,直接模拟一个响应返回给客户端。我们选择AutoResponser即可使用该功能。选中Enable Rules,然后添加一条规则,我们就可以根据指定的URL来返回指定的结果了。Fiddler提供了一些简单的结果。我们也可以自定义响应。Enable Rules右边还有两个选项依次是跳过不匹配的请求和启用延迟(单位是毫秒)。Fiddler支持URL的正则匹配,右下角的Test用于测试URL是否匹配。我这里简单的精确匹配了一下。

img_12f5a696ce4be536422c0f72fdb0dfab.png
模拟提交

这个功能其实很强大。我们可以利用Fiddler截取某些软件激活的信息(假如它们使用的是HTTP协议),然后利用这个功能模拟返回服务器信息。这样我们就可以伪造一个假的激活服务器了。

远程抓包

Fiddler不仅可以捕获本机的HTTP请求,还可以捕获远程机器的请求。首先我们点击Tool->Telerik Fiddler Options,然后允许远程计算机连接。启用该选项需要重启Fiddler。

img_64257f1cdbe754c9da5ba20811f366e6.png
允许远程连接

然后使用方法和前面差不多。我们查看一下本机IP地址。然后在其它设备上设置代理ip地址:8888即可。例如在安卓手机上设置,即可让Fiddler捕获手机的HTTP连接。(本来截了张手机设置图,结果一看太大,影响排版,还是删了)

此外Fiddler还有一些其他功能,就需要各位自己挖掘了。Fiddler文档在此,只不过是英文的,有兴趣的同学可以看看。

相关文章
|
9月前
|
Web App开发
《协议测试》抓包工具Fiddler实战教程 1
《协议测试》抓包工具Fiddler实战教程
|
9月前
|
API Android开发 数据安全/隐私保护
《协议测试》抓包工具Fiddler实战教程 2
《协议测试》抓包工具Fiddler实战教程
|
11月前
|
Web App开发 测试技术
Postman | 使用教程(超详细)
Postman | 使用教程(超详细)
614 0
|
Web App开发 前端开发 测试技术
Postman的使用教程
关于postman的简单使用,身为开发不可或缺的技能
319 0
Postman的使用教程
|
缓存 前端开发 JavaScript
入门兵器谱,测试相关软件系列——Fiddler抓包工具使用教程
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
233 0
入门兵器谱,测试相关软件系列——Fiddler抓包工具使用教程
|
JavaScript 前端开发 Linux
【工具】Fiddler使用教程
【工具】Fiddler使用教程
394 0
|
缓存 监控 JavaScript
Fiddler - 快速入门(抓包)
Fiddler - 快速入门(抓包)
178 0
Fiddler - 快速入门(抓包)