您的位置:首页 > 理论基础 > 计算机网络

Fiddler工具使用报告

2014-04-06 22:36 351 查看
​这是这学期的一份作业,直接把论文内容粘贴过来了,截图粘贴的时候有问题,这里就不一张一张的上图了  ^V^…………

1.测试所需环境

运行环境: Windows8

Fiddier版本:Fiddler V4.4.6.2

浏览器:    Google Chrome

安装过程中提示:

这个可以不用管它,只是提示你可以在面板上面启用流量捕获。

2.前期准备

为了在Chrome浏览器上使用Fiddler,我们把Chrome的代理服务器设置成如下所示:

新建一个情景模式,把Chrome的代理设置成Fiddier的网络地址,在这儿是在本地调试,所以设置成127.0.0.1,Fiddier监听的端口号是8888,这里把端口号设置成8888,这样我们就能在Fiddler下监听到Chrome浏览器的会话内容了。

3.Fiddler基本功能

3.1页签功能

3.1.1 Statistics

这一部分是统计信息视图,显示了所有HTTP通信,展示了哪些文件生成了当前请求的页面。可以选择一个或多个会话,然后得出所选会话的统计信息,如下图。

从图中可以得到,在所选的前4个会话中,请求次数为4,发送字节数为2937,接收字节数为30119;在ActualPerformance中,还能看到请求开始的时间和响应结束的时间,TCP/IP连接持续时间,HTTPS握手持续时间等。点击Show Chart,显示饼状图,可以得出各个请求所占的比例,知道哪些请求比较耗时。如下图。

 

3.1.2 Inspectors

         为了具体演示这一模块儿功能,我们首先选中一条请求,

点击 就把这块儿单独拿了出来,如下:

如图所示,共分成两大模块儿,下面分别来介绍。

         第一部分给出了Request的具体内容,分成以下几部分:Headers为Http请求的请求头,TextView为文本视图,在仅有文本传输的网页中我们可以在这里看到简略图,这里的示例拿Response中的TextView:

WebForms为Web表单,这里显示的传输过程中的参数:

HexView为传输工程中的字节数据:

Author部分是用来验证的模块,这里不再说明,Cookies是Http请求产生的,这里我们选的仅在Request部分有Cookies,如图:

Rew为使用过程中最常用的的一个模块儿,给出了请求的所有内容,如图:

除了上述的还有JSON和XML,下面给出Response的JSON内容:

 

         第二部分为Response的具体内容,各部分功能与Request相似,在这里我们可以看到Wed视图和从服务器获得的图片,不再累述。

这里还提供更直观的阅览方式,在Request和Response部分都有 ,点击可以在文本框中查看整个的Http请求与相应。

3.1.3 AutoResponder

自动回复器部分。它的功能是可以不用发请求到服务器,而直接从本地返回文件。操作过程如下:首先将一个想要修改的文件下载到本地,比如一张图片,在请求列表中找到该文件所在行,右键,save->Response->Response Body,保存文件,并做修改。比如打开博客园的网站,将其logo图片保存在本地并修改,开始的网页如下图。

然后在AutoResponder中设置开启自动重定向功能和允许不匹配的请求通过,即在前两个复选框中打钩,如下图。

将左侧请求列表中的刚才选中的文件拖到右侧。

在右下方的Rule Editor中选择Find a file…,选择修改后的文件。然后保存。

刷新界面,发现文件变成了修改后的图片,如下图。

这个功能可以方便工程师的调试,一般情况下可能会将文件修改后重新发布,但是有了这个功能,可以在本地修改文件并验证,没有什么问题了再发布,以此来保证测试环境的稳定性。

 

3.1.4 Composer

HTTP Request发射器。功能是创建HTTPRequest,然后发送。

         用教务处系统登录举例。将用来登录的请求拖到composer中,然后可以看到,登录所使用的是POST方法,在下图所示的红色框中是登录名和密码。可以修改用户名和密码,然后按Execute就可以发送了,发送的请求会出现在请求列表中。选中该请求,点击fiddler中的浏览器选项,即可在网页中完成该请求。比如将错误的密码改成正确的,即可成功登录,进入系统。

         以上介绍了在parsed编辑模式下的操作,在Raw模式下也是类似,只是Raw模式把Parsed模式中的RequestLine,Request Header和Request Body写在一起,可以一行行手动写一个请求。

         在开发时,由于浏览器只能输入GET请求,所以无法用浏览器测试POST接口,用fiddler便解决了这一问题。

 

3.1.5 Filters

【主要功能】

对一个重新载入的页面进行抓包,当包的条目过多而只希望看到其中的某些部分时,可以选择filters过滤器进行抓包。在filters标签中须要勾选use filters,设置好其中所有选项后,通过actions勾选run filterset now来启动设置。

 

【Hosts option】

提供了两个host options,第一个是选择host是内网(Intranet Hosts)还是外网(Internet Hosts),或者选择No Zone Filter来自己设定特定的多个host

第二个是只监控某些网址,其中hide the following hosts用来隐藏过滤到的域名,show only thefollowing hosts则是只显示过滤到的域名,而flag the following hosts是给过滤到的域名加以标记,比如在其下输入online.bit.edu.cn和www.baidu.com则会给这些域名增加标记。

如上图所示,粗体部分相当于对相应域名的标记。
 

【Clientprocess】

实现对特定通信包的抓取,对象可以是通过浏览器通信的包(可以通过第一项自行设定),也可以是通过服务器通信的包,图中有专门对IE浏览器的包的抓取。

当选定一个浏览器或者具体页面后,可以测试通信,如用这个页面发送一封邮件:

然后可以检测到通信信息(包括历史通信信息):

 

可以立即检测到刚发送邮件的内容:

 
当然也可以检测到历史通信记录。
 

【RequestHeaders】

是根据请求的头部信息进行过滤

通过它,我们可以添加或者移除HTTP响应头部,并且标记包含特定头部的响应内容(flag requests with header)。用show only if URLcontains来显示头部中包含设定信息的记录,而用hide if URL contains来隐藏相应信息。例如要过滤出含有1460473的头部:
 

 
显示结果:

Delete request header 和Set request header则分别用来移除或设定特定响应头部。
 

【Breakpoints】

断点用来中断含有特定属性的请求或者响应,分别是从POST请求、GET查询字符串、XML语句信息以及某种规定内容当中的请求设置断点。

例如,从GET方法所得到的反馈是:

网页显示:

 
 

【ResponseStatus Code】

根据响应的状态码进行过滤

以状态码为依据过滤响应的显示信息,使响应的状态值与复选框中码值相匹配,2xx表示成功返回,3xx表示重新定向(301永久转移,302、303、307是临时转移),304 hide not modified用来指示浏览器使用缓存中保存的被请求资源的副本,4xx表示客户端错误,5xx表示服务器错误(在hide non-2xx中)。

选中hide 2xx 和hide 304:

得到以下反馈结果(将2xx和304响应过滤掉了):

 

【ResponseType and Size】

根据响应的类型和大小进行过滤

Show all content-type表示没有拦截,show only IMAGE/HTML/TEXT/CSS/
bdbf
SCRIPTS/XML/JSON分别显示指定内容类型的响应
比如show only IMAGE:

结果中出现的仅有图片格式的包:

选中CSS格式时出现以下过滤结果:

JSON格式的过滤:

(JSON是基于XML数据交换语言格式的一种升级,而使XML的格式得以简化)
关于time heatmap
Fiddler用ServerDoneResponse-FiddlerBeginRequese对象来提供请求与响应时间数据,用户可以通过filters中的Time HeatMap来获得计时数据。启动后,Fiddler会设置相应的背景颜色来区分服务器返回一个完整响应所需的时间区间。绿色阴影代表响应时间在50毫秒以内,而超过50毫秒但在300毫秒之内的响应条目没有颜色。响应时间在300至500毫秒之间的会涂以黄色,超过500毫秒的用红色底纹显示。

Block这一栏允许拦截下指定类型的响应文件,然后返回一个404错误给客户端而并不是传输目标资源。

 

【ResponseHeaders】

根据响应的头部信息进行过滤

这一栏可以标记含有cookies的头部响应或者标记指定头部响应,也可以删除或者筛选指定头部的响应信息。

 

3.1.6 Log

记录fiddler访问过程中发生的主要事件的日志,每当更新一次页面时,event log会自动刷新一次。

当点击上面的 any process图标并将其移动到指定浏览器页面后,该log会单独记录这个页面的通信情况:

 

3.1.7 Timeline

可以查看选中HTTP会话的时间传送信息。每个会话线的始端代表请求的时间,末端显示响应结果时间。柱状图的前端的小圆指示客户与服务器的连接是否被重用过。

选中多个,可以横向比较不同内容的传输时间。

除了默认的瀑布图外,Fiddler还提供了其他两种模式ClientMap和Server Map来使用户观察到客户端与服务器端的连接复用情况。

如以下检测到的客户端连接:

如果服务器每次响应后即关掉连接,那么每一排就只能显示一次传输。

 

3.2 其他功能介绍

Windows 8 配置管理:出于安全性和可靠性考虑,从Internet发送到本地计算机的数据块儿都有所限制,Fiddier的这个配置管理可以去除这个限制用以调试。具体配置的信息如下:

当我们想要调试程序的Http请求时选中并保存即可在Fiddier观测到。

         符号是用来给Http请求加注释的工具,点击有:

OK后即可看到在所选的请求上有标注的注释:

         为重新发送选中的请求,可以选择多个依次发送,这里解释一下,依次发送并不是在同一时间发送多条请求,这里的重新发送时模拟用户在发送请求时依次发送,处理完第一个请求之后再依次处理后面用户选中的请求。

         为删除用户选中类型的session,在平常用的时候为了删除所有session,常用Ctrl

+X键来直接删除。

         提供了遍历当前设置的断点的所有会话。由于Push该按键没有任何其他的响应,具体的功能与应用方式任待查阅资料。

         流模式,当从服务器获得响应后,直接在客户端显示。

         解码模式,所有的数据块儿为了易于显示都解压缩。

         在窗口显示的session数目,测试环境下把这个数据设置成100时可以保持100个的会话,但是在窗口已经存在100个以上的session时,再设置后不会保持100个的数目。

         功能尚不明确,当点击这个icon时,在Log页面都会产生一条记录。说明处理过滤器清除完成。

         对于测试有用的还有 在所选浏览器下打开该会话窗口,这个可以用来测试改过的请求具体显示的内容与之前有什么不同,后面会有介绍; 删除历史记录; 这个是Fiddler提供的编码工具,可以用于编码与解码,如下:

         命令行调试工具:

你可以在这里的黑框中输入命令,常用的命令有:select:选择会话的命令,?.文件后缀名:查询后缀名是所选后缀名的会话,bpu:截获reequest。

3.3 尝试编写Http请求

         为了自己尝试编写请求,我们首先找到想要修改或者现在已经用不到的一个请求,右键选择Unlock For Editing,这时候显示如下:

右上侧显示为黑色,可编辑状态,这时候我们就可以在右上侧的窗口改写Http请求了。改后的Http有:

右键选择Unlock For Editing,这时右上侧显示不可编辑,我们再在Chrome下打开这个链接有:

我们就打开了Google的链接。

4.备注

由于组员计算机系统不一致,开始时叙述的测试环境对每一部分不一样,具体如下:

2,3.1.2,3.2,3.3为windows8环境下;

3.1.1,3.1.3,3.1.4,3.1.5,3.1.6,3.1.7为windows7环境下测试。

5.参考资料

[1] Fiddler官网:www.telerik.com/fiddler

[2] 博客:Fiddler教程,作者:肖佳,引用地址:

http://www.cnblogs.com/tankxiao/archive/2012/02/06/2337728.html

[3] 博客:抓包工具Fiddler的使用,引用地址:

http://help.locoy.com/Document/Url/Fiddler.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息