HTTP调试工具Fiddler的使用方法介绍_第1页
HTTP调试工具Fiddler的使用方法介绍_第2页
HTTP调试工具Fiddler的使用方法介绍_第3页
HTTP调试工具Fiddler的使用方法介绍_第4页
HTTP调试工具Fiddler的使用方法介绍_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. 调试工具 Fiddler的使用方法介绍转 调试工具:Fiddler的使用方法介绍2020年07月26日10:00Fiddler可以帮您记录,调试Microsoft Internet Explorer与Web应用程序的交互,找到Web程序运行性能的瓶颈,还有如查看向Web效劳器发送cookies的内容,下载内容的大小等功能。说多一点是,Fiddler站在用户与Web效劳器的中间,由它转发恳求与响应,因此Fiddler作为一个可检视,可定制的工具,能让您理解交互过程细节,有利于解决Web程序的交互问题。如以下示意图:Internet Explorer-WinINET?由Fiddler运行时自动

2、注册-Fiddler-Web Server Fiddler可以用于:性能测试。如查看页面的大小调试。在会话选项中,可暂停,编辑 通讯Fiddler不仅可用于Microsoft Internet Explorer,其它阅读器,如Mozilla Firefox,Opera等也适用。软件界面友好,精于 ,可能比NetMon易用,还可用.NET进展扩展。官方站点上,还有视频教学。这个工具我已经使用比较长时间了,对我的帮助也挺大,今天我翻译的微软的文章,让更多的朋友都来理解这个不错的工具,也是我第一次翻译文章,不恰当之处请大家大家多多指正。介绍:你是不是曾经疑惑过你的web程序和IE是如何交互的?你是不

3、是遇到过一些奇怪的而你又无法解决的性能瓶颈?你是不是对那些发送给效劳器端的cookie和那些你下载下来的被标记为可缓存的内容感到好奇?微软的Fiddler可以帮助你答复以上的问题,不但如此,它还是一个 调试代理,它可以记录所有的你电脑和互联网之间的 通讯,Fiddler可以也可以让你检查所有的 通讯,设置断点,以及Fiddle所有的"进出"的数据指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思。Fiddler要比其他的网络调试器要更加简单,因为它仅仅暴露 通讯还有提供一个用户友好的格式。Fiddler包含一个简单却功能强大的基于JScript.NE

4、T事件脚本子系统,他非常灵敏性非常棒,可以支持众多的 调试任务。Fiddler是用C#写出来的。接下来是一大段废话,关于如何安装的,只要一路next,就可以了。这段话我就跳过,直接切入正题了。Running Fiddler当你启动了Fiddler,程序将会把自己作为一个微软互联网效劳的系统代理中去。你可以通过检查代理设置对话框来验证Fiddler是被正确地截取了web恳求。操作是这样的:点击IE设置,工具,局域网设置,最后点击高级。作为系统代理,所有的来自微软互联网效劳WinInet的 恳求再到达目的Web效劳器的之前都会经过Fiddle,同样的,所有的 响应都会在返回客户端之前流经Fiddl

5、er。这样,就能明白Fiddler很多作用了吧!当你关闭Fiddler的时候,它就会自动从系统注册表中移出,换句话说,当你关闭了Fiddler后,不会占着茅坑不拉屎。下面,是一个Fillder的用户界面,大家可以参考参考其功能。用Fiddler来做性能测试 视图通过显示所有的 通讯,Fiddler可以轻松的演示哪些用来生成一个页面,通过统计页面就是Fiddler左边的那个大框用户可以很轻松的使用多项选择,来得到一个WEB页面的"总重量"页面文件以及相关js,css等你也可以很轻松得看到你恳求的某个页面,总共恳求了多少次,以及多少字节被转化了。另外,通过暴露 头,用户可以看见

6、哪些页面被允许在客户端或者是代理端进展缓存。假设要是一个响应没有包含Cache-Control头,那么他就不会被缓存在客户端。用Fiddler来调试Fiddler支持断点调试概念,当你在软件的菜单-rules-automatic breakpoints选项选择beforerequest,或者当这些恳求或响应属性可以跟目的的标准相匹配,Fiddler就可以暂停 通讯,情切允许修改恳求和响应。这种功能对于平安测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码途径都可以用来演习。Session检查用户可以在BuilderPage项种来以手工的方式来创立一个 恳求即在Fiddler右侧的

7、tab的第三个,RequestBUILDER,或者可以使用拖拽操作从Session列表中来挪动一个已经存在的恳求到builder page来再次执行这个恳求。Fiddler扩展Fiddler可以使用.net framework来对它进展扩展。有2种为Fiddler扩展准备的根本机制:自定义规那么,和规那么检查。使用脚本化的规那么来扩展Fiddler Fiddler支持JScript.NET引擎,它可以允许用户自动地修改 恳求和响应。这个引擎可以在可视化界面修改在FiddlerUI中的Session,可以从列表中提取你感兴趣的错误,也可以移除你不感兴趣的Session。以下的例如代码演示当coo

8、kie被加载的时候把界面变成紫色。static function OnBeforeRequestoSession:Fiddler.SessionifoSession.oRequest.headers.Exists"Cookie"oSession"ui-color"="purple";oSession"ui-bold"="cookie";通过参加Inspectors来扩展Fiddler用户可以参加一个Inspector插件对象,来使用.net下的任何语言来编写Fiddler扩展。RequestIn

9、spectors和ResponseInspectors提供一个格式标准的,或者是被指定的用户自定义 恳求和响应视图。默认安装中,Fiddler参加了一下的Inspectors:Request InspectorsRWHeaders-Shows request headers and status.RWTextView-Shows the request body in atext box.原始的恳求body视图RWHexView-Shows the request body in ahexadecimal view.body的16进制视图ROXML-Shows the request body

10、 as an XML DOM in atree view.以XML方式展示恳求Response InspectorsRWTransformer-Removes GZip,DEFLATE,and CHUNKED encodings for easier debugging.RWHeaders-Shows response headers and status.RWTextView-Shows the response body in atext box.RWHexView-Shows the response body in ahexadecimal view.16进制视图ROImageView

11、-Shows the response body as an Image.Supports all.NET image formats.ROXML-Shows the response body as an XML DOM in atree view.ROPrivacy-Explains the P3P statement in the response headers,if present.假设在响应头中有关于隐私策略的说明就展示出来学习如何通过Fiddler建立一个速度更快的网站。在这篇文章中,我们将使用Fiddler去探究 的性能,缓存,以及压缩。假设你要是没有安装和配置过Fiddler

12、,请从文章的第一篇开场。 性能总览毫无疑问用户都喜欢访问速度快的网站。用户是非常的不耐烦,除非你的网站是没有竞争对手,换句话就是处于垄断地位的。假设你的访问者来自世界各地,那你就必需要保证你的网站在执行效率方面要非常好,甚至要更加标准。作为一个国际化的网络连接点,通常要受到来自两个方面的压力:高访问量以及低带宽。在第一次至关重要的访问中,用户必需要下载每一个内容片断,来生成页面,包括JS,CSS,Images,HTML,假设你的页面太难加载包括IIS接到恳求执行并返回给客户端HTML,访问者也许就会分开你的页面!通过暴露所有的 通讯,Fiddler很容易得向你展示哪些文件经常被用于生成一个页面

13、,Shift+click可以在Fiddler左边框的会话列表中多项选择会话,来计算那些被选会话的"页面总重量"。那些被转换成字节的数量。假设你想让你的客户在第一次访问的时候就留下深化的印象,那么最好的,也是唯一的途径就是返回给客户更少的文件。1使用更少的图画2将所有的CSS浓缩到一个CSS文件中3将所有的脚本浓缩到一个JS文件中4简化你的页面时间5使用 压缩假设要是你已经对用户的第一次来访的性能进展了优化,那么你可以通过 缓存的优势来使得你的网站访问速度更快! 缓存介绍2种方式来提升你的web应用程序的速度:减少恳求和响应的往返次数减少恳求和响应的往返字节大小。 缓存是最好

14、的减少客户端效劳器端往返次数的方法。缓存提供了提供一种机制来保证客户端或者代理可以存储一些东西,而这些东西将会在稍后的 响应中用到的。即第一次恳求了,到了客户端,缓存起来,下次假设页面还要这个JS文件或者CSS文件啥的,就不要到效劳器端去取下来了,但是还是要去效劳器上去访问一次,因为恳求要比照ETAG值,关于这个值,我将会在下次翻译中介绍其作用这样,就不用让文件再次跨越整个网络了。缓存相关的恳求头为了进步性能,微软的IE和其他的web客户端总是想尽方法来维持从远程效劳器上下载下来的本地的缓存。当客户端需要一个资源html,css.js,他们有3种可能的动作:1发送一个一般的 恳求到远程效劳器端

15、,恳求这个资源。2发送一个有条件的 恳求到效劳器,条件就是假设它不同于本地的缓存版本。3假设缓存的拷贝可用,就使用本地的缓存资源。当发送一个恳求,客户也许会使用如下的几个HEADER Table 1.Client Cache Headers Pragma:no-cacheThe client is unwilling to accept any cached responses from caches along the route and the origin server must be contacted for afresh copy of the resource.If-Modifi

16、ed-Since:datetimeThe server should return the requested resource only if the resource has been modified since the date-time provided by the client.If-None-Match:etagvalueThe server should return the requested resource if the ETAG of the resource is different than the value provided by the client.An

17、is aunique identifier representing aparticular version of afile.1 Pragma:no-cache说明客户端不愿意承受缓存恳求,它需要的是最即时的资源。2 If-Modified-Since:datetime说明假设这个资源自从上次被客户端恳求,就已经修改了,那么效劳器就会返回给客户端最新的。3 If-None-Match:etagvalue假设客户端资源的ETAG值跟效劳器端不一致了,那么效劳器端返回最新的资源。ETAG就是一个唯一的ID,用来表示一个文件的一个特定的版本。假设要是这些有条件的恳求,也就是含有If-Modifie

18、d-Since或者If-None-MatchHeader头的恳求,效劳器将会以 /304 Not Modified来作为响应,那么客户端就知道可以使用客户端的缓存了。否那么,效劳器将会返回一个新的响应并且客户端就会抛弃过期的缓存资源。你可以观察2个连接的恳求,来恳求同一个图片,你会在Fiddler中发现:在第一个本地缓存版本中,效劳器返回一个含有ETAG的文件,和一个含有最后修改日期的文件,在这个第一次的恳求会话中,一个本地的缓存版本已经可以使用了。这样一来,一个有条件的恳求就被创立出来。然后你再次恳求这个图片的时候,他就就会响应一个本地缓存的文件,当然前提是第一次缓存的图片的ETAG值或者I

19、f-Modified-Since值跟效劳器上匹配的话,效劳器就响应一个304给客户端。Session#1 GET/images/banner.jpg /1.1 /1.1 200 OK Date:Tue,08 Mar 2006 00:32:46 GMT Content-Length:6171 Content-Type:image/jpeg ETag:"40c7f76e8d30c31:2fe20"Last-Modified:Thu,12 Jun 2003 02:50:50 GMT Session#2 GET/images/banner.jpg /1.1 If-Modified-

20、Since:Thu,12 Jun 2003 02:50:50 GMT If-None-Match:"40c7f76e8d30c31:2fe20" /1.1 304 Not Modified因为一个 304响应仅仅包含头,没有body,所有它在穿越互联网的时候要比携带了资源的快很多,尽管如此, /304响应需要一个效劳器的往返,但是通过细心的设置响应头,web程序员可以消除这种因素,甚至是有条件的恳求。缓存相关响应头通常缓存机制是由响应头来控制的。 标准描绘了Header控制缓存,The optional Cache-Control,Expires过期。Expires头包含一

21、个绝对的日期,当超过此日期,它将不会被考虑更新了。Table 2 mon Cache-Control Headers ValueMeaning publicThe response may be stored in any cache,including caches shared among many users.privateThe response may only be stored in aprivate cache used by asingle user.no-cacheThe response should not be reused to satisfy future req

22、uests.no-storeThe response should not be reused to satisfy future requests,and should not be written to disk.This is primarily used as asecurity measure for sensitive responses.max-age=#secondsThe response may be reused to satisfy future requests within acertain number of seconds.must-revalidateThe

23、response may be reused to satisfy future requests,but the origin server should first be contacted to verify that the response is still fresh.Cache-Control头的参数设置:Public响应会被缓存,并且在多用户间共享。Private响应只可以作为私有的缓存,不能再用户间共享。No-cache响应不会被缓存No-store响应不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于平安考虑的某些敏感的响应才会使用这个。Max-age=#seconds

24、响应将会某个指定的秒数内缓存,一旦时间过了,就不会被缓存。Must-revalidate响应会被重用来满足接下来的恳求,但是它必须到效劳器端去验证它是不是仍然是最新的。假设你要想在iis中配置缓存,请参阅温软的知识技术文章:你可以学习更多关于在中使用缓存的知识文章:假设你发现你经常在你的网站上更新文件,但是并没有更改文件名字,那你就必需要非常小心地设置你的缓存生存时间。例如:假设你要一个thisyear.gif图片文件显示当前的年份在网站上,你需要保证这个缓存过期时间不能超过一天,否那么一个用户在12月31号访问你的网站的时候,在1月1号就不能显示正确的日期。由于某些原因,效劳器可能会设置:P

25、rogma:no-cache头,Cache-control:no-cache Header中的参数:Vary是一个缓存信号,Vary:User-Agent表示缓存当前的响应,但是仅限于当发送同样的User-Agent头的时候。指令Vary:*就相当于Cache-Control:no-Cache。Vary就相当于中的缓存的参数一样,意思是根据什么来缓存,假设要是知道的缓存的使用方法,就很容易明白这个参数的意思。使用 会话列表,Fiddler用户可以看到在页面里包含的 缓存头。Fiddler会话列表假设响应不包含Expires或者Cache-Control,那么客户端就会被迫作为一个有条件的恳求,

26、来保证所有的资源都是最新的。有条件的恳求和WinInetCache IE通过Microsoft windows Internet Services来最大程度的利用缓存效劳。WinInet允许用户配置缓存的大小和行为,设置缓存进展如下操作:1翻开IE,2工具选项,选择Inrernet选项,在一般子选项中,临时文件夹内,点击设置以以下图就是选村的四种设置:标记性能问题:你可以使用Fiddler的自定义规那么来标记某些你需要的,比方假设某个响应大于25KB,你可以把当前的Session标记为红色,更加醒目。以下代码都是在OnBeforeResponse事件中:/Flag files over 25K

27、B ifoSession.responseBodyBytes.length 25000oSession"ui-color"="red";oSession"ui-bold"="true";oSession"ui-customcolumn"="Large file";同样,你也可以标记响应并不指示缓存信息。/Mark files which do not have caching informationif!oSession.oResponse.headers.Exists"Expires"&&!oSession.oResponse.headers.Exists"Cache-Control"oSession"ui-color"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论