zoukankan      html  css  js  c++  java
  • Fiddler 从入门到深入

    在开发的过程中使用过不少的HTTP网络抓包工具,研究过HTTPAnalyzer,HttpWatch,感觉都很不错。

    记不清什么时候自己搜了一个工具,它就是Fiddler,自从使用了Fiddler之后,我越来越喜欢它了。现在基本上不再使用其它的

    抓包工具了。因为我发现,Fiddler实在是太强大了,它几乎囊括了大部分的抓包请求,当然最给力的还是它 的断点调试功能,

    尤其还有使用本地文件代替服务器文件这个实用的功能,这样程序员就不要每次出问题修改服务器文件了,因为服务器文件一般不会让人轻易修改

    ,再者也许程序员没有权限修改,这个功能超赞!

    之后,我上了Fiddler的官网之后,找到了它上面的几个Demo的小教程,更加确定我的想法了。以后就是它了,Fiddler!

    Demo地址为:http://www.fiddler2.com/Fiddler/help/video/default.asp

    国内的程序员是不少,但是国内的程序员最大的悲剧不是知识面不够,更不是不聪明。我感觉国内的程序员最大的悲剧就是英语不好。

    哎,谁让计算机是外国人发明的呢,没办法,那我们只好学好英语了。

    鉴于Fiddler这个好工具太强大了,我有个想法,想把它推荐给我们国内的程序员们,所以我决定有时间就翻译一下Fiddler的使用教程,

    首先声明:我翻译的水平肯定跟我的技术知识和能力有关,希望大家能够理解,这个教程主要是我翻译的,不是我自己写的。

    今天让我们开始吧。

    原文地址:http://www.fiddler2.com/Fiddler/help/ui.asp

    Fiddler用户界面:

    下面这个界面截取的是我自己的Fiddler。

     
     

    Web 会话列表。

    就是指上面左侧的内容部分。

    Web会话列表包括了所有的从你的电脑发出的HTTP请求。为了自己的使用方便,你可以自己调整会话列表的内容,你也可以单击列表的顶部来对会话列表来排序。

    会话列表顶部包含的信息有以下内容:

    #- 为了使用方便,Fiddler 为你生成的会话列表的ID

    Result- HTTP响应的状态码Learn more...

    Protocol- 本次会话使用的协议类型(HTTP/HTTPS/FTP)

    Host- 发送本次请求的主机名

    URL- 本次请求的路径和具体文件名

    Body- 响应返回内容的大小

    Caching-是否使用了缓存

    Process- 发送本次请求的程序进程的名字

    Content-Type- 响应的响应头的 Content-Type 值

    Custom- 通过脚本设置的文本域.Learn more...

    Comments -通过脚本或者在会话列表中右键添加的注释。

    在Fiddler v2.2.0.5 及其以上的版本,你可以添加自己的新列。

    在会话列表中默认的文本的颜色从HTTP的响应的状态继承而来(红色代表错误,黄色代表需要授权)CONNECT类型为灰色,

    还有返回类型(CSS文件为紫色,HTML文件为蓝色,JS脚本为绿色,图片为灰色)你可以通过使用ui-color标志位来改变和重写列表的默认颜色。

    (提示:ui-color在Fiddler的脚本配置文件中,需要安装FiddlerScript

    为了查看的方便每一个请求的前面都有一个图标来表示。

     
     

    上面的图标后面的英文的意思依次为:

    1.请求正在被发往服务器

    2.正在从服务器接收请求内容

    3.请求被一个断点停住了。

    4.响应被一个断点停住了。

    5.请求使用HEAD方法,响应应该没有响应体。

    6.请求使用POST方法

    7.请求使用了HTTPS

    8.返回内容为HTML页面

    9.返回内容为JS脚本

    10.返回内容为CSS

    11.返回内容为XML文件

    12.返回内容为JSON文件

    13.返回内容为音频文件

    14.返回内容为视频文件

    15.返回内容为Silverlight

    16.返回内容为Flash

    17.返回内容为字体文件

    18.一般成功的响应

    19.响应被重定向了,通过HTTP/300,301,302,303 or 307

    20.HTTP 304 请求

    21.返回一个需要客户端证书验证的请求

    22.服务器端错误

    23.会话被客户端、Fiddler、服务器意外终止。

    和会话列表的交互

    在一个或者多个会话上面单击右键会出现下面的菜单

     
     

    小提示:你可以通过在FiddlerScript中使用ContextAction标志为这个菜单添加菜单项。

    在“复制”菜单上面有以下内容:

    Session- 以纯文本和HTML语法加亮形式复制原始的请求内容到剪贴板。

    Just URL- 仅仅复制主机名和URL地址

    Headers Only -以纯文本和HTML语法加亮形式复制请求头和响应头到剪贴板。

    Full Summary -为了粘贴到Excel中方便,以纯文本和HTML语法加亮形式把请求的各个列的信息复制到剪贴板。

    Terse Summary -复制请求地址和响应状态到剪贴板。

    在“保存”菜单上面有以下内容:

    Session > In ArchiveZIP- 把相关的请求内容打包为一个 .SAZ 文件.

    Session- 把请求和响应的所有内容存为一个文本文件

    Headers Only -把请求头和响应头存为一个文本文件

    Full Request -把请求的所有内容存为一个文本文件

    Request Body- 把请求体存为一个文本文件,通常是POST的数据包。

    Full Response -把响应的所有内容存为一个文本文件

    Response Body -把响应体存为一个文件,通常是HTML文件或者图片。

    AutoResponder 快速引用

    今天我们来看一下Fiddler的AutoResponder选项卡的强大功能。

    Fiddler的AutoResponder 选项卡允许你使用本地硬盘的文件来作为返回内容,而不是把请求发往服务器。

    创建AutoResponder 规则。

    使用AutoResponder选项卡,你可以创建一个匹配规则和一个响应字符串,如果请求的URL地址跟你的匹配规则相匹配,

    Fiddler就会自动执行这个对应的响应字符串。

    小提示:

    匹配规则会按照它在规则列表中出现的顺序进行匹配, 按+键可以使一个匹配规则向上移一项,按-键可以使一个匹配规则向下移一项。

    使用右键菜单, 你可以导出一个包含了所有的匹配规则和对应响应字符串的后缀为.FARX 的文件。

    你也可以通过导入  .SAZor.FARX文件来创建基于以前创建的规则列表和响应列表.

    你可以从会话列表中拖动一个会话到AutoResponder选项卡中来重新演示以前的响应. 你也可以选中一条规则,然后回车这样就可以来编辑一条规则。

    你也可以直接从Windows的资源管理器中拖动一个文件到 AutoResponder选项卡中来为这些文件创建规则和响应。

    匹配规则:

    纯粹字符串

    Fiddler将会按照不区分字母大小写来匹配字符串。

    Demo如下:

    RuleMatches

    *http://www.example.com/Path1/query=example

    EXAMPLEhttp://www.example.com/Path1/query=example

    path1/http://www.example.com/Path1/query=example

    queryhttp://www.example.com/Path1/q=Query

    跟上面的类似,Fiddler还有一个非字符串匹配的规则:NOT:

    Demo如下:下面的都匹配。

    RuleMatches

    NOT:EXAMPLEhttp://www.test.com/Path1/query=test

    NOT:path1/http://www.example.com/Path2/query=example

    NOT:queryhttp://www.example.com/Path1/q

    Exact匹配:

    表达式以EXACT:为前缀,此匹配区分字母大小写

    Demo如下:

    RuleMatches

    EXACT:http://www.example.com/pathhttp://www.example.com/path

    EXACT:http://www.example.com/pathhttp://www.example.com/Path(不匹配- 大小写不一样)

    EXACT:http://www.example.com/pathhttp://www.example.com/path/q=Query(不匹配- 子字符串不一样)

    正则表达式:

    Fiddler支持以regex:为前缀的正则表达式语法,使用.+匹配一个或多个字符,使用.*匹配0个或多个字符,使用^匹配字符串开始位置,使用$匹配字符串结尾位置。

    Demo如下:

    RuleMatches

    regex:.+http://www.example.com/Path1/query=example

    regex:.+.jpg.*http://www.example.com/Path1/query=foo.jpg&bar

    http://www.example.com/Path1/query=example.jpg

    regex:.+.jpg$http://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending)

    http://www.example.com/Path1/query=example.jpg

    regex:.+.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match  - improper ending)

    http://www.example.com/Path1/query=example.gif

    http://www.example.com/Path1/query=example.Gif(No Match - mismatched case)

    http://www.example.com/Path1/query=example.bmp

    regex:(?insx).+.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending)

    http://www.example.com/Path1/query=example.gif

    http://www.example.com/Path1/query=example.Gif

    http://www.example.com/Path1/query=example.bmp

    想要学习更多正则表达式的请看这里here.

    响应字符串

    除了简单的返回文件,AutoResponder选项卡还有更多的用处........

    Beyond simply returning files, the AutoResponder can also perform special actions...

    Action StringResult...

    filename返回文件内容作为消息响应

    http://targetURL返回此URL的内容作为消息响应

    *redir:http://targetURL返回一个跳转URL,注意,不是一般的URL,一定要确保此URL知道要到哪里去,以便携带上相关的Cookie信息。

    *bpu设置一个断点在发往服务器以前停住此请求Non-final action.

    *bpafter设置一个断点在接收响应之前停住此请求Non-final action.

    *delay:####设置在发给服务器之前的延时,以毫秒为单位。Non-final action.

    *header:Name=Value设置请求头的内容,如果没有那个请求头,则新建一个请求头Name并设置为ValueNon-final action.

    *flag:Name=Value设置Session Flag的内容,如果没有那个Session Flag,则新建一个Session FlagName并设置为ValueNon-final action.

    *CORSPreflightAllow返回一个响应标志CORS是否被允许。.

    *reset使用一个TCP/IP RST 重新设置客户端的链接。

    *drop马上关闭客户端链接。

    *exit这时候停止处理匹配。

    如果你的匹配规则使用了正则表达式,那么响应也可以使用正则表达式,更多信息请看这里:Learn more...

    标志为Non-final action.的请求会匹配多个响应规则,如果一个规则是final action ,那么再找到匹配之后,匹配过程就会结束,对于那条请求来说就不会再匹配其它的规则。

    延迟响应

    在一个请求返回来之前你可以设置一下请求延迟返回的时间。选中Enable Latency复选框,可以设置所有的规则的延迟。

    右键单击一个或者多个规则,然后选择Set Latency就可以设置具体的延迟时间。如果你想调整现存的延迟时间,只需要输入一个带有+或者-号的数字即可。

    如果你想在现在的延迟时间基础上面减少500毫秒,那么在弹出的输入框中输入-500即可。

    好了,今天就到这里吧,O(∩_∩)O~

    下面附上原文地址:

    http://www.fiddler2.com/Fiddler2/help/AutoResponder.asp




  • 相关阅读:
    jmeter基础介绍
    mysql图形化工具navicat
    JMeter 进行压力测试
    windows ADB配置java adk / Android adk
    性能指标
    压力测试和负载测试(tps/qps)专项测试,吞吐量
    接口测试工具Postman
    charles步骤装
    Python列表操作
    Python字符串常见操作
  • 原文地址:https://www.cnblogs.com/guanshan/p/guan2020-5-15_002.html
Copyright © 2011-2022 走看看