zoukankan      html  css  js  c++  java
  • Fiddler快速入门(还有一个功能就是不经过网络,直接模拟一个响应返回给客户端)

    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,即可使用过滤器。我们可以看到有很多过滤条件。

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

    图上是我自己的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文档在此,只不过是英文的,有兴趣的同学可以看看。



    作者:乐百川
    链接:https://www.jianshu.com/p/1c30433549c3
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    HTML与CSS(图解1):标志
    CSS :focus 伪类
    JAVA: java产生随机数的几种方式
    HTML:文件类型
    JAVA:Random类 (java.util)
    电脑知识:ping
    cih病毒源代码
    JAVA:控制台输入问题
    HTML:校验器
    第二十三模板 6类模板的定义 简单
  • 原文地址:https://www.cnblogs.com/findumars/p/8411155.html
Copyright © 2011-2022 走看看