抓包工具 fiddler

Fiddler 的使用

前言

Fiddler 是最常用的 Web 调试工具之一。对于开发来说,前端可以通过 Fiddler 代理来调试 JS、CSS、HTML样式。后端可以通过 Fiddler 查看请求和相应,定位问题。对于测试来说,可以通过抓包方式修改前端请求参数和模拟后端返回,快速定位缺陷。总之,不管是开发还是测试,Fiddler 都是一款工作中不可或缺的辅助利器。

1. 简介

官网:https://www.telerik.com/fiddler

Fiddler 是一个 HTTP 协议调试代理工具,是由 C# 写出来的,它包含一个简单却功能强大的基于 JScript.NET 事件脚本子系统,灵活性极高,并且能够使用 .net 框架语言进行扩展,可以记录并检查所有客户端和服务器之间的 HTTP 和 HTTPS 请求,允许你监视、设置断点、甚至是修改输入输出数据,也可以进行请求构造、设置网络丢包和延迟进行 APP 弱网测试等。

原理说明:

Fiddler 的原理是以 Web 代理服务器的形式进行工作的,代理(Proxy)就是在客户端和服务器之间设置一道关卡,对 Web 客户端来说,Fiddler(代理)扮演的是服务器的角色,接受请求报文,返回相应报文;对于 Web 服务器来说,代理扮演的是客户端的角色,发送 Web 请求报文,接受 Web 相应报文。

2. 下载安装

2.1 下载:
  1. 从官网进去,选择 FIDDLER TOOLS > Fiddler Classic
  2. 进入到以下页面,点击 Try For Free
  3. 进入到以下页面,它会问你用 Fiddler 做什么?你选择一下,然后再填写你的邮箱,选上 Country,勾选上 I agree 以及 I accept,再点击 Download For Windows
  4. 之后就会自动开始下载

2.2 界面介绍:

打开 Fiddler,界面如下,可分为六个部分:

  • 菜单栏
  • 工具栏
  • 会话面板
  • 辅助标签+工具
  • 命令行
  • 状态栏
3.1 菜单栏
  • File 菜单
  • Edit 菜单
  • Rules 菜单
  • Tools 菜单
  • View 菜单
  • Help 菜单

3.2 File 菜单:

  • Copy:下面的几个子菜单分别支持复制选中 Session 的某些信息
  • Remove:下面的子菜单分别支持从 Web Session 列表中删除全部、选择- 或未选中的 Session
  • Select All(或 Ctrl + A):命令选择 Sessions 列表的所有内容
  • Paste as Session:命令会基于剪贴板上的内容,生成一个或多个模拟- 的 Web Session
  • Find Session…(或 Ctrl + F):命令会打开 Find Session 窗口,搜- 索捕获到的数据流

3.3 Edit 菜单:

  • Copy:下面的几个子菜单分别支持复制选中 Session 的某些信息
  • Remove:下面的子菜单分别支持从 Web Session 列表中删除全部、选择或未选中的 Session
  • Select All(或 Ctrl + A):命令选择 Sessions 列表的所有内容
  • Paste as Session:命令会基于剪贴板上的内容,生成一个或多个模拟的 Web Session
  • Find Session…(或 Ctrl + F):命令会打开 Find Session 窗口,搜索捕获到的数据流

3.4 Rules 菜单:

  • Hide Image Request:触发器控制是否在 Web Session 列表中显示图像类 Session
  • Hide CONNECTS:触发器控制是否在 Web Session 列表中显示使用 CONNECT 请求方法的 Session
  • Automatic Breakpoints:子菜单控制 Fiddler 是否会自动在 Before Requests 或 After Responses 处设置断点。Ignore Image 触发器控制这些断点是否作用于图片请求
  • Customize Rules…(或 Ctrl + R):菜单命令会使用配置的脚本编辑器打开当前的 FiddlerScript 文件
  • Require Proxy Authentication:如果选中 Require Proxy Authentication 菜单项,所有未提交 Proxy-Authorization 请求头的请求会返回 HTTP/407 响应,要求客户端安装证书,该规则可以用于测试 HTTP 客户端,确保这些规则在有证书的客户端服务器上可以正常工作
  • Apply GZIP Encoding:如果选中 Apply GZIP Encoding 菜单项,只要请求包含具有 gzip 标识的 Accept-Encoding 请求头,就会对除了图片以外的所有响应使用 GZIP HTTP 进行压缩。该规则用于测试使用 GZIP 选项支持的客户端是否真正对内容进行压缩。该选项还支持性能调优,并且计算传输的压缩后的数据流的字节数
  • Remove All Encoding:如果选中 Remove All Encoding,会删除所有请求和响应的 HTTP 内容编码和传输编码
  • Hide 304s:选项会隐藏包含 HTTP/304 Not Modified 状态的响应的所有 Session
  • Request Japanese Content:选项会把所有请求的 Accept-Encoding 请求头设置或替换为 ja 标识,表示客户端希望响应以日语形式发送
  • User-Agents:子菜单支持把所有请求的 User-Agent 请求头设置或替换成指定值
  • performance:子菜单提供影响 Web 性能的简单选项

3.5 Tools 菜单:

  • Options…:打开 Fiddler Options 窗口,针对 fiddler 的设置
  • WinINET Options…:打开 IE 的 Internet Options 窗口, windows 的 ie 设置
  • Clear WinINET Cache(或 Ctrl + Shift + X):选项会清空 IE 和其他应用中所使用的 WinINET 缓存中的所有文件
  • Clear WinINET Cookies:选项会清空 IE 和其他应用中所发送的 WinINET Cookie.Session 的 Cookies 还是保持不变
  • TextWizard…(或 Ctrl + E):对文本进行编码和解码的工具
  • Compare Session(或 Ctrl + W):选项只有当选中 Web Session 列表中的两个 Session 时才有效。
  • Reset Script:重置脚本
  • Sandbox:打开 http://webdbg.com/sandbox/
  • View IE Cache:打开 IE 缓存窗口
  • Win8 Loopback Exemptionswindows 使用了一种叫做 “AppContainer” 的隔离技术,使得一些流量无法正常捕获,在 fiddler 中点击 Win8 Loopback Exemptions 按钮可以解除这个诅咒,这个与工具栏中的 WinConfig 功能是一致的
  • New Session Clipboard…:打开一个 Session 的剪贴板
  • HOSTS…:选项会打开 Fiddler 的 Host Remapping 工具

3.6 View菜单栏

  • Show Toolbar:控制 Fiddler 工具栏是否可见,默认是勾选的
  • Default Layout:默认 layoutsession 在左,请求和响应在右边的上下处(界面布局)
  • Stacked Layoutsession 在上,请求在下方(界面布局)
  • Wide Layoutsession 在上,请求和响应在下方的左右处(界面布局)
  • Tabs:打开标签页面,其中有三个标签可以打开,分别是
    • Preferencesfiddler 偏好属性
    • AutoSavefiddler 自动保存的设置
    • APITestapi 的测试
  • Statistics(或 F7):查看一个请求的统计数据
  • Inspectors(或 F8):嗅探,用来查看会话的内容,上面是请求,下面是响应
  • Composer(或 F9):设计构造在 Composer 中进行请求的修改,可以把 session 框中的数据先清除,然后点击 Composer 中的 Excute 按钮来发送请求,请求出现在 session 框中
  • Minimize to Tray(或 Ctrl + M):可以最小化 Fiddler 到系统托盘中
  • Stay On Top:保持置顶
  • Squish Session List(或 F6):控制 Web Session 列表是否水平收缩
  • AutoScroll Session list:自动滚动会话列表,默认是勾选此项的,勾选此项后,session 框中的每出现新的 sessionsession 框中就会不断向下滚动,若不勾选此项,就很方便具体某一个 session 的定位,即使出现了新的 session 也不会自动向下滚动
  • Refresh(或 F5):刷新功能

3.7 Help 菜单:

  • Welcome Screen:回到主页面
  • Help:进入 fiddler 的帮助的网页中
  • Get Fiddler Book…fiddler book 的网页
  • Discussionsfiddler 的讨论网页,这个需要魔法上网
  • HTTP References:进入 http 参考文献相关网站
  • Troubleshoot…:会捕获所有请求,对于哪些被过滤的请求用删除线表示出来并给出原因,使用时候会打开一个网页
  • Get Priority Support…:购买最新支持
  • Check for Updates…:检查软件更新情况
  • Send Feedback…:意见反馈
  • About:关于当前 fiddler 的相关信息

3.8 工具栏

  • WinConfig:windows 使用了一种叫做 “AppContainer” 的隔离技术,使得一些流量无法正常捕获,在 fiddler 中点击 WinConfig 按钮可以解除这个隔离,这个与菜单栏 Tools → Win8 Loopback Exemptions 功能是一致的。
  • :给 session list 中的会话添加备注。选中一条回话,再点击该按钮可直接添加备注内容,添加成功后将会在 Comments 栏下查看到该备注。
  • Reply:数据重放(快捷键 R ),当我们需要再一次对某个请求进行发送的时候,Fiddler 提供了回放的功能可以再一次发送请求。
  • :清空监控面板(快捷键 Ctrl + X);可以清除面板上全部或某些请求。
  • Go:是调试 debug 按钮,让请求断点继续往下走。结合状态栏使用。在状态栏第三格点(底部状态栏)一下,箭头朝上打叉,表示请求在发送的阶段有一个断点,再按下向下的是请求回来的时候产生一个断点,比如朝上的,用 replay 功能重播,但是请求没有发出去,想让断点继续走,按一下 go 就可以了,类似调试代码中的 debug 功能

通过结合状态栏中的按钮,可以调试时请求的状态进行拦截,上图状态栏处的箭头向上,表示拦截该请求发送时候

上图找过你该状态栏箭头向下,表示 Fiddler 拦截请求回来的时候。放行断点的时候单击上方的 GO 的按钮即可—>查看详情

  • Stream:表示用来模式切换,在流模型和缓存模式下进行切换,默认是缓冲模式。
    • 流模式:理解成为一种实时通信的模式,有请求就有返回,也就是实时返回
    • 缓冲模式:等待所有的请求都到一起在返回,也就是等所有的数据都准备好了以后才返回给客户端
  • Decode:将 http 请求的东西解压出来,方便阅览。
  • Keep:All session:Fiddler 默认保存 All sessions,需要注意的是 Fiddler 保存的会话状态越多,占用的内存越大。如果性能不是特别好,建议不要保存所有会话。

  • Any process:过滤请求(靶心形状按钮是帮我们过滤不想看到的进程发出的请求,只保留我们要看到的进程的请求。比如只想看到谷歌浏览器请求,把靶心拖动到谷歌浏览器放开即可)该功能可以只捕获某个客户端或进程发送的请求,点击 Any Process 拖动鼠标到指定客户端或者进程上。
  • find:查找会话,并默认黄色标识该会话。

  • Save:可以对捕获到的会话进行保存,保存后只需要把保存的 saz 文件打开即可。
  • :保存截图功能,5 秒之后帮我们把截图保存下来
  • Brows:计时器:快速启动浏览器(也可选择下拉框中别的浏览器:IE,火狐,谷歌,edge等)
  • CLear Cache:WinINET 的缓存,按住 CTRL 键点击可以清除已经存在的 cookies
  • TextWizard:此工具可以将某一编码过的或者未编码过的字串拿到此处解码和编码,也可以在菜单栏 Tools > TextWizard… 中打开
  • TearOff:此功能用来将右边栏里的请求和响应部分给单独拆成一个新窗口,方便视察
  • MSDN Search:可以进行搜索功能,原版的话平时几乎不会用到该功能
  • :fiddler 的在线帮助网站
  • Online:鼠标悬停显示本机的一些 ip 信息
  • X:用来关闭工具栏的按钮,在 View 中可以打开工具栏

  3.9 会话面板

  • 表头字段解析:

  • # :HTTP Request 的顺序,从 1 开始,按照页面加载请求的顺序递增,点击可按降序排列
  • Result:HTTP/HTTPS 响应的状态
  • Protocol:请求使用的协议(如 HTTPHTTPSFTP
  • Host:请求地址的域名
  • URL:请求的服务器路径和文件名,也包括 GET 参数
  • Body:请求的大小,以 byte 为单位
  • Caching:请求的缓存过期时间或缓存控制 header 等值
  • Content-Type:请求响应的类型 Content-Type
  • Process:发出此请求的 Windows 进程及进程 ID
  • Comments:用户通过脚本或者右键菜单给此 session 增加的备注
  • Custom:用户可以通过脚本设置的自定义值

4.0 辅助标签+工具

  • Get Started
  • Statistics
  • Inspectors
  • AutoResponder
  • Composer
  • Fiddler Orchestra Beta
  • FiddlerScript
  • Log
  • Filters
  • Timeline

4.1 Get Started:

初始页,上面显示了一些 Fiddler 相关的新手基础操作的指引与软件推广信息,如果需要关闭的话就将页面左下角的 Show on startup 取消勾选即可

4.1.1Statistics:

根据在会话列表中选中会话进行统计与分析

  • Request Count:请求数
  • Unique Hosts:当选中的多条请求,且他们的 host 都不一致时,就会展示不相同的个数
  • Bytes sent:发送的请求字节数,包括请求头和请求体
  • Bytes Received:接收到的字节数,包括响应头和响应体
  • ACTUAL PERFORMANCE:实际性能,这部分的数据就是将数据流拆成两个部分,客户端发送到 fiddler 的时间和 fidder 返回数据给客户端的时间计算,fiddler 建联和服务器交互的时间

    • ClientConnected:表示客户端和 fiddler 之间建立连接的时间
    • ClientBeginRequest:客户端把请求发给 fiddler 的时间
    • GotRequestHeadersfiddler 接收到客户端发送的请求头时间
    • ClientDoneRequest:客户端将请求完全发给 fiddler 的时间
    • DetermineGateway:确认网关使用时间
    • DNS LookupDNS 解析时间
    • TCP/IPConnectfiddler 与服务器建联时间
    • HTTPSHandshakeFiddler 与服务器 HTTPS 握手使用使用时间
    • ServerConnectedFiddler 与服务器建联时间
    • FiddlerBegin Requestfiddler 把请求发给服务器时间
    • ServerGotRequest:服务器接收完 fiddler 发送的整个请求的时间
    • ServerBeginResponsefiddler 接收到服务器发送的首个响应时间
    • GotResponseHeadersfiddler 接收到服务器返回第一个响应字节时间
    • ServerDoneResponse:服务器发送完毕响应时间(发送到 fiddler
    • ClientBeginResponsefiddler 开始发送响应给客户端的时间
    • ClientDoneResponsefiddler 发送完响应给客户端的时间
    • Overall Elapsed:总的耗时时间
  • RESPONSE CODES:响应码统计
  • Response Bytes(by content-type):响应字节统计
  • REQUESTS PER HOST:每个主机的请求数
  • ESTIMATED WORLDWIDE PERFORMANCE:全球网站性能评估,这块主要就是用来说明在其他的地区访问这个请求要花多少时间,主要评估的维度就是 RTT 和 Elapsed

    • RTT:用于说明请求发送到接收到响应要花多少时间
    • Elasped:则说明总体的耗时需要多少

点击 Statistics 页面底部的 Show Chart 相关的数据会以饼状图的形状展示出来,大概可以查看出哪一种类型的数据占据最多

Collapse Chart 按钮关闭图标展示,Copy this chart 按钮复制图表。

4.2 Inspectors:

该功能用于显示会话列表中选定会话的请求和响应信息,选中该选项卡后,下方区域就会变成 HTTP 请求区域与 HTTP 响应区域,在该选项卡下还存在多个子选项卡,分别代表着各类显示风格与请求和响应内的其他组成内容

请求报文区按钮说明:

  • Headers:显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包括 Cookie、设备信息
  • TextView:显示 POST 请求的 body 部分为文本
  • SyntaxView:为 Textview 的加强版,查看语法高亮的请求内容。加上了行数标识,鼠标右键的菜单中,相较 Textview 多了一些功能,如 JsonXML 格式化,查找替换等
  • WebForms:显示请求的 GET 参数 和 POST body 内容。特别说明,这里 body 应该是 application/x-www-form-urlen-coded 格式
  • HEX:用十六进制数据显示请求
  • Auth:header 中的 Proxy-Authorization 和 Authorization 信息
  • Cookies:请求发送的 cookies 信息
  • Raw:将整个请求显示为纯文本
  • JSON:如果请求的 body 是 Json 格式,就是用分级的 Json 来显示它
  • XML:如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它

响应报文区按钮说明:

  • Transformer:显示响应的编码信息
  • Headers:显示响应的 header
  • TextView:使用文本显示相应的 body
  • SyntaxView:为 Textview 的加强版,查看语法高亮的请求内容。加上了行数标识,鼠标右键的菜单中,相较 Textview 多了一些功能,如 JsonXML 格式化,查找替换等
  • ImageView:如果请求是图片资源,显示响应的图片。左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:Autoshrink(自动缩放)、Scale to fit(缩放以适应显示区域大小)、No Scaling(无缩放)
  • HexView:用十六进制数据显示响应
  • WebForms:响应在 Web 浏览器中的预览效果
  • Auth:显示响应 header 中的 Proxy-Authorization 和 Authorization 信息
  • Caching:显示此请求的缓存信息
  • Cookies:显示此请求的 cookies 信息,私密 P3P Header 信息
  • Raw:将整个响应显示为纯文本
  • JSON:如果响应的 body 是 Json 格式,就是用分级的 Json 来显示它
  • XML:如果响应的 body 是 XML 格式,就是用分级的 XML 树来显示它

第一次在 Web 会话列表中双击某个会话或按下 Enter 键,就会激活 Inspectors 选项卡。Fiddler 会根据每个请求和响应的类型,自动选择合适的 Inspectors 视图。例如:如果你选择的会话是一个 image/* 类型,则 Fiddler 会自动选择 Inspectors 中的 ImageView 视图。如下图:

4.3 AutoResponder:

除了使用断点方式来拦截请求,也可以使用 AutoResponder 方式来拦截请求

Fiddler 的自动响应选项卡(AutoResponder)提供了 Fiddler 最强大的一些功能。它支持创建规则,可以在响应请求时自动触发,常见例子是返回之前捕捉的响应,而不需要访问服务器。

Fiddler 自动响应选项卡界面下图:

上图中,在自动响应选项卡区域的上方是一组选项,能够控制自动响应选项卡的行为。如下:

  • Enable rules:复选框用来控制是否激活自动响应选项卡
  • Unmatched requests passthrough:复选框用来控制当会话不匹配任何给定的规则时会发生什么。如果选中该选项,不匹配的请求会正常发送到服务器。如果没有选中该选项,Fiddler 会为所有和该规则完全不匹配的 HTTP 请求生成 HTTP/404 Not Found 响应。如果客户端发送的是条件请求,其中包含请求头 If-None-Match 或 If-Modified-Since,那么会返回响应 HTTP/304 Not Modified
  • Enable Latency:选项控制匹配某个规则的请求是立即执行,还是延迟 Latency 字段中所指定的毫秒数。如果没有选中该选项,Latency 字段就不会显示。使用这个选项可以更准确地模拟现实中的服务器响应,取消该选项可以提升性能。
  • Add Rule:点击该按钮添加一个新的 AutoResponder 规则。
  • Group:点击该按钮对多个规则进行分组,这样便于统一开启/禁用规则。
  • Import:点击该按钮支持导入之前捕获的 SAZ 文件,导入文件中的每个会话会被用于规则列表中生成新的规则。你还可以导入 FARX 文件,它包含从 AutoResponder 选项卡导出的规则。如下图:

4.4 Composer:

Fiddler 的 Composer 选项卡支持手动构建和发送 HTTPHTTPS 和 FTP 请求。此外,还可以从 Web 会话列表中拖拽会话,把它放到 Composer 选项卡中,把该 Session 的请求复制到用户界面。点击 Execute 按钮,把请求发送到服务器端。如下图:

从上图可知,Composer 选项卡是由三个子选项卡组成的:ParsedRawScratchpad 和 Options 选项卡。下面将按序解释每个选项卡,为了便于说明,从右开始

  • 请求选项卡(Options ):

  • Options 选项卡提供的选项如下:

    • Inspect Session:请求执行后,Inspectors 选项卡会被激活,可以查看请求的结果
    • Fix Content- Length header:该选项控制 Composer 是否会自动添加或修改 Content-Length 请求头,表示请求体的大小。在很多情况下,缺少适当的 Content-Length 头的请求会 HANG 住或导致 HTTP 响应出错
    • Follow Redirects:该选项控制 Composer 是否会自动使用响应的 Location 头,遵循 HTTP/3xx 重定向。如果选中该选项,Composer 在失败之前最多会执行 10 次重定向
    • Automatically Authenticate:该选项控制 Composer 是否会自动响应服务器的 HTTP/401 或 HTTP/407 认证需求。如果选中该选项,会使用 Fiddler 所运行的账户的 Windows 证书自动响应这些问题。要提供不同的证书集,设置 Preference fiddler.composer.AutoAuthCreds。如果服务器需要的证书和提供方的证书不同,请求会失败,通常会返回响应 HTTP/403
    • Tear off button:该按钮会从主 Fiddler 窗口删除 Composer,并把它作为独立的悬浮窗口打开。如果选中 Inspect Session 选项,该选项就非常有用,因为它支持同时查看 Composer 和 Inspector 选项卡
  • 暂存器(Scratchpad):使用 Scratchpad 选项卡存储请求集合。如果要发出请求,请选择其文本并按 Execute 按钮进行执行。如下图:

Raw 请求:Raw 选项卡提供简单的文本框,可以在该文本框中输入合适的 HTTP 请求。如果请求格式不对(比如忘记在请求头后截断 CRLF),点击 Execute 按钮不会发起请求

Parsed 请求:Parsed 选项卡支持为每个请求组件使用独立的输入框构建请求

  • 选项卡的下方是三个输入框: 在最上方的线下是两个大的文本区:最上方的输入框支持编辑请求头。最下方的输入框支持编辑请求体。如果当前选中的 HTTP 方法不支持请求体(如:GET 方法),当在请求体输入框输入文本时,该输入框会显示红色

    • 第一个输入框支持指定 HTTP 方法(如:POST
    • 第二个输入框支持指定请求的绝对 URL(必须以 http://https:// 或 ftp:// 开头)
    • 第三个输入框支持指定 HTTP 版本号(通常是 HTTP/1.1

Fiddler Orchestra Beta:

Fiddler Orchestra Beta 页签是新版 Fiddler 新增功能,用于抓包远程计算机的数据

其中 Fiddler Orchestra 涉及到两个角色,控制器(Controller)和客户端(Client),控制器就是我们正在使用的 Fiddler 软件,其功能是用来收集数据和控制任何一个客户端,而客户端则是向任何其运行所在的 WindowsLinuxMac 主机上收集接收过来的流量将其通过加密的方式报告发送给控制器,控制器会在 Fiddler 软件上的会话端显示。

FiddlerScript:

FiddlerScript 是 Fiddler 提供的 Jscript 脚本,让我们在 Fiddler 的基础上扩展实现一些其他更强大的功能

Fiddler Script Editor 提供了语法高亮,以及智能提示的功能

FiddlerScript 基于 JScript.NET 语言。在 Fiddler 中点击菜单 Rules > Customize Rules 打开 FiddlerScript Editor 编辑器,在这里可以编写 Fiddler Script 脚本,只要一保存,Fiddler 将会重新编译脚本并自动加载。

Log:

Fiddler 的 Log 选项卡收集日志消息字符串,这些字符串是由扩展、FiddlerScript 或 Fiddler 本身生成的。Fiddler 会记录应用事件(如:当保存或加载 SAZ 文件)以及系统事件(如:系统的网络连接丢失或恢复)的响应通知。

在当前的 Fiddler 版本中,Log 选项卡如下图:

右击 Log 文本框,会显示上下文菜单,提供和日志交互的一些基本命令:

  • Copy:把选中的文本复制到剪贴板
  • Send to Session List:将事件日志作为会话保存到Web会话列表
  • Save to File… :把当前日志保存到磁盘文件中。可以是纯文本格式,也可以是格式化的富文本格式(.rtf
  • Clear:清空Log中的所有文本

Log 选项卡支持简单的宏命令,可以从 QuickExec 文本框中调用这些命令。例如:

  • 清空日志
log @Log.Save
  • 在 Web 会话列表中生成新的会话,该会话的响应体包含 Log 选项卡的文本
log @Log.Save
  • 把 Log 选项卡的文本保存到指定的文件。文件名以 .rtf 结尾,可将文件保存为富文本格式,保存大小和权重,或以文件名以 .txt 结尾保存为纯文本
log "@Log.Erport\"filename\""

Filters:

在 Fiddler 中,Filters(过滤器)选项卡提供了非常方便地将简单的过滤规则应用到正在捕捉的数据流上的方法。在 Filters 选项卡上面的所有操作 FiddlerScript 可以模拟(通常更准确或强大),但是对于简单的任务,Filters 选项一般就足够满足过滤需求。如下图:

上图中,选中 Filters 选项卡左上方的 Use Filters 复选框后,就可以使用 Filters 给出的过滤器对流量进行过滤了。选中 Use Filters 复选框后,对于选定的会话,可以对该会话进行如下过滤操作:

  • 是否隐藏显示
  • 是否在 Web 会话列表中添加标识
  • 是否设置断点用于人工调试
  • 是否阻断发送
  • 是否自动修改其数据头

Fiddler 还会为隐藏的会话提供代理功能,即使在 Web 会话列表中没有显示这些会话。

选项卡右上方的 Actions 按钮支持把当前选中的过滤器作为过滤集,加载之前保存的过滤集,并对之前捕捉到的数据流应用当前过滤规则。如下图:

1.Hosts(主机过滤)

Hosts 框提供根据主机名过滤的功能。如下图:

Hosts 过滤支持:

- 按区域进行过滤(Zone Filter),如果选择只显示局域网会话(Show only Interanet Hosts),Fiddler 将只会列出属于局域网的会话。如果选择只显示互联网的会话(Show only Internet Hosts),Fiddler 将只会列出属于互联网的会话。如下图:

- 按主机进行过滤(Host Filter),如果选择隐藏一下主机(Hide the following Hosts),Fiddler 将隐藏 Hosts 输入框输入的主机。如果选择只显示以下主机(Show only the following Hosts),Fiddler 将仅仅显示 Hosts 输入框输入的主机。如果选择标记以下主机(Flag the following Hosts),Fiddler 将在 Web 会话列表中加粗显示 Hosts 输入框中输入主机的所有会话

注意:
(1)修改过滤器后,需要执行“Actions”的“Run Filterset now”按钮,使修改后的过滤器配置立即生效。
(2)Hosts 文本框不会自动通过通配符匹配子域名。如果你设置了“Show only the following Hosts”并且在列表中只有hxstrive.com,那么将无法看到 www.hxstrive.com 网站下的数据流。为了查看 hxstrive.com 域名下所有的数据流,需要手动添加通配符 。例如:.hxstrive.com。


在通配符方式下就可以包含如 test.hxstrive.com 和 doc.hxstrive.com 这样的网站。如果你想查看根目录 hxstrive.com下的数据流,可以把通配符改成 *hxstrive.com 的形式 —— 这样就可以包含所有域名以 hxstrive.com 结束的数据流,前面不需要加点。如果有多个 host,可以使用分号分隔。

  1. Client Process(客户端进程)

进程过滤器用于控制 Fiddler 显示哪个进程的数据流。应用程序只有和 Fiddler 运行在相同的主机时,Fiddler 才能判断出是哪个进程发出的哪个请求。如下图:

  • Show only traffic from 选项只显示选中进程下的数据流(注意:下拉列表中包含了系统中当前正在运行的所有进程)。如下图:

  • Show only Internet Explorer 选项只显示进程名称以 IE 开头或请求的 User-Agent 头包含 compatibleMSIE 的数据流
  • Hide traffic from Service Host 选项会隐藏来自进程 svchost.exe 的数据流,svchost.exe 进程是个系统进程,会同步 RSS Feeds 以及执行其他后台网络活动
  1. Request Headers(请求头)

可通过下面这些选项,添加或删除 HTTP 请求头,也可以标识包含某些请求头的请求。如下图:

  • Show only if url contains:选项框支持基于 URL 隐藏某些请求,仅仅显示我们感兴趣的请求。可使用前缀 EXACT 来限定大小写敏感,如下:
EXACT:hxstrive.com/q=字符串

也可以使用正则表达式

REGEX:(?insx).*\.(gif|png|jpg)$  # 只显示图片请求
  • Flag requests with header:选项支持指定某个 HTTP 请求头名称,如果在 Web 会话列表中存在该请求头,会加粗显示该会话
  • Delete request header:选项支持指定某个 HTTP 请求头名称,如果包含该请求头,会删除该请求头
  • Set request header:选项支持创建一个指定了名称和取值的 HTTP 请求头,或将 HTTP 请求头更新为指定取值

Timeline:

Fiddler 的时间轴(TimeLine)选项卡支持使用 瀑布 模型查看 1 到 250 个选中的会话,这对于性能分析和理解请求之间的关联是很有用的。

选项卡的主体内容就是数据流视图。页面的上方是标题,显示时间轴模式(默认情况下是 传输时间轴 Transfer Timeline)。点击右上方的帮助(Help)链接,会使用浏览器打开关于该功能的帮助页面。如下图:

在选项卡中任意位置右击,可以看到上下文菜单。如下图:

上图中:

  • AutoScale Chart(自动缩放图表):如果选中该选项,会水平调节图形宽度,使得整个图形适配选项卡宽度,不需要水平滚动条
  • Copy Chart(复制图表):点击该选项会把图形以位图格式拷贝到剪贴板,以便粘贴到其他文档中
  • ModeTimeline 控制图形如何显示:

    • Timeline(时间轴):通过时间轴线条显示每个会话,用彩色条表示时间段,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值