Fiddler 从入门到深入
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fiddler 从入门到深入相关的知识,希望对你有一定的参考价值。
参考技术A 记不清什么时候自己搜了一个工具,它就是Fiddler,自从使用了Fiddler之后,我越来越喜欢它了。现在基本上不再使用其它的抓包工具了。因为我发现,Fiddler实在是太强大了,它几乎囊括了大部分的抓包请求,当然最给力的还是它 的断点调试功能,
尤其还有使用本地文件代替服务器文件这个实用的功能,这样程序员就不要每次出问题修改服务器文件了,因为服务器文件一般不会让人轻易修改
,再者也许程序员没有权限修改,这个功能超赞!
之后,我上了Fiddler的官网之后,找到了它上面的几个Demo的小教程,更加确定我的想法了。以后就是它了,Fiddler!
Demo地址为: http://www.fiddler2.com/Fiddler/help/video/default.asp
国内的程序员是不少,但是国内的程序员最大的悲剧不是知识面不够,更不是不聪明。我感觉国内的程序员最大的悲剧就是英语不好。
哎,谁让计算机是外国人发明的呢,没办法,那我们只好学好英语了。
鉴于Fiddler这个好工具太强大了,我有个想法,想把它推荐给我们国内的程序员们,所以我决定有时间就翻译一下Fiddler的使用教程,
首先声明:我翻译的水平肯定跟我的技术知识和能力有关,希望大家能够理解,这个教程主要是我翻译的,不是我自己写的。
今天让我们开始吧。
原文地址: http://www.fiddler2.com/Fiddler/help/ui.asp
Fiddler用户界面:
下面这个界面截取的是我自己的Fiddler。
Web 会话列表。
就是指上面左侧的内容部分。
Web会话列表包括了所有的从你的电脑发出的HTTP请求。为了自己的使用方便,你可以自己调整会话列表的内容,你也可以单击列表的顶部来对会话列表来排序。
会话列表顶部包含的信息有以下内容:
# - 为了使用方便,Fiddler 为你生成的会话列表的ID
Result - HTTP响应的状态码 Learn more...
Protocol - 本次会话使用的协议类型(HTTP/HTTPS/FTP)
Host - 发送本次请求的主机名
URL - 本次请求的路径和具体文件名
Body - 响应返回内容的大小
Caching - 是否使用了缓存
Process - 发送本次请求的程序进程的名字
Content-Type - 响应的响应头的 Content-Type 值
Custom - 通过脚本设置的文本域. Learn more...
Comments - 通过脚本或者在会话列表中右键添加的注释。
在Fiddler v2.2.0.5 及其以上的版本,你可以添加自己的新列。
在会话列表中默认的文本的颜色从HTTP的响应的状态继承而来(红色代表错误,黄色代表需要授权)CONNECT类型为灰色,
还有返回类型(CSS文件为紫色,html文件为蓝色,JS脚本为绿色,图片为灰色)你可以通过使用 ui-color 标志位来改变和重写列表的默认颜色。
(提示: ui-color在Fiddler的脚本配置文件中,需要安装FiddlerScript )
为了查看的方便每一个请求的前面都有一个图标来表示。
上面的图标后面的英文的意思依次为:
1.请求正在被发往服务器
2.正在从服务器接收请求内容
3.请求被一个断点停住了。
4.响应被一个断点停住了。
5.请求使用HEAD方法,响应应该没有响应体。
6.请求使用POST方法
7.请求使用了HTTPS
8.返回内容为HTML页面
9.返回内容为JS脚本
10.返回内容为CSS
11.返回内容为XML文件
12.返回内容为JSON文件
13.返回内容为音频文件
14.返回内容为视频文件
15.返回内容为Silverlight
16.返回内容为Flash
17.返回内容为字体文件
18.一般成功的响应
19.响应被重定向了,通过HTTP/300,301,302,303 or 307
20.HTTP 304 请求
21.返回一个需要客户端证书验证的请求
22.服务器端错误
23.会话被客户端、Fiddler、服务器意外终止。
和会话列表的交互
在一个或者多个会话上面单击右键会出现下面的菜单
小提示:你可以通过在FiddlerScript中使用 ContextAction 标志为这个菜单添加菜单项。
在“复制”菜单上面有以下内容:
Session - 以纯文本和HTML语法加亮形式复制原始的请求内容到剪贴板。
Just URL - 仅仅复制主机名和URL地址
Headers Only - 以纯文本和HTML语法加亮形式复制请求头和响应头到剪贴板。
Full Summary - 为了粘贴到Excel中方便,以纯文本和HTML语法加亮形式把请求的各个列的信息复制到剪贴板。
Terse Summary - 复制请求地址和响应状态到剪贴板。
在“保存”菜单上面有以下内容:
Session > In ArchiveZIP - 把相关的请求内容打包为一个 .SAZ 文件.
Session - 把请求和响应的所有内容存为一个文本文件
Headers Only - 把请求头和响应头存为一个文本文件
Full Request - 把请求的所有内容存为一个文本文件
Request Body - 把请求体存为一个文本文件,通常是POST的数据包。
Full Response - 把响应的所有内容存为一个文本文件
Response Body - 把响应体存为一个文件,通常是HTML文件或者图片。
AutoResponder 快速引用
今天我们来看一下Fiddler的AutoResponder选项卡的强大功能。
Fiddler的AutoResponder 选项卡允许你使用本地硬盘的文件来作为返回内容,而不是把请求发往服务器。
创建AutoResponder 规则。
使用AutoResponder选项卡,你可以创建一个匹配规则和一个响应字符串,如果请求的URL地址跟你的匹配规则相匹配,
Fiddler就会自动执行这个对应的响应字符串。
小提示:
匹配规则会按照它在规则列表中出现的顺序进行匹配, 按 + 键可以使一个匹配规则向上移一项,按 - 键可以使一个匹配规则向下移一项。
使用右键菜单, 你可以导出一个包含了所有的匹配规则和对应响应字符串的后缀为 .FARX 的文件。
你也可以通过 导入 .SAZ or .FARX 文件来创建基于以前创建的规则列表和响应列表.
你可以从会话列表中拖动一个会话到AutoResponder选项卡中来重新演示以前的响应. 你也可以选中一条规则,然后回车这样就可以来编辑一条规则。
你也可以直接从Windows的资源管理器中拖动一个文件到 AutoResponder选项卡中来为这些文件创建规则和响应。
匹配规则:
纯粹字符串
Fiddler将会按照不区分字母大小写来匹配字符串。
Demo如下:
RuleMatches
*http://www.example.com/Path1/query=example
EXAMPLEhttp://www.example.com/Path1/query=example
path1/http://www.example.com/Path1/query=example
query http://www.example.com/Path1/q=Query
跟上面的类似,Fiddler还有一个非字符串匹配的规则: NOT:
Demo如下:下面的都匹配。
RuleMatches
NOT:EXAMPLEhttp://www.test.com/Path1/query=test
NOT:path1/http://www.example.com/Path2/query=example
NOT:queryhttp://www.example.com/Path1/q
Exact匹配:
表达式以EXACT:为前缀,此匹配区分字母大小写
Demo如下:
RuleMatches
EXACT:http://www.example.com/pathhttp://www.example.com/path
EXACT:http://www.example.com/pathhttp://www.example.com/Path(不匹配- 大小写不一样)
EXACT:http://www.example.com/pathhttp://www.example.com/path/q=Query(不匹配- 子字符串不一样)
正则表达式:
Fiddler支持以regex:为前缀的正则表达式语法,使用.+匹配一个或多个字符,使用.*匹配0个或多个字符,使用^匹配字符串开始位置,使用$匹配字符串结尾位置。
Demo如下:
RuleMatches
regex:.+http://www.example.com/Path1/query=example
regex:.+\.jpg.*http://www.example.com/Path1/query=foo.jpg&bar
http://www.example.com/Path1/query=example.jpg
regex:.+\.jpg$http://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending)
http://www.example.com/Path1/query=example.jpg
regex:.+\.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending)
http://www.example.com/Path1/query=example.gif
http://www.example.com/Path1/query=example.Gif(No Match - mismatched case)
http://www.example.com/Path1/query=example.bmp
regex:(?insx).+\.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending)
http://www.example.com/Path1/query=example.gif
http://www.example.com/Path1/query=example.Gif
http://www.example.com/Path1/query=example.bmp
想要学习更多正则表达式的请看这里 here .
响应字符串
除了简单的返回文件,AutoResponder选项卡还有更多的用处........
Beyond simply returning files, the AutoResponder can also perform special actions...
Action StringResult...
filename 返回文件内容作为消息响应
http://targetURL 返回此URL的内容作为消息响应
*redir: http://targetURL 返回一个跳转URL,注意,不是一般的URL,一定要确保此URL知道要到哪里去,以便携带上相关的Cookie信息。
*bpu设置一个断点在发往服务器以前停住此请求 Non-final action.
*bpafter设置一个断点在接收响应之前停住此请求 Non-final action.
*delay: #### 设置在发给服务器之前的延时,以毫秒为单位。 Non-final action.
*header: Name = Value 设置请求头的内容,如果没有那个请求头,则新建一个请求头 Name 并设置为 Value Non-final action.
*flag: Name = Value 设置 Session Flag 的内容,如果没有那个 Session Flag ,则新建一个 Session Flag Name 并设置为 Value Non-final action.
*CORSPreflightAllow返回一个响应标志 CORS 是否被允许。.
*reset使用一个TCP/IP RST 重新设置客户端的链接。
*drop马上关闭客户端链接。
*exit这时候停止处理匹配。
如果你的匹配规则使用了正则表达式,那么响应也可以使用正则表达式,更多信息请看这里: Learn more...
标志为 Non-final action. 的请求会匹配多个响应规则,如果一个规则是final action ,那么再找到匹配之后,匹配过程就会结束,对于那条请求来说就不会再匹配其它的规则。
延迟响应
在一个请求返回来之前你可以设置一下请求延迟返回的时间。选中 Enable Latency 复选框,可以设置所有的规则的延迟。
右键单击一个或者多个规则,然后选择 Set Latency 就可以设置具体的延迟时间。如果你想调整现存的延迟时间,只需要输入一个带有+或者-号的数字即可。
如果你想在现在的延迟时间基础上面减少500毫秒,那么在弹出的输入框中输入-500即可。
好了,今天就到这里吧,O(∩_∩)O~
下面附上原文地址:
http://www.fiddler2.com/Fiddler2/help/AutoResponder.asp
Fiddler抓包工具使用图文详解,从小白到精通十分钟入门抓包
1.Fiddler 右侧面板
左边面板都看完之后,接下来再看下右侧面板 Get Started 欢迎页签、Statistics 统计页签、inspectors 检查页签、AutoResponse 自动响应页签、composer 构建页签、log 日志页签、Filters 过滤页签、Timeline 请求响应时间、Fiddler Script Fiddler 脚本。
2.Get Started 欢迎页签
左侧 START 快速开始检查数据包、构建请求;右侧 LEARN 有 Fiddler 官方文档、推荐博客、学习 Video;右侧 TOP ARTICLES 显示当前热门文章。
3.Statistics 统计页签
统计 HTTP 请求的性能信息,比如请求数、发送请求的字节数、接收到的字节数、客户端连接的时间、全部花掉的时间等。并且一次可选择多条请求数据合并统计,还可以点击 Show Chart 按钮显示统计图形。
单条请求:
多条请求:
统计图表:
4.inspectors 检查页签
Inspectors 查看会话相信信息,上半部分是请求的内容,下半部分是响应的内容。还提供了 Headers、TextView、WebFroms、Raw 等多种查看方式。
5.AutoResponse 自动响应页签
配置 AutoResponder 规则拦截满足规则的求情,并返回本地资源或 Fiddler 资源,取代代替服务器响应。例如:当请求 URL 中出现 baidu 这个关键字,响应替换成电脑本地某张图片。具体步骤:a. 点击 Add Rule 按钮b. Rule Editor 第一行输入关键字 baidu,第二行输入本地某张图片c. 点击 Save 按钮d. 勾上 Enable rules
配置完后再访问含有 baidu 的 URL,在 Fiddler 响应中能看到本地图片。
6.Composer 构建页签
Composer 允许用户自定义请求,可以手动创建一个新请求,也可以在会话表中拖拽现有的请求,Parsed 模式中可以选择请求方式、URL、协议版本、Request Body 等。
7.Filters 过滤页签
Fiddler 会自动抓取浏览器所有会话,用户可使用 Filter 过滤无用请求。
具体步骤:
a. Filters页签中勾选Use Filters开启过滤器
b. 选择Hosts下两个过滤条件:Zone和Host
c. Zone只显示内网(Intranet)或互联网(Internet)请求
a) Show only Intranet Hosts -- 只显示内部的Hosts。
b) Show only Internet Hosts -- 只显示外网的Hosts。
d. Host指定某个域名下的会话
a) Hide the following Hosts -- 隐藏指定Hosts。
b) Show only the following Hosts -- 仅显示指定Hosts。
c) Flag the following Hosts -- 加粗显示指定Hosts。
8.Timeline 时间轴选项卡
Timeline 直观的显示页面各个元素的加载时间和顺序。
9.log 日志页签
打印 Fiddler 日志。
10.Fiddler Script
打开 Fiddler 脚本编辑。
11.Fiddler 命令行
Fiddler 提供了许多内置函数,可在命令框运行,这个命令行隐藏得很好,如果不仔细看还真不好找,命令框在左侧面板下方。
Fiddler 常用命令:
除了常用命令之外,还提供了断点功能,断点便是中断请求或者响应,比如在请求时加上断点,修改数据包再发送给服务器。
Fiddler 断点命令:
12.福利
福利大放送,从入门到实战,从电子书到面试真题,你需要的软件测试资料,我这里都免费赠送,需要的可以点击下面链接免费领取哟
以上是关于Fiddler 从入门到深入的主要内容,如果未能解决你的问题,请参考以下文章
Fiddler抓包工具使用图文详解,从小白到精通十分钟入门抓包