参考连接:http://blog.csdn.net/ohmygirl/article/details/17849983/php
http://www.cnblogs.com/kingwolf_JavaScript/archive/2012/11/07/Fiddler_config_cols.htmlcss
主要分为6大部分:html
菜单栏,工具栏,会话列别,QuickExec命令行的使用,HttpRequest显示栏 HttpResponse显示栏web
四、查看HTTP统计视图:正则表达式
一般fiddler会话列表中会显示捕获的全部的http通讯量,并以列表的形式展现出来,点击你想查看的一个或者多个会话,再点击软件右边的【Statustics】菜单,你就能够很轻松的查看到请求数、发送字节数等信息。若是你选择第一个请求和最后一个请求,还能够得到页面加载所消耗的整体时间,还能够从图表中分辩出那些请求耗时最多,从而能够对页面的访问速度进行优化。express
五、QuickExec命令行的使用:浏览器
QuickExec命令行是会话列表下边的黑色区域,你能够在里面输入命令,回车以后便可执行你的命令,很是方便,在这里为你们介绍几个经常使用的命令:缓存
help 打开官方的使用页面介绍,全部的命令都会列出来安全
cls 清屏 (Ctrl+x 也能够清屏)服务器
select 选择会话的命令
?.png 用来选择png后缀的图片
bpu 截获request
六、如何在fiddler中设置断点修改Response:
主要有两种方法:
一、点击【设置】菜单—【自动断点】—【响应以后】,这种方法是中断全部的会话,若是你想消除断点的话,就点击【设置】—【自动断点】—【禁用】就能够了。
二、在QuickExec命令行中输入:"bpuafter 网址/会话名",这种方法是中断某一具体的会话,若是想消除命令的话,在命令行中输入"bpuafter"。
七、如何在fiddler中建立AUTOResponder规则:
设置AUTOResponder规则的好处是容许你从本地返回文件,而不用将http request发送到服务器上。咱们就以访问博客园网站为例说明一下该功能的用法。
1) 打开博客园首页,把博客园的LOGO图片保存在本地,并把图片修改一下。
2) 打开fiddler找到刚才咱们有该LOGO图片的会话,而后点击软件右边的自动响应选项卡,在"Enable authomatic reponses"和"permit passthrought unmatched requests"前面都打上勾,将会话拖到"自动响应"列表框中。
3) 在右下角的Rule Editor的第二个文本框选择"Find a File……",而后选择本地保存的图片,点击"SAVE"按钮保存就能够了。
Fiddler抓取HTTP请求。
抓包是Fiddler的最基本的应用,以本博客为例,启动Fiddler以后,在浏览器中输入http://blog.csdn.net/ohmygirl 键入回车以后,在Fiddler的web session界面捕获到的HTTP请求以下图所示:
上面的图标后面的英文的意思依次为:
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标志为这个菜单添加菜单项。
在“复制”菜单上面有如下内容:
在“保存”菜单上面有如下内容:
AutoResponder 快速引用
今天咱们来看一下Fiddler的AutoResponder选项卡的强大功能。
Fiddler的AutoResponder 选项卡容许你使用本地硬盘的文件来做为返回内容,而不是把请求发往服务器。
建立AutoResponder 规则。
使用AutoResponder选项卡,你能够建立一个匹配规则和一个响应字符串,若是请求的URL地址跟你的匹配规则相匹配,
Fiddler就会自动执行这个对应的响应字符串。
小提示:
匹配规则:
纯粹字符串
Fiddler将会按照不区分字母大小写来匹配字符串。
Demo以下:
Rule | Matches |
---|---|
* | 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 |
跟上面的相似,Fiddler还有一个非字符串匹配的规则:NOT:
Demo以下:下面的都匹配。
Rule | Matches |
---|---|
NOT:EXAMPLE | http://www.test.com/Path1/query=test |
NOT:path1/ | http://www.example.com/Path2/query=example |
NOT:query | http://www.example.com/Path1/q |
Exact匹配:
表达式以EXACT:为前缀,此匹配区分字母大小写
Demo以下:
Rule | Matches |
---|---|
EXACT:http://www.example.com/path | http://www.example.com/path |
EXACT:http://www.example.com/path | http://www.example.com/Path (不匹配- 大小写不同) |
EXACT:http://www.example.com/path | http://www.example.com/path/q=Query (不匹配- 子字符串不同) |
正则表达式:
Fiddler支持以regex:为前缀的正则表达式语法,使用.+匹配一个或多个字符,使用.*匹配0个或多个字符,使用^匹配字符串开始位置,使用$匹配字符串结尾位置。
Demo以下:
Rule | Matches |
---|---|
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 String | Result... |
---|---|
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并设置为ValueNon-final action. |
*flag:Name=Value | 设置Session Flag的内容,若是没有那个Session Flag,则新建一个Session FlagName并设置为ValueNon-final action. |
*CORSPreflightAllow | 返回一个响应标志 CORS 是否被容许。. |
*reset | 使用一个TCP/IP RST 从新设置客户端的连接。 |
*drop | 立刻关闭客户端连接。 |
*exit | 这时候中止处理匹配。 |
若是你的匹配规则使用了正则表达式,那么响应也可使用正则表达式,更多信息请看这里: Learn more...
标志为Non-final action.的请求会匹配多个响应规则,若是一个规则是final action ,那么再找到匹配以后,匹配过程就会结束,对于那条请求来讲就不会再匹配其它的规则。
延迟响应
在一个请求返回来以前你能够设置一下请求延迟返回的时间。选中Enable Latency 复选框,能够设置全部的规则的延迟。
右键单击一个或者多个规则,而后选择 Set Latency 就能够设置具体的延迟时间。若是你想调整现存的延迟时间,只须要输入一个带有+或者-号的数字便可。
若是你想在如今的延迟时间基础上面减小500毫秒,那么在弹出的输入框中输入-500便可。
各字段的详细说明已经解释过,这里再也不说明。须要注意的是#号列中的图标,每种图标表明不一样的相应类型,具体的类型包括:
另外,注意请求的host字段。能够看到有来自多个www.csdn.net的子域名的响应,说明在大型网站的架构中,大多须要多个子域名,这些子域名多是单独用于缓存静态资源的,也多是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)。
右键单击其中的一条请求。能够选择的操做有:save(保存请求的报文信息,能够是请求报文,能够是响应报文)。例如,咱们保存的一条请求头信息以下:
不只是单条session,Fiddler还支持保存全部抓取到的session(并支持导入),这对于抓取可疑请求而后保存,并在以后随时分析这些请求是颇有帮助的。
若是想要从新发送某些请求,能够选中这些请求,而后点击工具栏中的reply.就能够从新发送选中的这些请求。
左键点击单条HTTP请求,能够在右侧的tab面板中看到以下信息:
关于HTTP请求的性能和其余数据分析:
咱们能够从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,创建TCP/IP链接的时间消耗是8ms等等信息。
分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不一样格式查看每一个请求和响应的内容。JPG 格式使用 ImageView 就能够看到图片,HTML/JS/CSS 使用 TextView 能够看到响应的内容。Raw标签能够查看原始的符合HTTP标准的请求和响应头。Auth则能够查看受权Proxy-Authorization 和 Authorization的相关信息。Cookies标签能够看到请求的cookie和响应的set-cookie头信息。
Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,由于拦截和重定向后,实际上访问的是本地的文件或者获得的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后(本例中的规则是将http://blog.csdn.net/ohmygirl的请求拦截到本地的文件layout.html),以下图所示
而后在浏览器中访问http://blog.csdn.net/ohmygirl,获得的结果实际为:
这恰好是本地layout.html的内容,说明请求已经成功被拦截到本地.固然也可使用Fiddler的内置响应。下图是Fiddler支持的拦截重定向的方式:
所以,若是要调试服务器的某个脚本文件,能够将该脚本拦截到本地,在本地修改完脚本以后,再修改服务器端的内容,这能够保证,尽可能在真实的环境下去调试,从而最大限度的减小bug发生的可能性。
不只是单个url,Fiddler支持多种url匹配的方式:
I. 字符匹配
如 example能够匹配 http://www.example.com和http://example.com.cn
II. 彻底匹配
以EXACT开头表示彻底匹配,如上边的例子
EXACT:http://blog.csdn.net/ohmygirl
III. 正则表达式匹配
以regex: 开头,使用正则表达式来匹配URL
如:regex:(?insx).*\.(css|js|php)$ 表示匹配全部以css,js,php结尾的请求url
老版本的fiddler中叫request-builder.顾名思义,能够构建相应的请求,有两种经常使用的方式构建请求:
(1)Parsed 输入请求的url以后executed便可,也能够修改相应的头信息(如添加经常使用的accept, host, referrer, cookie,cache-control等头部)后execute.
这个功能的常见应用是:“刷票”(不是火车票!!),如刷新页面的访问量(基于道德和安全缘由,若是你真去刷票,刷访问量,本博客概不负责)
(2)Raw。使用HTTP头部信息构建http请求。与上相似。很少叙述
Fiddler另外一个比较强大的功能。Fiddler提供了多维度的过滤规则,足以知足平常开发调试的需求。以下图示:
过滤规则有:
a. host和zone过滤。能够过滤只显示intranet或则internet的HTTP请求
也能够选择特定域名的HTTP请求
b. client process:能够捕获指定进程的请求。
这对于调试单个应用的请求颇有帮助。
其余更多的设置能够参考fiddler的官方文档。