完整页签如下图:
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 的请求)
选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。
范例:
<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
Fiddler2 选项对话框,共有五个选项卡:
此选项卡显示 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 + 任意键的组合
此选项卡显示 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)
此选项卡显示 Fiddler 的扩展设置:
Automatically reload script when changed —— 脚本发生变化时自动重载
Editor —— 脚本的编辑器
References —— 扩展所连接到的 dll 文件
Extensions —— 已经安装的扩展列表
Find more extensions... —— Fiddler 在线扩展列表页
任何一款可以设置 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 —— 监听所有连接
连接列表
此选项卡显示 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想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。
Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:
名称 |
含义 |
# |
抓取HTTP Request的顺序,从1开始,以此递增 |
Result |
HTTP状态码 |
Protocol |
请求使用的协议,如HTTP/HTTPS/FTP等 |
Host |
请求地址的主机名 |
URL |
请求资源的位置 |
Body |
该请求的大小 |
Caching |
请求的缓存过期时间或者缓存控制值 |
Content-Type |
请求响应的类型 |
Process |
发送此请求的进程:进程ID |
Comments |
允许用户为此回话添加备注 |
Custom |
允许用户设置自定义值 |
图标 |
含义 |
|
请求已经发往服务器 |
|
已从服务器下载响应结果 |
|
请求从断点处暂停 |
|
响应从断点处暂停 |
|
请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body) |
|
请求使用 HTTP 的 POST 方法 |
|
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道 |
|
响应是 HTML 格式 |
|
响应是一张图片 |
|
响应是脚本格式 |
|
响应是 CSS 格式 |
|
响应是 XML 格式 |
|
响应是 JSON 格式 |
|
响应是一个音频文件 |
|
响应是一个视频文件 |
|
响应是一个 SilverLight |
|
响应是一个 FLASH |
|
响应是一个字体 |
|
普通响应成功 |
|
响应是 HTTP/300、301、302、303 或 307 重定向 |
|
响应是 HTTP/304(无变更):使用缓存文件 |
|
响应需要客户端证书验证 |
|
服务端错误 |
|
会话被客户端、Fiddler 或者服务端终止 |