后端开发Fiddler野生技术宅协会

Fiddler快速入门

2017-02-11  本文已影响574人  乐百川

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

下载和安装

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

Fiddler

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

基本使用

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

监听请求

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

查看HTTP信息

过滤捕获

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

按进程过滤

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

使用过滤器

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

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

过滤器

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

模拟表单提交

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

表单网页

表单代码如下。

<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提交,那么数据应写在请求头。

模拟提交

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

模拟返回

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

模拟提交

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

远程抓包

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

允许远程连接

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

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

上一篇下一篇

猜你喜欢

热点阅读