参考链接:http://blog.csdn.net/ohmygirl/article/details/17849983/

http://www.cnblogs.com/kingwolf_JavaScript/archive/2012/11/07/Fiddler_config_cols.html

主要分为6大部分:

菜单栏,工具栏,会话列别,QuickExec命令行的使用,HttpRequest显示栏  HttpResponse显示栏

4、查看HTTP统计视图:

通常fiddler会话列表中会显示捕获的所有的http通信量,并以列表的形式展示出来,点击你想查看的一个或者多个会话,再点击软件右边的【Statustics】菜单,你就可以很轻松的查看到请求数、发送字节数等信息。如果你选择第一个请求和最后一个请求,还可以获得页面加载所消耗的总体时间,还可以从图表中分辩出那些请求耗时最多,从而可以对页面的访问速度进行优化。

5、QuickExec命令行的使用:

QuickExec命令行是会话列表下边的黑色区域,你可以在里面输入命令,回车之后即可执行你的命令,非常方便,在这里为大家介绍几个常用的命令:

help  打开官方的使用页面介绍,所有的命令都会列出来

cls   清屏  (Ctrl+x 也可以清屏)

select  选择会话的命令

?.png  用来选择png后缀的图片

bpu  截获request

6、如何在fiddler中设置断点修改Response:

主要有两种方法:

1、点击【设置】菜单—【自动断点】—【响应之后】,这种方法是中断所有的会话,如果你想消除断点的话,就点击【设置】—【自动断点】—【禁用】就可以了。

2、在QuickExec命令行中输入:"bpuafter 网址/会话名",这种方法是中断某一具体的会话,如果想消除命令的话,在命令行中输入"bpuafter"。

7、如何在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标志为这个菜单添加菜单项。

在“复制”菜单上面有以下内容:

  • 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如下:

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面板中看到如下信息:

1. Statistic。

关于HTTP请求的性能和其他数据分析:

我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息。

2. Inspectors。

分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。

3. AutoResponder

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

4. Composer。

老版本的fiddler中叫request-builder.顾名思义,可以构建相应的请求,有两种常用的方式构建请求:

(1)Parsed 输入请求的url之后executed即可,也可以修改相应的头信息(如添加常用的accept, host, referrer, cookie,cache-control等头部)后execute.

这个功能的常见应用是:“刷票”(不是火车票!!),如刷新页面的访问量(基于道德和安全原因,如果你真去刷票,刷访问量,本博客概不负责)

(2)Raw。使用HTTP头部信息构建http请求。与上类似。不多叙述

5. Filter

Fiddler另一个比较强大的功能。Fiddler提供了多维度的过滤规则,足以满足日常开发调试的需求。如下图示:

过滤规则有:

a. host和zone过滤。可以过滤只显示intranet或则internet的HTTP请求

也可以选择特定域名的HTTP请求

b. client process:可以捕获指定进程的请求。

这对于调试单个应用的请求很有帮助。

其他更多的设置可以参考fiddler的官方文档。

Fiddler抓取HTTP请求的更多相关文章

  1. 使用Fiddler抓取手机请求

    使用Fiddler抓取手机请求 Fiddler 手机 今天想尝试在手机上抓包,发现一个好玩的小工具——Fiddler. Fiddler是一个专门的抓包工具,可以模拟请求,修改请求,手机应用调试等.还是 ...

  2. Fiddler抓取https请求 & Fiddler抓包工具常用功能详解

    Fiddler抓取https请求 & Fiddler抓包工具常用功能详解   先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:“你这个页面做的有问 ...

  3. fiddler抓取https请求(android/ios)

    本文转载自:http://blog.csdn.net/songer_xing/article/details/53841401 备注:本人有这样的一个需求,先记录下,以后再进行整理. 在抓包过程中发现 ...

  4. Fiddler使用二(Fiddler抓取HTTP请求)

    参考:http://blog.csdn.net/ohmygirl/article/details/17849983 Fiddler使用一中已经介绍了Fiddler的原理和软件界面.本文主要针对Fidd ...

  5. Fiddler抓取HTTP请求。

    参考链接:http://blog.csdn.net/ohmygirl/article/details/17849983/ http://www.cnblogs.com/kingwolf_JavaScr ...

  6. 如何使用fiddler抓取https请求(PC和移动端)

    最近做一个抓取移动端app接口,并执行评论,收藏的接口功能测试.怎么搞/(ㄒoㄒ)/~~ 按照老思路试一试,第一步还是要用fiddler来帮忙获取接口信息! 一.基本的抓取http请求设置: 1.cm ...

  7. Fiddler抓取HTTPS请求配置

    由于fiddler安装后默认只能抓取http请求,如果需要抓取https请求需要进行配置.配置方式:Tools--->Options--->HTTPS,勾选CaptureHTTPS CON ...

  8. fiddler抓取https请求

    Fiddler抓取https设置详解(图文):https://www.cnblogs.com/joshua317/p/8670923.html Fiddler要抓取到https请求我们还需要Fiddl ...

  9. iOS 10.3下使用Fiddler抓取HTTPS请求

    最近使用Fiddler抓取手机上的HTTPS请求时,遇到一个问题.设置完之后,访问HTTPS的页面,却得到一个错误 网络出错,轻触屏幕重新加载:-1202 (如下图所示)   我印象中,之前都好好的, ...

随机推荐

  1. 【转载】谈MongoDB的应用场景

    引用:http://blog.csdn.net/adparking/article/details/38727911 MongoDB的应用场景在网上搜索了下,很少介绍关于传统的信息化应用中如何使用Mo ...

  2. <Docker学习>3. docker镜像命令使用

    镜像提供容器运行时所需要的程序,资源.配置文件等,是一个特殊的文件系统.是容器运行的基础.镜像是多层文件系统组成的,是一个分层存储的架构,在镜像的构建中,会一层层的构建,每一层构建完成就不会发生改变, ...

  3. PHP.35-TP框架商城应用实例-后台11-商品分类-删除分类(2种方法)、添加、修改

    删除分类 删除一个分类的同时,其所有子分类都删除 在控制器CategoryCtroller.class.php中添加删除函数(delete) 在分类模型中添加钩子函数_before_delete()[ ...

  4. 18,Shell编程实战

      为什么要学习Shell编程 Shell脚本语言是实现Linux/Unix系统管理及自动化运维所必须的重要工具,Linux系统的底层以及基础应用软件的核心大都涉及Shell脚本的内容. 一个合格的L ...

  5. KEIL里如何实现仿真 查看输出波形

    1首先打开keil软件 ,点击options 我们选择在debug 2 点击debug 红色的按钮 3 进入调试界面后 ,打开logic analysis窗口 4 打开窗口后 进入setup 4 会弹 ...

  6. P1418 选点问题(黑白染色)

    P1418 选点问题 题目描述 给出n个点,m条边,每个点能控制与其相连的所有的边,要求选出一些点,使得这些点能控制所有的边,并且点数最少.同时,任意一条边不能被两个点控制 输入输出格式 输入格式: ...

  7. sprintf()函数使用异常

    调试STM32F103,比如如下代码:使用springf函数,这个函数是把最后两个参数先格式化成字符串 ,输出到ERROR_STRING,如果他们合并的长度大于30会出现深情况? ] sprintf( ...

  8. 网络策略中使用的 VLAN 属性

    TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 Win ...

  9. Start with PJSIP on windows

    To overcome the project of HD video conferencing systerm,I should learn to use the PJSIP. I should m ...

  10. C#中窗体、MDI的使用心得

    1、Show()和ShowDialog()的差别,前者在执行之后,无需等待返回,多用于MDI窗体的显示(MDI窗体之间是并列的,可以随时切换,需要注意自己调整的页面的需求,是要并列,还是要等待其中一个 ...