03. Fiddler监控面包与辅助工具
03. Fiddler监控面包与辅助工具
1. Fiddler的主界面
2. SessionList会话列表
1. 组成部分
- Fiddler抓取到的每条http请求(每一条称为一个session)
- 主要包含了请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息
字段名 | 含义 |
---|---|
# | HTTP Request的顺序,从1开始,按解页面加载请求的顺序递增[Result] |
Result | HTTP响应的状态码,可以参考我第一篇笔记。 |
Protocol | 请求使用的协议(如HTTP/HTTPS/FTP) |
Host | 请求地址的域名 |
URL | 请求的服务器路径和文件名,也包括GET参数 |
BODY | 请求的大小,以byte为单位 |
Caching | 请求的的缓存过期时间或缓存控制 header等值 |
Content-Type | 请求响应的类型(Content-Type) |
Process | 发出此请求的Windows进程及进程ID |
Commments | 用户通过脚本设置或者右键菜单给此session增加的备注 |
Custom | 用户可以通过脚本设置的自定义值 |
更改自定义用户脚本,可以完成例如增加ip列的操作,要重启fiddler才会生效。
列可以拖动列名更改排布位置
表头可以做排序,点击表头即可根据该表头的字段升序降序排序
static function Main() {
var today: Date = new Date();
FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today;
// 添加IP列
FiddlerObject.UI.lvSessions.AddBoundColumn("IP地址", 120, "X-HostIP");
// Uncomment to add a "Server" column containing the response "Server" header, if present
// UI.lvSessions.AddBoundColumn("Server", 50, "@response.server");
// Uncomment to add a global hotkey (Win+G) that invokes the ExecAction method below...
// UI.RegisterCustomHotkey(HotkeyModifiers.Windows, Keys.G, "screenshot");
}
3. 命令行
输入 help 进入官方文档查询
1. 常用命令
- ?sometext Fiddler 会高亮所有 URL 匹配问号后的字符的全部 session。按回车聚焦到匹配的 session 上。 示例:?searchtext
>size
选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。 示例:>40000
(选择响应大于 40kb 的请求)<size
选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。 示例:<5k(选择响应小于 5kb 的请求)- =status 选择响应 HTTP 状态等于指定值的全部 session。按回车聚焦到匹配的 session 上。 示例:=200 (选择 请求成功的请求)
- @host 选择包含指定 HOST 的全部 session。按回车聚焦到匹配的 session 上。 示例:@msn.com (选择 www.msn.com、login.msn.com 等 session)
- bold sometext 加粗显示 URL 包含指定字符的全部 session。 示例:bold test.php (加粗显示 URL 中包含 test.php 的 Session bold (不带参数表示清空所有加粗显示的 Session)
- bpafter sometext 中断 URL 包含指定字符的全部 session 响应。 示例:bpafter test.php (中断 URL 中包含 test.php 的 Session bpafter (不带参数表示清空所有设置断点的 Session)
- bps 中断 HTTP 响应状态为指定字符的全部 session 响应。 示例:bps 404 (中断所有响应 404 的 Session bps (不带参数表示清空所有设置断点的 Session)
- bpv 或 bpm 中断指定请求方式的全部 session 响应。 示例: bpv POST (中断所有 POST 请求的 Session bpv (不带参数表示清空所有设置断点的 Session)
- bpu 中断请求 URL 中包含指定字符的全部 session 响应。 示例: bpu test.php (中断所有请求 URL 中包含指定字符的 Session) bpu (不带参数表示清空所有设置断点的 Session)
(下面的两种方式都可以用来继续断点请求)
- cls 或 clear 清除所有 session 示例:cls
- dump 将所有 session 打包到 C 盘根目录下的一个 zip 压缩包中 示例:dump
- g 或 go 继续所有中断的 Session 示例:g
- help 用 IE 打开 QuickExec 在线帮助页 示例:help
- hide 将 Fiddler 隐藏到任务栏图标中 示例:hide
- urlreplace 将 URL 中的字符串替换成特定的字符串 示例: urlreplace SeekStr ReplaceWithStr urlreplace (不带参数表示清空所有之前的设置)
- start 将 Fiddler 为系统代理 示例:start
- stop 将 Fiddler 从系统代理注销 示例:stop
- show 将 Fiddler 从任务栏图标恢复为图形界面,此命令在命令行工具ExecAction.exe 中使用 示例:show
- slect 选择响应类型 (Content-Type) 为指定字符的所有 session 示例: slect image slect css select htm
- allbut 或 keeponly 选择响应类型 (Content-Type) 不是指定字符的所有 session 示例: allbut xml allbut java
- quit 退出 Fiddler 示例:quit
4. 状态栏
1. 代理状态
显示的 Fiddler 是否处于系统代理状态,(有capture表示开启状态,点击清除图标取消代理),可以用快捷键 F12 切换或者点击该区域。
2. 会话选择
All Processes —— 捕获所有进程的请求 Web Browsers —— 捕获 Web 浏览器的请求,应该特指 IE Non-Browser —— 捕获非 Web 浏览器的请求 Hide All —— 隐藏所有请求
3. 断点设置
显示当前断点设置状态,通过鼠标点击切换。可以有三种: —— 不设置断点 —— 所有请求在断点处被暂停 —— 所有响应在断点处被暂停
4. 选择Session数
显示共选择了多少 session 及 session 总数(如图所示选择 了2 个 session,共 77 个session)。
5. 附加信息
如果是刚打开 Fiddler,会显示什么时间加载了 CustomRules.js;如果选择了一个 Session,会显示该 Session 的 URL;如果在 QuickExec 命令行输入一个命令,就会显示命令相关信息。
5. 辅助标签加工具
1. Statistics-统计分析
Http或Https请求的性能和其他数据分析,如DNS解析时间,TCP/TP建立连接的时间(TCP三次握手的时间)、SSL连接的时间(针对https请求)等信息。
2. Inspectors-检查器
直接可以双击会话打开检查器,或选择会话后点击检查器。以不同的形式展示请求或部分请求报文、响应或部分响应报文。
3. 请求部分
Headers:显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等
TextView:显示 POST 请求的 body 部分为文本
SyntaxView:语法的格式
WebForms:显示请求的 GET 参数 和 POST body 内容,特别说明,这里的QueryString为url后接的内容;这里 body 为是 application/x-www-form-urlen-coded 格式。(form表单post请求默认是这种查看方式)
HexView: 用十六进制数据显示请求
Auth :显示 header 中的 Proxy-Authorization 和 Authorization 信息
Cookies:显示请求的cookie信息
Raw:原生的纯文本(用的较多)
XML:如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它
4. 响应部分
Transformer :显示响应的编码信息
Headers :用分级视图显示响应的 header
TextView : 使用文本显示相应的 body
SyntaxView: javaScript 语法视图(相较text有高光)
ImageVies :如果请求是图片资源,显示响应的图片
HexView : 用十六进制数据显示响应
WebView :响应在 Web 浏览器中的预览效果
Auth:显示响应 header 中的 Proxy-Authorization 和 Authorization 信息
Caching : 显示此请求的缓存信息
Cookies:显示返回的cookie信息
Raw:原生的纯文本(用的较多)
JSON:返回的响应内容如果是一个json格式的,这里会显示
XML:如果相应的 body 是 XML 格式,就是用分级的 XML 树来显示它
5. AutoResponder-自动响应器
可用于拦截某一请求,进行如下操作:
- 重定向到本地的资源
- 使用Fiddler的内置响应
- 自定义响应
具体操作步骤
- 在AutoResponder面板下,点击,单击选择需要拦截的请求,复制请求的URL(请求右键 >> Copy >> Just Url);粘贴至右侧面板Rule Editor(或者左键按住,并拖动需要请求的url到右侧面板,此时url自动填充在Rule Editor处;或者直接去网页复制相应图片位置等)
设置响应的内容,可以选择Fiddler的内置响应或者是重定向至用户本地文件(或者点击规则,鼠标右键,选择Edit Response,进行自定义响应)
同时选中 Enable rules(使用规则)和 Unmatched requests passthrough(放行未匹配的请求)。
6. Composer-设计器
设计请求,修改请求参数,进行简单的接口测试。具体操作:鼠标左键拖动请求的url至右侧Composer面板处,请求信息会自动填充,修改请求参数,点击Execute。(接口测试,举例后端未作数据校验 )
Scratchpad多个请求,三击选中指定位置的请求。
7. Filters-过滤器
作用:忽略不想显示的请求,过滤出想要的请求,是一个多维度的过滤器。过滤器要起作用,必须选中Use Filters ,不用的时候记得关闭,防止出现抓不到包的情况。具体功能如下:
1. Hosts 主机过滤
1. 域过滤
- Show only Intranet Hosts:仅显示局域网的请求
- Show only Internet Hosts:仅显示广域网的请求
- No Zone Filter:无域限制(默认)
2. 主机过滤
- No Host Filter:无主机限制(默认)
- Hide the following Hosts:隐藏输入到下面文本框的主机(域名或者IP)的请求(可以选择请求,单击右键,Copy >> This Column 的方式复制请求的主机)
- Show only the following Hosts:仅显示输入到下面文本框的主机(域名或者IP)的请求
- Flag the following Hosts:含有下面文本框的主机(域名或者IP)的请求做标记(即加粗显示)
2. Client Process 客户端进程
- Show only traffic from:仅显示某一进程的请求
- Show only Internet Explorer traffic:仅显示IE浏览器发出的请求
- Hide traffic from Service Host:隐藏来自service host(即由svchost.exe进程)发出的请求
3. Request Headers 请求头
- Show only if URL contains:仅显示url中包含输入的字符串的请求
- Hide if URL contains:隐藏url中包含输入的字符串的请求
- Flag requests with headers:标记请求头中有指定内容的请求
- Delete request headers:删除请求头中的指定内容
- Set request header:设置请求头中添加指定的内容
4. Breakpoints 断点
- Break request on POST:在POST请求中设置断点(请求前设置断点)
- Break request on GET with query string:在带有请求参数的GET请求中设置断点(请求前设置断点)
- Break on XMLHTTpRequest:在ajax请求中设置断点(请求前设置断点)
- Break response on Content-type:在响应中含有指定Content-type的请求中设置断点(响应后设置断点)
5. Response Status Code 响应状态码
- Hide success(2xx):隐藏响应状态码为2XX的请求
- Hide non-2xx:隐藏响应状态码非2xx的请求
- Hide redirects(300, 301, 302, 303, 307):隐藏状态码为300、301、302、303、307的重定向请求
- Hide Authentication demands(401,407):隐藏状态码为401,407的响应(需要用户确认证书的请求)
- Hide Not Modified(304):隐藏状态码为304的响应
6. Response Type and Size 响应类型和大小
①.Show all Content-Types:显示任意响应类型的请求
②.Show only IMAGE/*:仅显示响应类型是图片的请求
③.Show only HTML:仅显示响应类型是html的请求
④.Show only TEXT/CSS:仅显示响应类型是text/css的请求
⑤.Show only SCRIPTS:仅显示响应类型是js脚本的请求
⑥.Show only XML:仅显示响应类型是xml的请求
⑦.Show only JSON:仅显示响应类型是json的请求
⑧.Hide IMAGE/*:隐藏响应类型是图片的请求
⑨.Hide smaller than KB:隐藏响应体小于指定字节数的响应
⑩.Hide larger than KB:隐藏响应体大于指定字节数的响应
⑪.Time HeatMap:根据响应时间给每个请求设置背景色。小于50ms绿色,50-300ms不着色,300-500ms黄色,大于500ms红色
⑫.Block scriptfiles:将响应类型为js脚本的请求,设置返回HTTP/404响应
⑬.Block image files:将响应类型为图片的请求,设置返回HTTP/404响应
⑭.Block SWF files:将响应类型为flash的请求,设置返回HTTP/404响应
⑮.Block CSS files:将响应类型为css的请求,设置返回HTTP/404响应
7. Response Headers 响应头
①.Flag responses that setcookies:将响应中设置了cookies的请求标记显示(斜体显示)
②.Flag responses with headers:将响应头中包含指定内容的请求标记显示(加粗显示)
③.Delete responseheaders:删除响应中指定的响应头
④.Set response header:将响应头中添加指定的内容