首页 > 代码库 > fiddler界面详解(转自:子信风蓝蓝)

fiddler界面详解(转自:子信风蓝蓝)

原文地址:http://www.cnblogs.com/chengchengla1990/p/5681775.html

Statistics 页签

完整页签如下图:

技术分享

 

Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数、发送字节数、接收字节数、响应类型的汇总表、世界各地通过不同请求方式所需的时间等。

Statistics 页签底部图表

Show Chart 可以将汇总结果显示为一个饼状图,按照响应类型,在饼图中显示不同的比例和不同的色块,见上图。

Copy this chart 可以将该饼图复制到剪贴板,粘贴到图形处理软件或者 WORD 中。

Collapse Chart 收起饼图展示。

 

 Inspectors 页签

完整页签如下图:

技术分享

 

Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。

Inspectors 页签分为上下两部分,上部显示的是发出的请求相关信息,下部显示的是接收的响应相关信息。

请求 (Request) 部分详解

  1. Headers —— 显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等
  2. Textview —— 显示 POST 请求的 body 部分为文本
  3. WebForms —— 显示请求的 GET 参数 和 POST body 内容,特别说明,这里 body 应该是 application/x-www-form-urlen-coded 格式
  4. HexView —— 用十六进制数据显示请求
  5. Auth —— 显示 header 中的 Proxy-Authorization 和 Authorization 信息
  6. Raw —— 将整个请求显示为纯文本
  7. XML —— 如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它

响应 (Response) 部分详解

  1. Transformer —— 显示响应的编码信息

    技术分享

    顶部的黄色提示文字表示,此请求为了提高性能,而做了编码或者压缩(例如 GZIP),需要转换后才能在 TextView 里正常浏览。点击该区域或者下面的 Remove HTTP Chunked Encoding 按钮,都能执行转换或者解压缩。如果该请求没编码/压缩是看不见此提示的。

    HTTP Compression 显示当前请求使用的编码方式

    • No Compression —— 无压缩
    • GZIP Encoding —— GZIP 压缩
    • DEFLATE Encoding —— DEFLATE 压缩
    • BZIP2 Encoding —— BZIP2 压缩

    对未编码压缩的请求,可以选择不同的模式,看 Entity Size 里显示压缩后有多大。从而根据这个决定是否需要采用这样的压缩技术来提升网站的性能。

  2. Headers —— 用分级视图显示响应的 header
  3. TextView —— 使用文本显示相应的 body
  4. ImageVies —— 如果请求是图片资源,显示响应的图片。

    左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放

    技术分享

     

  5. HexView —— 用十六进制数据显示响应
  6. WebView —— 响应在 Web 浏览器中的预览效果
  7. Auth —— 显示响应 header 中的 Proxy-Authorization 和 Authorization 信息
  8. Caching —— 显示此请求的缓存信息
  9. Privacy —— 显示此请求的私密 (P3P) 信息
  10. Raw —— 将整个响应显示为纯文本
  11. XML —— 如果响应的 body 是 XML 格式,就是用分级的 XML 树来显示它 

AutoResponder 页签

完整页签如下图:

技术分享

 

此功能启用后,可以将某一请求的响应结果替换成指定的资源,可以是本地文件,也可以是 Fiddler 内置的各种 HTTP 响应。主要用于临时拦截某一请求的响应,而无需修改服务器上的环境和代码,保证在最真实的环境中进行调试,也无需在 BUG 查找的时候就寻求相关部门的配合。

· 启用该功能,请将 Enable automatic responses 打勾。

· Permit passthrough for unmatched requests 表示允许未匹配到的请求正常响应。应该打勾才能让其他的请求继续;否则其他未匹配到的请求都会以 404 状态返回。

· 页签中间是一个列表,显示当前创建的匹配规则,左侧是匹配的条件,右侧是响应的结果。即:如果请求的地址包含左侧的字符串,那么就用右边设定的资源来替换来自服务器的响应。用 + 和 - 两个按键可以调整当前选择规则在列表中的位置。

· 页签底部是一个规则编辑器,可以进行编辑当前用户选择的匹配规则、保存编辑、删除此匹配规则等操作。

技术分享

 

第一个 Combox 是匹配的条件,可以自行输入字符串,也可以选择 Fiddler 内置的三个正则(都是匹配图片的,没什么用)。Fiddler 支持几种匹配模式:

  1. String Literals —— 字符匹配

    这种模式将匹配指定的字符串,不存在大小写敏感。范例:

    *
    通配符,匹配任何地址,如: http://www.example.com/Path1/query=example
    EXAMPLE
    匹配 http://www.example.com/Path1/query=example
    path1/
    匹配 http://www.example.com/Path1/query=example
    query
    匹配 http://www.example.com/Path1/q=Query
  2. Exact Match —— 精确匹配

    这种模式一 EXACT: 开头,将严格匹配字符串,包括大小写。范例:

    EXACT:http://www.example.com/path
    匹配 http://www.example.com/path
    不匹配 http://www.example.com/Path(大小写不符)
    不匹配 http://www.example.com/path/q=Query(有多余字符串)
  3. Regular Expressions —— 正则表达式

    这种模式一 regex: 开头,使用正则表达式来匹配 session 的 URL。范例:

    regex:.*
    通配符,匹配任何地址,如 http://www.example.com/Path1/query=example

    regex:.*\.jpg —— 匹配包含 .JPG 的 URL
    匹配 http://www.example.com/Path1/query=foo.jpg&bar
    匹配 http://www.example.com/Path1/query=example.jpg

    regex:.*\.jpg$ —— 匹配 .jpg 结束的 URL
    不匹配 http://www.example.com/Path1/query=foo.jpg&bar(不是 .jpg 结尾)
    匹配 http://www.example.com/Path1/query=example.jpg

    regex:.*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 结束的 URL
    不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 结尾)
    匹配 http://www.example.com/Path1/query=example.gif
    不匹配 http://www.example.com/Path1/query=example.Gif (是 .gif 结尾,但大小写不匹配)
    匹配 http://www.example.com/Path1/query=example.bmp 

    regex:(?insx).*\.(jpg|gif|bmp)$ —— 匹配 .jpg 或 .gif 或 .bmp 结束的 URL,忽略大小写
    不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是 .bmp 结尾)
    匹配 http://www.example.com/Path1/query=example.gif
    匹配 http://www.example.com/Path1/query=example.Gif
    匹配 http://www.example.com/Path1/query=example.bmp

 

最后一个正则中的 ?insx 是正则表达式的语法,其中各字母的含义如下(详见:正则表达式选项):

  • i —— 指定不区分大小写的匹配
  • m —— 指定多行模式。更改 ^ 和 $ 的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字符串的开头和结尾匹配。
  • n —— 指定唯一有效的捕获是显式命名或编号的 (?<name>…) 形式的组。这允许圆括号充当非捕获组,从而避免了由 (?:…) 导致的语法上的笨拙。
  • s —— 指定单行模式。更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配。
  • x —— 指定从模式中排除非转义空白并启用数字符号 (#) 后面的注释。(有关转义空白字符的列表,请参见字符转义。)请注意,空白永远不会从字符类中消除。

 

第二个 Combox 是响应的结果,可以选择:Fiddler 内置的 HTTP 200/204/302/303/304/307/401/403/404/407/502 等各种响应范例、*bpu 和 *bpafter( 表示在此中断,关于 bpu 和 bpfater 见 QuickExec 命令参考)、本地文件 (Find a file...)。

Save 按钮是保存对此匹配规则的修改,Remove 按钮是删除此匹配规则。

增加匹配规则

1.点击 Add... 按钮,新增一条规则。

此时会激活页签底部的 Rule Editor。如果你在 Web Sessions 面板里选择了一个 Session,则匹配规则是该 Session 的 URL,否则是 StringtoMatch[数字]。然后可以使用 Rule Editor 编辑它。

2.点击 Import... 按钮,导入在 Web Sessions 中保存下来的压缩包 (*.saz)。

3.在 Web Sessions 面板中选择你要捕获的请求,直接拖拽到 AutoResponder 的列表中

Filters 页签

Fiddler 的过滤器功能相当的强大,见下图:

技术分享

下面我们一一加以说明:

  1. HOST —— HOST 过滤规则

    技术分享

    你可以在文本框中输入多个 HOST,多个之前用半角逗号或者回车分隔。

    1. - No Host Filter - —— 无 HOST 过滤
    2. Hide the following Hosts —— 隐藏如下 HOST
    3. Show only the following Hosts —— 只显示如下 HOST
    4. Flag the following Hosts —— 加粗显示如下 HOST
    Client Process —— 客户端进程过滤规则

    技术分享

    1. Show only traffic from —— 你可以指定只捕获哪个 Windows 进程中的请求,右侧会列出当前所有的 Windows 进程
    2. Show only Internet Explorer traffic —— 只显示 IE 发出的请求
    3. Hide Windows RSS platform traffic —— 隐藏 Windows RSS 平台发出的请求
    Breakpoints —— 断点设置规则
    1. Break request on HTTP POST —— 给所有 POST 请求设置断点
    2. Break request on HTTP GET with QueryString —— 给所有带参数的 GET 请求设置断点
    3. Break response on Content-Type —— 给特定的 Content-Type 设定断点
    Response Status Code —— 响应 HTTP 状态过滤规则
    1. Hide success(202,204,206) —— 隐藏响应成功的 session (202,204,206)
    2. Hide Authentication demands(401) —— 隐藏未经授权被拒绝的 session (401)
    3. Hide redirects(300,301,302,303,307) —— 隐藏重定向的 session (300,301,302,303,307)
    4. Hide Not Modified(304) —— 隐藏无变更的 session (304)
    Response Type and Size —— 响应类型和大小过滤规则

    技术分享

     

    1. 设定响应类型过滤规则

      · Show all Content-Types —— 显示所有响应类型

      · Show only IMAGE/* —— 只显示图片

      · Show only HTML —— 只显示 HTML

      · Show only TEXT/CSS —— 只显示 CSS

      · Show only SCRIPTS —— 只显示脚本

      · Hide IMAGE/* —— 隐藏所有图片

    2. Ignore smaller than ? KB —— 忽略小于指定大小的 session
    3. Ignore larger than ? KB —— 忽略大于指定大小的 session
    4. Block script files —— 阻止脚本文件,显示为 404
    5. Block image files —— 阻止图片文件
    6. Block SWF files —— 阻止 SWF 文件
    7. Block CSS files —— 阻止 CSS 文件
    Request Headers —— 请求 header 过滤规则
    1. Flag requests with header —— 标记带有特定 header 的请求
    2. Delete request header —— 删除请求 header
    3. Set request header —— 设置请求的 header
    Response Headers —— 响应 header 过滤规则
    1. Flag responses that set cookies —— 标记会设置 cookie 的响应
    2. Flag responses with header —— 标记带有特定 header 的响应
    3. Delete responses header —— 删除响应 header
    4. Set responses header —— 设置响应的 header
  2. Keep only the most recent ? sessions. —— 只保留最新的指定数量的 session  

Timeline 页签

完整页签如下图:

技术分享

 

此列表显示在 Web Sessions 面板中选择的 session 请求到响应的时间表。横向是时间轴,以秒为单位;纵向是选择的 session 列表。

鼠标移到 Timeline 页签的某一 session 上,在 Timeline 页签底部会显示四个数据:

· Session 编号和 URL

· Session 的响应类型

· 发送的字节数

· 接收的字节数

 

QuickExec 命令行

QuickExec 命令行如下图:

技术分享

QuickExec 命令行允许你快速执行脚本命令,在 Fiddler 中使用快捷键 Alt + Q 可以快速将焦点设置到命令行。

如果当前在 Web Sessions 面板选择了一个 Session,可以使用快捷键 Ctrl + I 快速将 Session URL 直接插入到命令行当前光标处。

默认命令参考

以下列表中的命令只能确保在最新版本的 Fiddler 中才生效。

多数命令是存在本地 CustomRules.js 文件中,如果不是最新版 Fiddler,可能没有最新的命令。如果要得到最新的命令,要么删除你的 CustomRules.js,要么复制 SampleRules.js 的 ExecAction 到 CustomRules.js 中。

    1. ?sometext

      Fiddler 会高亮所有 URL 匹配问号后的字符的全部 session。按回车聚焦到匹配的 session 上。

      范例:

      ?searchtext
    2. >size

      选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。

      范例:

      >40000 (选择响应大于 40kb 的请求)
    3. <size

      选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。

      范例:

      <5k (选择响应小于 5kb 的请求)
    4. =status

      选择响应 HTTP 状态等于指定值的全部 session。按回车聚焦到匹配的 session 上。

      范例:

      =301 (选择 301 重定向的请求)
    5. @host

      选择包含指定 HOST 的全部 session。按回车聚焦到匹配的 session 上。

      范例:

      @msn.com (选择 www.msn.com、login.msn.com 等 session)
    6. bold sometext

      加粗显示 URL 包含指定字符的全部 session。

      范例:

      bold test.php (加粗显示 URL 中包含 test.php 的 Session

      bold (不带参数表示清空所有加粗显示的 Session)
    7. bpafter sometext

      中断 URL 包含指定字符的全部 session 响应。

      范例:

      bpafter test.php (中断 URL 中包含 test.php 的 Session

      bpafter (不带参数表示清空所有设置断点的 Session)
    8. bps

      中断 HTTP 响应状态为指定字符的全部 session 响应。

      范例:

      bps 404 (中断所有响应 404 的 Session

      bps (不带参数表示清空所有设置断点的 Session)
    9. bpv 或 bpm

      中断指定请求方式的全部 session 响应。

      范例:

      bpv POST (中断所有 POST 请求的 Session

      bpv (不带参数表示清空所有设置断点的 Session)
    10. bpu

      中断请求 URL 中包含指定字符的全部 session 响应。

      范例:

      bpu test.php (中断所有请求 URL 中包含指定字符的 Session

      bpu (不带参数表示清空所有设置断点的 Session)
    11. cls 或 clear

      清除所有 session

      范例:

      cls
    12. dump

      将所有 session 打包到 C 盘根目录下的一个 zip 压缩包中

      范例:

      dump
    13. g 或 go

      继续所有中断的 Session

      范例:

      g
    14. help

      用 IE 打开 QuickExec 在线帮助页

      范例:

      help
    15. hide

      将 Fiddler 隐藏到任务栏图标中

      范例:

      hide
    16. urlreplace

      将 URL 中的字符串替换成特定的字符串

      范例:

      urlreplace SeekStr ReplaceWithStr

      urlreplace (不带参数表示清空所有之前的设置)
    17. start

      将 Fiddler 为系统代理

      范例:

      start
    18. stop

      将 Fiddler 从系统代理注销

      范例:

      stop
    19. show

      将 Fiddler 从任务栏图标恢复为图形界面,此命令在命令行工具 ExecAction.exe 中使用

      范例:

      show
    20. slect

      选择响应类型 (Content-Type) 为指定字符的所有 session

      范例:

      slect image

      slect css

      select htm
    21. allbut 或 keeponly

      选择响应类型 (Content-Type) 不是指定字符的所有 session

      范例:

      allbut xml

      allbut java
    22. quit

      退出 Fiddler

      范例:

      quit
    23. Fiddler2 状态栏

      完整状态栏如下图:

      技术分享

      此列表显示所有 HTTP 请求的相关信息,从左到右各列分别代表:

      1. 第一区块,显示的 Fiddler 是否处于捕捉状态,技术分享(开启状态)、技术分享(关闭状态),可以用快捷键 F12 切换或者点击该区域。
      2. 第二区块,显示当前捕捉哪些进程的通讯。前提是被捕获的进程必须使用 HTTP 代理:127.0.0.1:8888
        • All Processes —— 捕获所有进程的请求
        • Web Browsers —— 捕获 Web 浏览器的请求,应该特指 IE
        • Non-Browser —— 捕获非 Web 浏览器的请求
        • Hide All —— 隐藏所有请求
      3. 第三区块,显示当前断点设置状态,通过鼠标点击切换。可以有三种:
        • —— 不设置断点
        • —— 所有请求在断点处被暂停
        • —— 所有响应在断点处被暂停
      4. 第四区块,显示当前共捕获了多少 session(如:300,表示共捕获了 300 个)。

        如果选择了 session,会显示共选择了多少 session 及 session 总数(如:10/300,表示当前选择 10 个 session,共 300 个 session)。

      5. 第五区块,描述当前状态。

        如果是刚打开 Fiddler,会显示什么时间加载了 CustomRules.js;如果选择了一个 Session,会显示该 Session 的 URL;如果在 QuickExec 命令行输入一个命令,就会显示命令相关信息。

 

Fiddler2 选项

Fiddler2 选项对话框,共有五个选项卡:

    1. General —— 常规

技术分享

此选项卡显示 Fiddler 的常规设置:

 

              • Check for updates on startup —— 程序启动时查找更新
              • Reuse connections to servers(improved performance) —— 重用到服务器的连接(提高性能)
              • Reuse client connections(improved performance) —— 重用客户端的连接(提高性能)
              • Show a message when HTTP protocol violations encountered —— 违背 HTTP 协议的时候显示消息提示
              • Allow remote computers to connect —— 允许远程电脑连接
              • Enable IPv6(if available) —— 启用 IPv6(如果可用)
              • Map socket to originating application —— 映射 socket 连接到原程序
              • Encrypt use AES256 when saving password-protected SAZ files(slow) —— 保存受密码保护的 session 到 SAZ(Session Archive ZIP) 文件时候使用 AES256 算法加密(很慢)
              • Automatically stream audio & video —— 音频和视频自动使用流模式
              • Fiddler 的 Windows 全局热键 —— 默认是 Ctrl + Alt + F,你可以设置成 Win + 任意键、Ctrl + Alt + 任意键、Ctrl + Shift + 任意键的组合
        1. HTTPS —— HTTPS 设置

          技术分享

          此选项卡显示 Fiddler 的 HTTPS 设置:

              • Capture HTTPS CONNECTs —— 捕获 HTTPS 连接
              • Decrypt HTTPS traffic —— HTTPS 请求解密
              • Ignore server certficate errors —— 忽略服务器端验证错误
              • Show data from RPASpy —— 显示来自 RPASpy 的数据(RPASpy 是 Fiddler 1.3 中用于查看 HTTPS 请求和响应 header 的插件,Fiddler2 已经集成了 RPASpy)
        2. Extensions —— 扩展

          技术分享

          此选项卡显示 Fiddler 的扩展设置:

              • Automatically reload script when changed —— 脚本发生变化时自动重载
              • Editor —— 脚本的编辑器
              • References —— 扩展所连接到的 dll 文件
              • Extensions —— 已经安装的扩展列表
              • Find more extensions... —— Fiddler 在线扩展列表页
        3. Connections —— 连接

          技术分享

           

          任何一款可以设置 HTTP 代理的软件都可以使用 Fiddler。请先确保主菜单 File -> Capture Traffic 功能开启了。此选项卡显示 Fiddler 的连接设置:

              • Act as system proxy on startup —— 脚本发生变化时自动重载
              • Chain to upstream gateway proxy —— 链到上行数据流网关代理
              • Show Gateway Info —— 显示上行数据流网关设置信息
              • Fiddler listens on port: —— Fiddler 监听的端口
              • Copy Browser Proxy Configuration URL —— 复制 Fiddler 本地代理配置文件 URL
              • IE showld bypass Fiddler for URLs that start with: —— 如果 URL 地址以下列地址开头,IE 会绕过 Fiddler
              • WinINET Connections —— WinINET 连接
              • Monitor all connections —— 监听所有连接
              • 连接列表
        4. Appearance —— 外观

          技术分享

           

          此选项卡显示 Fiddler 的外观设置:

              • Font size —— Web Sessions 面板字号选择,单位:磅
              • Hide Fiddler when minimized —— 最小化时隐藏 Fiddler
              • Use SmartScroll in Session List —— Session 列表使用智能滚动
              • Reset Session ID counter on Ctrl + X —— 按下 Ctrl + X 的时候自动重算 session ID
              • Show Fiddler Toolbar —— 显示 Fiddler 工具栏 

                Fiddler中session的请求/响应类型与图标对照表

              • 技术分享

fiddler界面详解(转自:子信风蓝蓝)