随时随地阅读更多技术实战干货,充分利用闲暇时间,请关注源代码社区公众号和技术交流群。
完整页签如下图:
Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数、发送字节数、接收字节数、响应类型的汇总表、世界各地通过不同请求方式所需的时间等。
Statistics 页签底部图表
Show Chart 可以将汇总结果显示为一个饼状图,按照响应类型,在饼图中显示不同的比例和不同的色块,见上图。
Copy this chart 可以将该饼图复制到剪贴板,粘贴到图形处理软件或者 WORD 中。
Collapse Chart 收起饼图展示。
完整页签如下图:
Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。
Inspectors 页签分为上下两部分,上部显示的是发出的请求相关信息,下部显示的是接收的响应相关信息。
请求 (Request) 部分详解
响应 (Response) 部分详解
顶部的黄色提示文字表示,此请求为了提高性能,而做了编码或者压缩(例如 GZIP),需要转换后才能在 TextView 里正常浏览。点击该区域或者下面的 Remove HTTP Chunked Encoding 按钮,都能执行转换或者解压缩。如果该请求没编码/压缩是看不见此提示的。
HTTP Compression 显示当前请求使用的编码方式
对未编码压缩的请求,可以选择不同的模式,看 Entity Size 里显示压缩后有多大。从而根据这个决定是否需要采用这样的压缩技术来提升网站的性能。
左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放
完整页签如下图:
此功能启用后,可以将某一请求的响应结果替换成指定的资源,可以是本地文件,也可以是 Fiddler 内置的各种 HTTP 响应。主要用于临时拦截某一请求的响应,而无需修改服务器上的环境和代码,保证在最真实的环境中进行调试,也无需在 BUG 查找的时候就寻求相关部门的配合。
· 启用该功能,请将 Enable automatic responses 打勾。
· Permit passthrough for unmatched requests 表示允许未匹配到的请求正常响应。应该打勾才能让其他的请求继续;否则其他未匹配到的请求都会以 404 状态返回。
· 页签中间是一个列表,显示当前创建的匹配规则,左侧是匹配的条件,右侧是响应的结果。即:如果请求的地址包含左侧的字符串,那么就用右边设定的资源来替换来自服务器的响应。用 + 和 - 两个按键可以调整当前选择规则在列表中的位置。
· 页签底部是一个规则编辑器,可以进行编辑当前用户选择的匹配规则、保存编辑、删除此匹配规则等操作。
第一个 Combox 是匹配的条件,可以自行输入字符串,也可以选择 Fiddler 内置的三个正则(都是匹配图片的,没什么用)。Fiddler 支持几种匹配模式:
这种模式将匹配指定的字符串,不存在大小写敏感。范例:
*
通配符,匹配任何地址,如: 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
这种模式一 EXACT: 开头,将严格匹配字符串,包括大小写。范例:
EXACT:http://www.example.com/path
匹配 http://www.example.com/path
不匹配 http://www.example.com/Path(大小写不符)
不匹配 http://www.example.com/path/q=Query(有多余字符串)
这种模式一 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 是正则表达式的语法,其中各字母的含义如下(详见:正则表达式选项):
第二个 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 的列表中
Fiddler 的过滤器功能相当的强大,见下图:
下面我们一一加以说明:
你可以在文本框中输入多个 HOST,多个之前用半角逗号或者回车分隔。
· Show all Content-Types —— 显示所有响应类型
· Show only IMAGE/* —— 只显示图片
· Show only HTML —— 只显示 HTML
· Show only TEXT/CSS —— 只显示 CSS
· Show only SCRIPTS —— 只显示脚本
· Hide IMAGE/* —— 隐藏所有图片
完整页签如下图:
此列表显示在 Web Sessions 面板中选择的 session 请求到响应的时间表。横向是时间轴,以秒为单位;纵向是选择的 session 列表。
鼠标移到 Timeline 页签的某一 session 上,在 Timeline 页签底部会显示四个数据:
· Session 编号和 URL
· Session 的响应类型
· 发送的字节数
· 接收的字节数
QuickExec 命令行如下图:
QuickExec 命令行允许你快速执行脚本命令,在 Fiddler 中使用快捷键 Alt + Q 可以快速将焦点设置到命令行。
如果当前在 Web Sessions 面板选择了一个 Session,可以使用快捷键 Ctrl + I 快速将 Session URL 直接插入到命令行当前光标处。
默认命令参考
以下列表中的命令只能确保在最新版本的 Fiddler 中才生效。
多数命令是存在本地 CustomRules.js 文件中,如果不是最新版 Fiddler,可能没有最新的命令。如果要得到最新的命令,要么删除你的 CustomRules.js,要么复制 SampleRules.js 的 ExecAction 到 CustomRules.js 中。
Fiddler 会高亮所有 URL 匹配问号后的字符的全部 session。按回车聚焦到匹配的 session 上。
范例:
?searchtext
选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。
范例:
>40000 (选择响应大于 40kb 的请求)
范例:
<5k (选择响应小于 5kb 的请求)
选择响应 HTTP 状态等于指定值的全部 session。按回车聚焦到匹配的 session 上。
范例:
=301 (选择 301 重定向的请求)
选择包含指定 HOST 的全部 session。按回车聚焦到匹配的 session 上。
范例:
@msn.com (选择 www.msn.com、login.msn.com 等 session)
加粗显示 URL 包含指定字符的全部 session。
范例:
bold test.php (加粗显示 URL 中包含 test.php 的 Session
bold (不带参数表示清空所有加粗显示的 Session)
中断 URL 包含指定字符的全部 session 响应。
范例:
bpafter test.php (中断 URL 中包含 test.php 的 Session
bpafter (不带参数表示清空所有设置断点的 Session)
中断 HTTP 响应状态为指定字符的全部 session 响应。
范例:
bps 404 (中断所有响应 404 的 Session
bps (不带参数表示清空所有设置断点的 Session)
中断指定请求方式的全部 session 响应。
范例:
bpv POST (中断所有 POST 请求的 Session
bpv (不带参数表示清空所有设置断点的 Session)
中断请求 URL 中包含指定字符的全部 session 响应。
范例:
bpu test.php (中断所有请求 URL 中包含指定字符的 Session
bpu (不带参数表示清空所有设置断点的 Session)
清除所有 session
范例:
cls
将所有 session 打包到 C 盘根目录下的一个 zip 压缩包中
范例:
dump
继续所有中断的 Session
范例:
g
用 IE 打开 QuickExec 在线帮助页
范例:
help
将 Fiddler 隐藏到任务栏图标中
范例:
hide
将 URL 中的字符串替换成特定的字符串
范例:
urlreplace SeekStr ReplaceWithStr
urlreplace (不带参数表示清空所有之前的设置)
将 Fiddler 为系统代理
范例:
start
将 Fiddler 从系统代理注销
范例:
stop
将 Fiddler 从任务栏图标恢复为图形界面,此命令在命令行工具 ExecAction.exe 中使用
范例:
show
选择响应类型 (Content-Type) 为指定字符的所有 session
范例:
slect image
slect css
select htm
选择响应类型 (Content-Type) 不是指定字符的所有 session
范例:
allbut xml
allbut java
退出 Fiddler
范例:
quit
完整状态栏如下图:
此列表显示所有 HTTP 请求的相关信息,从左到右各列分别代表:
如果选择了 session,会显示共选择了多少 session 及 session 总数(如:10/300,表示当前选择 10 个 session,共 300 个 session)。
如果是刚打开 Fiddler,会显示什么时间加载了 CustomRules.js;如果选择了一个 Session,会显示该 Session 的 URL;如果在 QuickExec 命令行输入一个命令,就会显示命令相关信息。
Fiddler2 选项对话框,共有五个选项卡:
此选项卡显示 Fiddler 的常规设置:
此选项卡显示 Fiddler 的 HTTPS 设置:
此选项卡显示 Fiddler 的扩展设置:
任何一款可以设置 HTTP 代理的软件都可以使用 Fiddler。请先确保主菜单 File -> Capture Traffic 功能开启了。此选项卡显示 Fiddler 的连接设置:
此选项卡显示 Fiddler 的外观设置: