Fiddler界面详解
Fiddler界面详解
Statistics 页签
完整页签如下图:
Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数、发送字节数、接收字节数、响应类型的汇总表、世界各地通过不同请求方式所需的时间等。
Statistics 页签底部图表
Show Chart 可以将汇总结果显示为一个饼状图,按照响应类型,在饼图中显示不同的比例和不同的色块,见上图。
Copy this chart 可以将该饼图复制到剪贴板,粘贴到图形处理软件或者 WORD 中。
Collapse Chart 收起饼图展示。
Inspectors 页签
完整页签如下图:
Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。
Inspectors 页签分为上下两部分,上部显示的是发出的请求相关信息,下部显示的是接收的响应相关信息。
请求 (Request) 部分详解
- Headers —— 显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等
- Textview —— 显示 POST 请求的 body 部分为文本
- WebForms —— 显示请求的 GET 参数 和 POST body 内容,特别说明,这里 body 应该是 application/x-www-form-urlen-coded 格式
- HexView —— 用十六进制数据显示请求
- Auth —— 显示 header 中的 Proxy-Authorization 和 Authorization 信息
- Raw —— 将整个请求显示为纯文本
- XML —— 如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它
响应 (Response) 部分详解
- Transformer —— 显示响应的编码信息
顶部的黄色提示文字表示,此请求为了提高性能,而做了编码或者压缩(例如 GZIP),需要转换后才能在 TextView 里正常浏览。点击该区域或者下面的 Remove HTTP Chunked Encoding 按钮,都能执行转换或者解压缩。如果该请求没编码/压缩是看不见此提示的。
HTTP Compression 显示当前请求使用的编码方式
- No Compression —— 无压缩
- GZIP Encoding —— GZIP 压缩
- DEFLATE Encoding —— DEFLATE 压缩
- BZIP2 Encoding —— BZIP2 压缩
对未编码压缩的请求,可以选择不同的模式,看 Entity Size 里显示压缩后有多大。从而根据这个决定是否需要采用这样的压缩技术来提升网站的性能。
- Headers —— 用分级视图显示响应的 header
- TextView —— 使用文本显示相应的 body
- ImageVies —— 如果请求是图片资源,显示响应的图片。
左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放
- HexView —— 用十六进制数据显示响应
- WebView —— 响应在 Web 浏览器中的预览效果
- Auth —— 显示响应 header 中的 Proxy-Authorization 和 Authorization 信息
- Caching —— 显示此请求的缓存信息
- Privacy —— 显示此请求的私密 (P3P) 信息
- Raw —— 将整个响应显示为纯文本
- XML —— 如果响应的 body 是 XML 格式,就是用分级的 XML 树来显示它
AutoResponder 页签
完整页签如下图:
此功能启用后,可以将某一请求的响应结果替换成指定的资源,可以是本地文件,也可以是 Fiddler 内置的各种 HTTP 响应。主要用于临时拦截某一请求的响应,而无需修改服务器上的环境和代码,保证在最真实的环境中进行调试,也无需在 BUG 查找的时候就寻求相关部门的配合。
· 启用该功能,请将 Enable automatic responses 打勾。
· Permit passthrough for unmatched requests 表示允许未匹配到的请求正常响应。应该打勾才能让其他的请求继续;否则其他未匹配到的请求都会以 404 状态返回。
· 页签中间是一个列表,显示当前创建的匹配规则,左侧是匹配的条件,右侧是响应的结果。即:如果请求的地址包含左侧的字符串,那么就用右边设定的资源来替换来自服务器的响应。用 + 和 - 两个按键可以调整当前选择规则在列表中的位置。
· 页签底部是一个规则编辑器,可以进行编辑当前用户选择的匹配规则、保存编辑、删除此匹配规则等操作。
第一个 Combox 是匹配的条件,可以自行输入字符串,也可以选择 Fiddler 内置的三个正则(都是匹配图片的,没什么用)。Fiddler 支持几种匹配模式:
- String Literals —— 字符匹配
这种模式将匹配指定的字符串,不存在大小写敏感。范例:
*
通配符,匹配任何地址,如: 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 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(有多余字符串) - Regular Expressions —— 正则表达式
这种模式一 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 是正则表达式的语法,其中各字母的含义如下(详见:正则表达式选项):
- i —— 指定不区分大小写的匹配
- m —— 指定多行模式。更改 ^ 和 $ 的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字符串的开头和结尾匹配。
- n —— 指定唯一有效的捕获是显式命名或编号的 (?<name>…) 形式的组。这允许圆括号充当非捕获组,从而避免了由 (?:…) 导致的语法上的笨拙。
- s —— 指定单行模式。更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配。
- x —— 指定从模式中排除非转义空白并启用数字符号 (#) 后面的注释。(有关转义空白字符的列表,请参见字符转义。)请注意,空白永远不会从字符类中消除。
第二个 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 的列表中
Filters 页签
Fiddler 的过滤器功能相当的强大,见下图:
下面我们一一加以说明:
- HOST —— HOST 过滤规则
你可以在文本框中输入多个 HOST,多个之前用半角逗号或者回车分隔。
- - No Host Filter - —— 无 HOST 过滤
- Hide the following Hosts —— 隐藏如下 HOST
- Show only the following Hosts —— 只显示如下 HOST
- Flag the following Hosts —— 加粗显示如下 HOST
- Show only traffic from —— 你可以指定只捕获哪个 Windows 进程中的请求,右侧会列出当前所有的 Windows 进程
- Show only Internet Explorer traffic —— 只显示 IE 发出的请求
- Hide Windows RSS platform traffic —— 隐藏 Windows RSS 平台发出的请求
- Break request on HTTP POST —— 给所有 POST 请求设置断点
- Break request on HTTP GET with QueryString —— 给所有带参数的 GET 请求设置断点
- Break response on Content-Type —— 给特定的 Content-Type 设定断点
- Hide success(202,204,206) —— 隐藏响应成功的 session (202,204,206)
- Hide Authentication demands(401) —— 隐藏未经授权被拒绝的 session (401)
- Hide redirects(300,301,302,303,307) —— 隐藏重定向的 session (300,301,302,303,307)
- Hide Not Modified(304) —— 隐藏无变更的 session (304)
- 设定响应类型过滤规则
· Show all Content-Types —— 显示所有响应类型
· Show only IMAGE/* —— 只显示图片
· Show only HTML —— 只显示 HTML
· Show only TEXT/CSS —— 只显示 CSS
· Show only SCRIPTS —— 只显示脚本
· Hide IMAGE/* —— 隐藏所有图片
- Ignore smaller than ? KB —— 忽略小于指定大小的 session
- Ignore larger than ? KB —— 忽略大于指定大小的 session
- Block script files —— 阻止脚本文件,显示为 404
- Block image files —— 阻止图片文件
- Block SWF files —— 阻止 SWF 文件
- Block CSS files —— 阻止 CSS 文件
- Flag requests with header —— 标记带有特定 header 的请求
- Delete request header —— 删除请求 header
- Set request header —— 设置请求的 header
- Flag responses that set cookies —— 标记会设置 cookie 的响应
- Flag responses with header —— 标记带有特定 header 的响应
- Delete responses header —— 删除响应 header
- Set responses header —— 设置响应的 header
- Keep only the most recent ? sessions. —— 只保留最新的指定数量的 session
Timeline 页签
完整页签如下图:
此列表显示在 Web Sessions 面板中选择的 session 请求到响应的时间表。横向是时间轴,以秒为单位;纵向是选择的 session 列表。
鼠标移到 Timeline 页签的某一 session 上,在 Timeline 页签底部会显示四个数据:
· Session 编号和 URL
· Session 的响应类型
· 发送的字节数
· 接收的字节数
QuickExec 命令行
QuickExec 命令行如下图:
QuickExec 命令行允许你快速执行脚本命令,在 Fiddler 中使用快捷键 Alt + Q 可以快速将焦点设置到命令行。
如果当前在 Web Sessions 面板选择了一个 Session,可以使用快捷键 Ctrl + I 快速将 Session URL 直接插入到命令行当前光标处。
默认命令参考
以下列表中的命令只能确保在最新版本的 Fiddler 中才生效。
多数命令是存在本地 CustomRules.js 文件中,如果不是最新版 Fiddler,可能没有最新的命令。如果要得到最新的命令,要么删除你的 CustomRules.js,要么复制 SampleRules.js 的 ExecAction 到 CustomRules.js 中。
- ?sometext
Fiddler 会高亮所有 URL 匹配问号后的字符的全部 session。按回车聚焦到匹配的 session 上。
范例:
?searchtext
- >size
选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。
范例:
>40000 (选择响应大于 40kb 的请求)
- <size
选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上。
范例:
<5k (选择响应小于 5kb 的请求)
- =status
选择响应 HTTP 状态等于指定值的全部 session。按回车聚焦到匹配的 session 上。
范例:
=301 (选择 301 重定向的请求)
- @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
-
Fiddler2 状态栏
完整状态栏如下图:
此列表显示所有 HTTP 请求的相关信息,从左到右各列分别代表:
- 第一区块,显示的 Fiddler 是否处于捕捉状态,(开启状态)、(关闭状态),可以用快捷键 F12 切换或者点击该区域。
- 第二区块,显示当前捕捉哪些进程的通讯。前提是被捕获的进程必须使用 HTTP 代理:127.0.0.1:8888
- All Processes —— 捕获所有进程的请求
- Web Browsers —— 捕获 Web 浏览器的请求,应该特指 IE
- Non-Browser —— 捕获非 Web 浏览器的请求
- Hide All —— 隐藏所有请求
- 第三区块,显示当前断点设置状态,通过鼠标点击切换。可以有三种:
- —— 不设置断点
- —— 所有请求在断点处被暂停
- —— 所有响应在断点处被暂停
- 第四区块,显示当前共捕获了多少 session(如:300,表示共捕获了 300 个)。
如果选择了 session,会显示共选择了多少 session 及 session 总数(如:10/300,表示当前选择 10 个 session,共 300 个 session)。
- 第五区块,描述当前状态。
如果是刚打开 Fiddler,会显示什么时间加载了 CustomRules.js;如果选择了一个 Session,会显示该 Session 的 URL;如果在 QuickExec 命令行输入一个命令,就会显示命令相关信息。
Fiddler2 选项
Fiddler2 选项对话框,共有五个选项卡:
- General —— 常规
此选项卡显示 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 + 任意键的组合
- HTTPS —— HTTPS 设置
此选项卡显示 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)
-
- Extensions —— 扩展
此选项卡显示 Fiddler 的扩展设置:
-
- Automatically reload script when changed —— 脚本发生变化时自动重载
- Editor —— 脚本的编辑器
- References —— 扩展所连接到的 dll 文件
- Extensions —— 已经安装的扩展列表
- Find more extensions... —— Fiddler 在线扩展列表页
-
- Connections —— 连接
任何一款可以设置 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 —— 监听所有连接
- 连接列表
-
- Appearance —— 外观
此选项卡显示 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 工具栏
-
-