版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Fiddler可以帮您记录,调试 Microsoft In ternet Explorer 与Web应用程序的交互,找 到Web程序运行性能的瓶颈,还有如查看向Web服务器发送cookies的内容,下载内容的大小等功能。说多一点是,Fiddler站在用户与 Web服务器的中间,由它转发请求与响应,因此Fiddler作为一个可检视,可定制的工具,能让您了解交互过程细节,有利于解决Web程序的交互问题。如下列示意图:Internet ExplorerWeb Server<-> WinINET?(由 Fiddler 运行时自动注册)<-> Fiddler <->F
2、iddler可以用于:性能测试。如查看页面的大小调试。在会话选项中,可暂停,编辑HTTP通讯Fiddler 不仅可用于 Microsoft In ternetExplorer,其它浏览器,如 Mozilla Firefox ,Opera等也适用。软件界面友好,精于HTTP,可能比NetMon易用,还可用.NET进行扩 展。官方站点上,还有视频教学。这个工具我已经使用比较长时间了,对我的帮助也挺大,今天我翻译的微软的文章,让更多的朋友都来了解这个不错的工具,也是我第一次翻译文章,不恰当之处请大家大家多多指正。 介绍:你是不是曾经疑惑过你的web程序和IE是如何交互的?你是不是遇到过一些奇 怪的而
3、你又无法解决的性能瓶颈?你是不是对那些发送给服务器端的cookie和那些你下载下来的被标记为可缓存的内容感到好奇?Fiddler 官方网站及下载地址:微软的Fiddler能够帮助你回答以上的问题,不但如此,它还是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler可以也可以让你检查所有的http通讯,设置断点,以及Fiddle所有的 进出”的数据(指 cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。Fiddler要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式。Fiddler包含一个简单却功能强
4、大的基于 JScript .NET 事件脚本子系统,他非 常灵活性非常棒,可以支持众多的 http调试任务。Fiddler是用C#写出来的。 。接下来是一大段废话,关于如何安装的,只要一路 next,就可以了。 这段话我就跳过,直接切入正题了。Running Fiddler当你启动了 Fiddler,程序将会把自己作为一个微软互联网服务的系统代理中去你可以通过检查代理设置对话框来验证Fiddler是被正确地截取了 web请求操作是这样的:点击IE设置,工具,局域网设置,最后点击高级作为系统代理,所有的来自微软互联网服务( Winlnet )的http请求再到达目 标Web服务器的之前都会经过F
5、iddle,同样的,所有的Http响应都会在返回 客户端之前流经Fiddler。这样,就能明白Fiddler很多作用了吧!当你关闭Fiddler的时候,它就会自动从系统注册表中移出,换句话说,当你关 闭了 Fiddler后,不会占着茅坑不拉屎。下面,是一个Fillder的用户界面,大家可以参考参考其功能。The BLiilder tab enables, you to hiandcrarft an HTTP Request.HlYI feiwj *di t:12r眄财K3*Q«tCM»HIWW:帕 Fflhji mg i&iMImm iwi hhvtarwft bn
6、vd f» WA, USA.Pi 1I-MIAL3KtHTTP S0$sions list «hows all HTTP Requests,;艰 wH<W KQ9b«l |W W4ft# | Result |Ho或 JJRLPerforroance StatistkSessiorHTTP Requests:3Body Bytes Sent:0Body Bytes Received:5RESPONSE: CODESHTTP/302:1HTTP/200:2The ln«p«ctor tab allows you to viewand modi
7、fy Requests and Responses.The Stati&hiCfi tab &howEi slatiEiticfi about the seleci&d aeaajcHns,用Fiddler来做性能测试 HTTP统计视图通过显示所有的 Http通讯,Fiddler可以 轻松的演示哪些用来生成一个页面,通过 统计页面(就是Fiddler左边的那个 大框)用户可以很轻松的使用多选,来得到一个WEB页面的 总重量”(页面文件以及相关js,css等)你也可以很轻松 得看到你请求的某个页面,总共请求了 多少次,以及多少字节被转化了。,Fiddler HTTP De
8、buggingProxyFie Edit Rules Lools yew HelpHTTP Sessions|3|0302 /1200office nnicrosofL com /&n-us/deF.%. 2.理j Dmitrg迴 £型旦.也 anw_pix£另外,通过暴露HTTP头,用户可以看见哪些页面被允许在客户端或者是代理端 进行缓存。如果要是一个响应没有包含Cache-Control头,那么他就不会被缓存在客户端。1 URLBody| Expres1163none/en-us/deFaUt.aspx51冋Frb2! Jan2005 20:38:41 ./tr
9、ans jDixel.spx. >.44none用Fiddler来调试Fiddler支持断点调试概念,当你在软件的菜单 一rules automatic breakpo ints选项选择beforerequest,或者当这些请求或响应属性能够跟目标的标准相匹配,Fiddler就能够暂停Http通讯,情切允许修改请求和响应。这种功能对 于安全测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码 路径都可以用来演习。Performance StatistkJ Session Inspector Request builder | | Heoder-TextView Hex XM1
10、 Request HeadersInlo., IGET /fiddler/ HTTP/1.1-ClientAccept: */*Accept-Language:已n-u§UMPU: X06Accept-Encoding: gzipj deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Maxtl-TransportHost:fiddler bool .comv匾丿>TrnsForrfter | Headers TextView ImageView Hex CachingPrivacyXMLR
11、esponse HeadersInfI(HTTP/1 J 200 OKn-CacheDate: Frl 21 Jan 2005 20:伽9 GMTCache-control: private-EntityContents ength: 3140Content-Type; text/html-MiscellaneousServers Microsoft-II5(6HOAMkrosof tOff ice Webserver:X-Ppwered-By: A5P.NETV<1 >1Session检查用户可以在BuilderPage 项种来以手工的方式来创建一个 HTTP请 求(即在Fidd
12、ler右侧的tab的第三个,RequestBUILDER ),或者可以使用 拖拽操作从Session列表中来移动一个已经存在的请求到 builder page来再 次执行这个请求。Fiddler 扩展 Fiddler 可以使用 .net framework 来对它进行扩展。 有 2 种为 Fi ddler 扩展准备的基本机制: 自定义规则,和规则检查。使用脚本化的规则来扩展 FiddlerFiddler 支持 JScript .NET 引擎,它可以允许用户自动地修改 Http 请求和响应。 这个引擎 能够在可视化界面修改在 FiddlerUI 中的 Session ,可以从列表中提取你感兴趣的
13、错误, 也可以移除你不感兴趣的 Session 。以下的示例代码演示当 cookie 被加载的时候把界面变成紫色。static function OnBeforeRequest(oSession:Fiddler.Session) if (oSession.oR equest.headers.Exists("Cookie") oSession"ui-color" = "purple" o Session"ui-bold" = "cookie" 通过加入 Inspectors 来扩展 Fiddler
14、 用户可以加入一个 Inspector 插件对象, 来使 用.net下的任何语言来编写 Fiddler扩展。Requestlnspectors 和Respons eInspectors 提供一个格式规范的,或者是被指定的(用户自定义) Http 请求 和响应视图。默认安装中, Fiddler 加入了一下的 lnspectors :Request lnspectorsRW Headers Shows request headers and status.RW TextView Shows the request body in a text box. (原始的请求 body 视图)RW HexV
15、iew Shows the request body in a hexadecimal view.( body 的 16 进制视图)RO XML Shows the request body as an XML DOM in a tree view. (以 XML 方式展示请求)Response lnspectorsRW Transformer Removes GZip, DEFLATE, and CHUNKED enco dings for easier debugging.RWHeaders Showsresponse headers andstatus.RWTextViewShowsth
16、eresponsebodyina text box.RWHexViewShowstheresponsebodyina hexadecimal view(16 进制视图)ROlmageView Shows the responsebodyas an lmage.Supports all.NET imageformats.ROXML Showsthe responsebodyas anXML DOM ina tree view.ROPrivacy Explains the P3Pstatement inthe responseheaders, if present.(如果在响应头中有关于隐私策略的
17、说明就展示出来)学习如何通过Fiddler建立一个速度更快的网站。在这篇文章中,我 们将使用Fiddler去探究HTTP的性能,缓存,以及压缩。如果你要是没有安装和配置过 Fiddler,请从文章的第一篇开始。HTTP性能总览毫无疑问用户都喜欢访问速度快的网站。用户是非常的不 耐烦,除非你的网站是没有竞争对手,换句 话就是处于垄断地位的。 如果你的访问者来自世界各地,那你就必须要保证你的网站在执行效 率方面要非常好,甚至要更加标准。作为一个国际化的网络连接点, 通 常要受到来自两个方面的压力:高访问量以及低带宽。在第一次至关重要的访问中,用户必须要下载每一个内容片断, 来生 成页面,包括JS,
18、CSS,Images,HTML,如果你的页面太难加载(包括IIS接到请求执行并返回给客户端 HTML),访问者也许就会 离开你的页面!通过暴露所有的HTTP通讯,Fiddler很容易得向你展示哪些文件经 常被用于生成一个页面,Shift+click 可以在Fiddler左边框的会话列表中多选会话,来计算 那些被选会话的 页面总重量”那些被转换成字节的数量。,那么如果你想让你的客户在第一次访问的时候就留下深刻的印象最好的,也是唯一的途径就是返回给客户更少的文件。1使用更少的图画2将所有的CSS浓缩到一个CSS文件中3将所有的脚本浓缩到一个JS文件中4简化你的页面时间5使用HTTP压缩如果要是你已
19、经对用户的第一次来访的性能进行了优化,那么你可以通过Http缓存的优势来使得你的网站访问速度更快!HTTP缓存介绍2种方式来提升你的web应用程序的速度:减少请求和响应的 往返次数减少请求和响应的往返字节大小。HTTP缓存是最好的减少客户端服务器端往返次数的办法。缓存提供了提供一种机制来保证客户端或者代理能够存储一些东西,而这些 东西将会在稍后的HTTP响应中用到的。(即第一次请求了,到了 客户端,缓存起来,下次如果页面还要这个 JS文件或者CSS文件 啥的,就不要到服务器端去取下来了,但是还是要去服务器上去访问一次,因为请求要对比ETAG值,关于这个值,我将会在下次翻 译中介绍其作用)这样,
20、就不用让文件再次跨越整个网络了。缓存相关的请求头为了提高性能,微软的IE和其他的web客户端总是想尽办法来维持 从远程服务器上下载下来的本地的缓存。当客户端需要一个资源(html,css.js),他们有3种可能的动作:1 发送一个一般的 HTTP 请求到远程服务器端,请求这个资源。2 发送一个有条件的 HTTP 请求到服务器,条件就是如果它不同于 本地的缓存版本。3 如果缓存的拷贝可用,就使用本地的缓存资源。当发送一个请求,客户也许会使用如下的几个 HEADERTable 1. ClientCache HeadersThe client is unwilling to accept any c
21、ached responses fromPragma: no-cachecaches along the route and theorigin server must be contacted for a fresh copy of the resource.The server should return the requested resource only if theIf-Modified-Since:resource has been modified sincedatetimethe date-time provided by the client.The server shou
22、ld return theIf-None-Match:requested resource if the ETAG of the resource is different than theetagvaluevalue provided by the clie nt. AnETAG is a unique identifier represe nti ng a particular vers ion of a file.1 Pragma : no-cache表明客户端不愿意接受缓存请求,它需要的是最即时的资源。2 If-Modified-Sinee:datetime 表明如果这个资源自从上次被
23、客户端请求,就已经修改了,那么服务器就会返回给客户端最新的。3 If-None-Match:etagvalue如果客户端资源的ETAG值跟服务器端不一致了,那么服务器端返回最新的资源。ETAG就是一个唯 一的ID,用来表示一个文件的一个特定的版本。如果要是这些有条件的请求,也就是含有If-Modified-Sinee或者If-None-MatchHeader头的请求,服务器将会以 HTTP/304 NotModified 来作为响应,那么客户端就知道可以使用客户端的缓存了。否则,服务器将会返回一个新的响应并且客户端就会抛弃过期的 缓存资源。你可以观察2个连贯的请求,来请求同一个图片,你会在Fi
24、ddler中发现:在第一个本地缓存 版本中,服务器返回一个含有 ETAG的 文件,和一个含有最后修改日期的文件,在这个第一次的请求会话中, 一个本地的缓存版本已经可以使用了。这样一来,一个有条件的请 求就被创建出来。然后你再次请求这个图片的时候, 他就就会响应一 个本地缓存的文件,当然前提是第一次缓存的图片的 ETAG值或者I f- Modified-Sinee 值跟服务器上匹配的话,服务器就响应一个 30 4给客户端。Session #1GET /images/banner.jpgHTTP/1.1Host:http:/www.bayde n. com/HTTP/1.1 200 OKDate:
25、 Tue, 08 Mar 2006 00:32:46 GMTConten t-Le ngth:6171Con te nt-Type:image/jpegETag: "40c7f76e8d30c31:2fe20"Last-Modified:Thu, 12 Jun 2003 02:50:50 GMTSessi on #2GET /images/banner.jpgHTTP/1.1If-Modified-Sinee:Thu, 12 Jun 2003 02:50:50 GMTIf-No ne-Match:"40c7f76e8d30c31:2fe20"Host:
26、http:/www.bayde n. com/HTTP/1.1 304 Not Modified 因为一个 HTTP304 响应仅仅包含头, 没有 body, 所有它在穿越互联 网的时候要比携带了资源的快很多,尽管如此, HTTP/304 响应需 要一个服务器的往返,但是通过细心的设置响应头, web 程序员可 以消除这种因素,甚至是有条件的请求。缓存相关响应头 通常缓存机制是由响应头来控制的。 HTTP 规范描述了 Header 控制缓存, The optionalCache-Control , Expires (过期)。Expires 头包含一个绝对的日期, 当超过此日期, 它将不会被考虑
27、更 新了。Table 2. CommonCache-Control HeadersValueMeaningThe response may be stored inpublicany cache, including caches shared among many users.The response may only beprivatestored in a private cache used by a single user.The response should not beno-cachereused to satisfy futurerequests.The response s
28、hould not be reused to satisfy future requests, and should not beno-storewritten to disk. This is primarily used as a security measure for sensitive responses.The response may be reused tomax-age=#secondssatisfy future requests within a certain number of seconds.The response may be reused to satisfy
29、 future requests, but themust-revalidateorigin server should first be contacted to verify that the response is still fresh.Cache-Control 头的参数设置:Public 响应会被缓存,并且在多用户间共享。Private 响应只能够作为私有的缓存,不能再用户间共享。No-cache 响应不会被缓存No-store 响应不会被缓存,并且不会被写入到客户端的磁盘里,这 也是基于安全考虑的某些敏感的响应才会使用这个。Max-age=#sec on ds响应将会某个指定的秒
30、数内缓存,一旦时间过了,就不会被缓存。Must-revalidate 响应会被重用来满足接下来的请求,但是它必须 到服务器端去验证它是不是仍然是最新的。如果你要想在iis中配置缓存,请参阅温软的知识技术文章:How to Modify the Cache-Control HTTP H eader When You Use IIS .你可以学习更多关于在中使用缓存的知识文章:How To Cache in ASP.NET by Using Visu al C# .NET .如果你发现你经常在你的网站上更新文件,但是并没有更改文件名字,那你就必须要非常小心地设置你的缓存生存时间。例如:如果你要一个
31、thisyear.gif 图片文件显示当前的年份在网站上,你需要保 证这个缓存过期时间不能超过一天,否则一个用户 在12月31号访 问你的网站的时候,在1月1号就不能显示正确的日期。由于某些原因,服务器可能会设置:Progma : no-cache 头,Cache-c on trol: no-cacheHeader中的参数:Vary 是一个缓存信号,Vary : User-Age nt 表示缓存当前的响应,但是仅限于当发送同样的User-Age nt头的时 候。指令 Vary : * 就相当于 Cache-Control : no-Cache 。Vary 就相当于 中的缓存的参数一样, 意思是
32、根据什么来缓 存,如果要是知道 的缓存的使用方法,就很容易明白这个 参数的意思。使用HTTP会话列表,Fiddler用户可以看到在页面里包含的HTTP缓存头。Fiddler 会话列表如果响应不包含Expires或者Cach eControl,那么客户端就会被迫作为一个有条件的请求, 来保证所有的资源都是最新的。有条件的请求和WinlnetCacheIE通过Microsoftwindows Internet Services来最大程度的利用缓存服务。WinInet允许用户配置缓存的大小和行为,设置缓存进行如下操作:1 打开IE,2 工具选项,选择I nrernet选项,在一般子选项中,临时 文件
33、夹内,点击设置下图就是选村的四种设置:标记性能问题:你可以使用F iddler的自定义规则来标记某些你需要的,比如如果某个响应大于2 5KB,你可以把当前的Sessio n标记为红色,更加醒目。以下代码都是在 OnBeforeResponse 事件中:/ Flag files over 25KB if (oSession.responseBodyBytes.length > 25000) oSession"ui-color" = "red" oSession"ui-bold" = "true" oS ession"ui-customcolumn" = "Large file" 同样,你也可以标记响应并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国农业银行信用借款合同2
- 建筑废弃物分类处理服务合同
- 银行网点内部清洁合同
- 散货堆场租赁合同
- 酒店管理工作室职员招聘协议
- 面包车租赁合同范本
- 2025鞋厂合伙经营合同范本【标准版】
- 航空地面设备租赁协议
- 研究所劳动合同范例
- 影剧院装修泥工施工合同模板
- 医疗器械税务筹划
- 生物化学(华南农业大学)智慧树知到期末考试答案2024年
- MOOC 技术经济学-西安建筑科技大学 中国大学慕课答案
- 2023年急诊科护士长年终工作总结报告
- 2024年中国消防救援学院招聘笔试参考题库附带答案详解
- 临床用血知识培训课件
- 【基于价值链探析的战略成本管理探究:以长城汽车为例9400字】
- 口语交际《复述与转述》指导及同步练习
- 学前教育就业指导
- 2024电化学储能考试题库含答案
- 教师教学创新团队工作总结
评论
0/150
提交评论