vlambda博客
学习文章列表

接口-Fiddler-​功能介绍(二)


第一时间关注技术干货!




功能介绍(二)



第1章 监听类型

四种状态分别对应监听所有请求监听浏览器请求监听非浏览器请求全部隐藏

接口-Fiddler-​功能介绍(二)


第2章 命令行

2.1?sometext

在已有的sessions中,将URL中包含sometext的session项高亮。

接口-Fiddler-​功能介绍(二)


2.2>size<size< span=""></size<>

在当前的sessions中,高亮选择Response的Body大小大于或小于size指定的值。

例如:> 40000 将Response的body值大于40kb

<5k< span="">将Response的body值小于5kb


2.3=status

在当前所有的sessions中,将Result列中等于status值的session项高亮,即将与status值相同的http状态码高亮。

例如:=301即将http状态码为301的session是高亮。


2.4=method

在当前所有的sessions中,将Request请求中的http method与命令行中method值相同的session项高亮。

例如:=POST即将method为POST的session项高亮。


2.5@host

在当前的sessions中,将Request请求中host项中包含命令行@后内容的sessions项高亮。

例如:@baidu.com www.baidu.comlogin.baidu.com等sessions项高亮。


2.6bold

将新记录的sessions,如果URL中包含sometext内容,就将该sessions的字体加粗。如果要取消加粗,直接输入bold即可。

例如bold baidu.com,新记录的sessions中,URL内包含baidu.com字样的session字体加粗。


2.7bpafter

在URL中包含sometext内容的sessions的Resopnse位置设置断点,即该sessions的After Response位置。使用这个命令后,会将之前设置的策略清除。取消该拦截项,直接输入bpafter即可。

例如:bpafter du,拦截所有URL中包含du内容的Response返回值。


2.8bps

拦截所有状态码与sometext值相同sessions的Response返回值。使用这个命令后,会将之前设置的策略清除。取消该拦截策略,直接输入bps即可。

例如:bps 404,将所有返回404请求的Response全部拦截。


2.9bpvbpm

拦截所有发送的http method与sometext内容相同的Session网络请求。使用这个命令后,会将之前设置的策略清除。取消拦截策略,直接输入bpv或pbm即可。

例如:bpv POST,会拦截所有以POST方法发送的网络请求。


2.10bpu

在URL中包含sometext内容的sessions的Request位置设置断点,即该session的before request位置。使用这个命令后,会将之前设置的策略清除。取消该拦截策略,直接输入bpu即可。

例如:bpu /myservice.asmx,拦截所有URL中包含/myservice.asmx内容的Request请求。


2.11clsclear

cls或clear清除列表中所有的session,功能与Ctrl+X相同。

例如:cls


2.12dump

将当前获取到的所有sessions保存成zip文件,并保存到我的文档中的\ Fiddler2\Captures文件夹中,命名为dump.saz

例如:dump


2.13ggo

恢复所有被设置断点的session。

例如:g


2.14help

打开QuickExec的帮助页面。

例如:help


2.15hide

将Fiddler隐藏到系统状态栏中。

例如:hide


2.16urlreplace

自动将任意URL中的内容sometext1替换为sometext2。使用这个命令后,会将之前设置的策略清除。取消该拦截策略,直接输入urlreplace即可。

例如:urlreplace baidu qq,即如果发送的网络请求为www.baidu.com,通过该策略会自动更改为www.qq.com,并发送出去。


2.17start

将Fiddler设置为系统代理。

例如:start


2.18stop

取消Fiddler为系统代理。

例如:stop


2.19show

可以将已被隐藏的Fiddler置前。在Fiddler的安装目录下执行该命令需要使用到ExecAction.exe这个程序。

例如:show


2.20select MIME

在当前所有的Sessions中,将header的Content-Type字段包含sometext内容的sessions高亮。可用于选择文件格式等。

例如:select image,即将所有网络请求中,Content-Type字段包含image的sessions高亮。


2.21select HeaderOrFlag PartialValue

高亮SessionFlag或Header中包含指定sometext内容的session。

例如1:select text abc,即在名为text的SessionFlag中,高亮内容为abc的Session。

例如2:select @Response.Set-Cookie baidu.com,即在所有Session的Response中,查找name为Set-Cookie值为baidu.com的Session,并高亮。

例如3:select @Request.X-Requested-With XMLHttpRequest,即在所有的Session的Request中,查找name为X-Requested-With值为XMLHttpRequest的session,并高亮。

例如4:select @Request.X-Requested-With \*,即在所有的Session的Request中,查找name为X-Requested-With且为任意值的session,并高亮。


2.22allbutkeeponly

隐藏所有除Content-Type内容包含sometext的session项。

例如:allbut xml,隐藏所有Content-Type为非xml的session项。


2.23quit

关闭 Fiddler。

例如:quit


2.24!dns hostname或者!nslookup hostname

进行目标域名为sometext的DNS查找,并在LOG选项卡上将结果输出。


2.25!listen PORT [CERTHOSTNAME]

在另一个端口增设一个监听器,可选安全的HTTPS证。

例如:!listen 8889,即可同时截获通过8889端口的网络请求。


第3章 断点

断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获哪些请求。

共三种状态:

1、点击一下截获全部请求

箭头向上表示断点请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。

接口-Fiddler-​功能介绍(二)


2点击两下截获全部请求与返回

箭头向下:表示断点响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。

接口-Fiddler-​功能介绍(二)


3、点击三下解除断点设置

空白:不设置断点。

接口-Fiddler-​功能介绍(二)


设置断点修改请求区域操作:

例如访问百度首页后,输入“百度,点击百度一下

接口-Fiddler-​功能介绍(二)


此时打开Fiddler,点击一下断点,截获全部请求断点图标箭头向上

接口-Fiddler-​功能介绍(二)


2点击对应的会话请求

刷新一下刚才的百度搜索页面。

3查看请求报文信息

此时Fiddler截获到了刚才刷新后的请求信息可以看到请求区域参数里有之前所输入的关键字“百度

接口-Fiddler-​功能介绍(二)


接口-Fiddler-​功能介绍(二)


4、修改请求内容

请求区域将”百度修改为”百度一下”

接口-Fiddler-​功能介绍(二)


5、完成断点,放行,把该请求发送给目标服务器。

点击Run to Completion,放行该请求。

接口-Fiddler-​功能介绍(二)


此时之前的搜索关键字“百度变为了“百度一下”

接口-Fiddler-​功能介绍(二)


设置断点修改响应区域操作:

例如访问百度首页

接口-Fiddler-​功能介绍(二)


此时打开Fiddler,点击两下断点,截获全部请求返回断点图标箭头向下。

接口-Fiddler-​功能介绍(二)


2点击对应的会话请求

刷新一下刚才的百度搜索页面。

3查看响应报文信息

此时Fiddler截获到了刚才刷新后的请求响应信息可以看到响应区域参数里有关键字“百度一下

接口-Fiddler-​功能介绍(二)


接口-Fiddler-​功能介绍(二)


4、修改响应内容

在响应区域将”百度一下修改为”百度下”

接口-Fiddler-​功能介绍(二)


5、完成断点,放行,把该响应发送给目标服务器。

点击Run to Completion,放行响应

接口-Fiddler-​功能介绍(二)


此时之前的搜索关键字“百度一下变为了“百度下”

接口-Fiddler-​功能介绍(二)


第4章 行数

选择的行数/总行数

例如选择3行,总行数65

接口-Fiddler-​功能介绍(二)


第5章 请求地址

接口-Fiddler-​功能介绍(二)


第6章 请求列表

接口-Fiddler-​功能介绍(二)


名称

含义

#

抓取HTTP Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值


会话条目的默认文本颜色来源于HTTP状态(红色表示错误,黄色表示认证需求),流量类型(CONNECT表示灰色)或响应类型(CSS为紫色,HTML为蓝色脚本为绿色,图像灰色)。您可以使用FiddlerScript中的ui-color标志覆盖会话的文本颜色。

接口-Fiddler-​功能介绍(二)


每个会话都标有一个图标以供快速参考:

接口-Fiddler-​功能介绍(二)


结果(Result)是请求是否成功的代码。最常见的代码包括:

200—成功。请求已发送且响应已成功接收。

400—坏请求。当目的服务器接收到请求但不理解细节所以无法处理时发生。

404—页面找不到。如果目标API已移动或已更新但未保留向后兼容性时发生。

500—内部服务器错误。服务器端发生了某种致命错误,且错误并被服务提供商捕获。

接口-Fiddler-​功能介绍(二)


第7章 请求与返回相关信息

工具最右方的是请求与返回相关信息的查看器,提供了数据多方面的查看方式。

7.1Statistics

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

Statistics页签底部图表:

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

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

3、Collapse Chart收起饼图展示。

接口-Fiddler-​功能介绍(二)


关于HTTP请求的性能分析:

我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是33ms,建立TCP/IP连接的时间消耗是3ms等等信息。

接口-Fiddler-​功能介绍(二)


7.2Inspectors

检查器,页签允许你用多种不同格式查看每个请求和响应的内容。

信息分为上下两个部分,上半部分是请求部分,下半部分是响应部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。

接口-Fiddler-​功能介绍(二)


一、请求(Request)部分:

1、Headers:显示客户端发送到服务器的HTTP请求的header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等。

2、Textview:显示POST请求的body部分为文本,HTML/JS/CSS 使用 TextView 可以看到响应的内容。

3、SyntaxView:显示POST请求的body部分为文本,语法格式。

4、WebForms:显示请求的GET参数和POST的body内容,特别说明,这里body应该是 application/x-www-form-urlen-coded格式。

5、HexView:用十六进制数据显示请求。

6、Auth:显示header中的Proxy-Authorization和Authorization信息。

7、Cookies:显示Cookie信息

8、Raw:将整个请求显示为纯文本。

9、JSON:显示Json格式

10、XML:如果请求的body是XML格式,就是用分级的XML树来显示它。

接口-Fiddler-​功能介绍(二)


响应(Response)部分:

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

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

None:无压缩

GZIP:GZIP压缩

DEFLATE:DEFLATE压缩

BZIP2:BZIP2压缩

BrotliBrotli压缩

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

2、Headers:用分级视图显示响应的header。

3、TextView:使用文本显示响应的body。

4、SyntaxView:使用文本显示响应的 body,语法格式。

5、ImageView:如果请求是图片资源,显示响应的图片。左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放。JPG 格式使用 ImageView 就可以看到图片。

6、HexView:用十六进制数据显示响应。

7、WebView:响应在Web浏览器中的预览效果。

8、Auth:显示响应header中的Proxy-Authorization和Authorization信息。

9、Caching:显示此请求的缓存信息。

10、Cookies:显示Cookie信息

11、Raw:将整个响应显示为纯文本。

12、JSON:显示Json格式

13、XML:如果响应的body是XML格式,就是用分级的XML树来显示它。

接口-Fiddler-​功能介绍(二)


7.3AutoResponder

自动回复器,用于将HTTP请求重定向为指定的返回类型。

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

接口-Fiddler-​功能介绍(二)


启用该功能,请将Enable rules打勾。

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

Enable Latency表示启动延迟,勾选后选中规则,右键Set Latency输入延迟响应的毫秒数,保存后,执行规则会先等待所设置延迟时间。

接口-Fiddler-​功能介绍(二)


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

匹配的条件,可以自行输入字符串,也可以选择Fiddler内置的三个正则。Fiddler支持几种匹配模式:

1、String Literals:字符匹配

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

*


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:.*


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:指定唯一有效的捕获是显式命名或编号的(? …)形式的组。这允许圆括号充当非捕获组,从而避免了由(?:…)导致的语法上的笨拙。

s:指定单行模式。更改句点字符(.)的含义,以使它与每个字符(而不是除\n之外的所有字符)匹配。

x:指定从模式中排除非转义空白并启用数字符号(#)后面的注释。请注意,空白永远不会从字符类中消除。

接口-Fiddler-​功能介绍(二)


响应的结果,Fiddler内置的HTTP 200/204/302/303/304/307/401/403/404/407/502等各种响应范例、*bpu和*bpafter、本地文件(Find a file...)等。

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

接口-Fiddler-​功能介绍(二)


新增匹配规则具体操作

1、点击Add Rule,进行添加规则。

接口-Fiddler-​功能介绍(二)


接口-Fiddler-​功能介绍(二)


3、之后选中Enable rules进行启用规则

接口-Fiddler-​功能介绍(二)


接口-Fiddler-​功能介绍(二)


7.4Composer

Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求

点击Execute按钮执行请求,左边的请求列表会多出一项,双击它,可在Inspectors查看请求与返回的信息。

接口-Fiddler-​功能介绍(二)


也可以粘贴一次请求的Raw http headers,达到模拟请求的目的。

接口-Fiddler-​功能介绍(二)


7.5Fiddler Orchestra Beta

一个新web远程调试器,分为控制器和客户端,控制器从中获取数据并控制任意数量的客户端,客户端报告数据并接来自任意数量的控制器的命令。只有控制器保持端口打开接收来自客户端的传入连接。所有客户端和控制器通信都是加密的。

1、设置控制器

这是控制器配置的起点。启动一个控制器只需要一个端口和一个私钥。端口必须为外部连接开放,以便客户端能够连接。私钥用于加密与客户端的通信。客户机必须具有相同的私钥集,以便能够连接到该控制器。只有当控制器停止时,才能重新生成私钥。

接口-Fiddler-​功能介绍(二)


2、客户端安装(在Windows、Mac、Linux等)

下载安装.NET Core SDK v2.0.0

https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md

下载后,默认安装即可

接口-Fiddler-​功能介绍(二)


打开Fiddler点击Fiddler Orchestra Beta

接口-Fiddler-​功能介绍(二)


点击下载

接口-Fiddler-​功能介绍(二)


下载后,对zip文件进行解压

接口-Fiddler-​功能介绍(二)


在这个目录中打开命令提示符/终端

输入dotnet FiddlerOrchestra.Client.NetCore.dll

接口-Fiddler-​功能介绍(二)


打开链接http://localhost:8800/,客户端开启

接口-Fiddler-​功能介绍(二)


3、控制器与客户端进行相连

控制器设置端口号、密钥后,点击Start开始

接口-Fiddler-​功能介绍(二)


接口-Fiddler-​功能介绍(二)


7.6FiddlerScript

用于通过脚本控制HTTP,使用的是JScript语言。

包含了一个CustomRules.js脚本文件可以自动修改Http Request和Response位于 C:\Documents and Settings\[your user]\My Documents\Fiddler2\Scripts\CustomRules.js下,或者可以在Fiddler中打开CustomRules.js文件启动Fiddler点击菜单Rules->Customize Rules

接口-Fiddler-​功能介绍(二)


7.7Log

查看抓取请求日志信息

接口-Fiddler-​功能介绍(二)


7.8Filters

筛选,在好多请求中只想关注所需要的请求,就可以用到此功能过滤指定的内容。

HostsHosts 过滤规则

接口-Fiddler-​功能介绍(二)


接口-Fiddler-​功能介绍(二)


Client Process客户端进程过滤规则

Show only traffic from-你可以指定只捕获哪个Windows进程中的请求,右侧会列出当前所有的Windows进程

Show only Internet Explorer traffic-只显示IE发出的请求

Hide traffic from Service Host-隐藏服务主机发出的请求

接口-Fiddler-​功能介绍(二)


Request Headers请求header过滤规则

Show only if URL contains-支持基于URL显示某些请求;可以使用前缀EXACT来限定大小写敏感。

Hide if URL contains-和上面的是相反的含义,也就是隐藏的意思。

Flag requests with headers-支持指定某个http请求头名称,如果在请求列表中存在该请求头,会加粗显示该session。

Delete request headers-支持指定某个HTTP请求头名称,如果包含该请求头,会删除该请求头。

Set request header-支持创建一个指定了名称和取值的HTTP请求头,或将HTTP请求头更新为指定取值。


Breakpoints断点设置规则

Break request on POST-给所有POST请求设置断点

Break request on GET with query string-给所有带参数的GET请求设置断点

Break on XMLHttpRequest-给所有XML请求设置断点

Break response on Content-Type-给特定的Content-Type设定断点


Response Status Code响应HTTP状态过滤规则

Hide success(2xx)-隐藏响应成功的session(2xx)

Hide non-2xx-会隐藏状态码不在200到299之间的响应。

Hide Authentication demands(401,407)-隐藏未经授权被拒绝的session(401,407)

Hide redirects(300,301,302,303,307)-隐藏重定向的session(300,301,302,303,307)

Hide Not Modified(304)-隐藏无变更的session(304)


Response Type and Size响应类型和大小过滤规则

设定响应类型过滤规则

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

Show only IMAGE/*-只显示图片

Show only HTML-只显示HTML

Show only TEXT/CSS-只显示TEXT/CSS

Show only SCRIPTS-只显示脚本

Show only XML-只显示XML

Show only JSON-只显示JSON

Hide IMAGE/*-隐藏所有图片

Hide smaller than ? KB-隐藏小于指定大小的session

Hide larger than ? KB-隐藏大于指定大小的session

Time HeatMap-复选框会基于服务器返回给定响应所需要的时间为每session设置背景颜色。

Block script files-阻止脚本文件,显示为404

Block image files-阻止图片文件

Block SWF files-阻止SWF文件

Block CSS files-阻止CSS文件

接口-Fiddler-​功能介绍(二)


Response Headers响应header过滤规则

Flag responses that set cookies-标记会设置cookie的响应

Flag responses with headers-标记带有特定header的响应

Delete response headers-删除响应header

Set response header-设置响应的header


筛选指定URL操作

接口-Fiddler-​功能介绍(二)


7.9Timeline

性能测试工具,同chrome浏览器开发者工具的Network项效果相似。

接口-Fiddler-​功能介绍(二)


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

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

Session编号和URL

Session的响应类型

发送的字节数

接收的字节数

接口-Fiddler-​功能介绍(二)


接口-Fiddler-​功能介绍(二)




如果您觉得文章还不错,请 点赞、分享 一下,因为这将是我持续输出更多优质文章的最强动力!

没有关注的小伙伴,扫描下方二维码,获取更多精彩!


扫码关注

获取更多精彩

AllTests


- End -