时间: 2011-12-27 / 分类: WEB后端编程 - 开发与实践 / 浏览次数: / 0 个评论 发表评论
WebService开发中HTTP除错与分析的强大调试工具之Fiddler2
黄金分割与摄影构图
12条经典摄影技巧
项目前端开发的架构
WEB前端开发中的一些编程风格和书...

写了一个HTTP和Fiddler的PPT演示。

HTTPandFiddler@2011-12-27.PPTX

童话故事里的结为常常以「王子与公主结婚之后,就过者幸福快乐的生活」,而在资讯科技的世界中「RD 与IT 将网站布署后,才是挑战的开始」可是一点都不为过。WEB 布署之后,中间没遇到任何的小问题还真是神话级的传说,压力测试软体虽然可以测定负载临界值,诶无法测定WEB Application 中的枝末,虽然在当下看来没什么,从长期的角度来看,可能为后面的灾难种下了变数。

如果说IE8 的Developer Tools 是分析CSS 结构与Script 除错的好帮手,那Fiddler2 就可以说是IE 与Server 之间的通讯分析器了。2 的功能非常的强大,可以帮助IT 与RD 人员处理不少很难发现的问题,了解介面的意义后才可以更犀利的应用Fiddler 帮助我们进行Debuging 的工作。

  • Fiddler运作原理
    Fiddler是透过Proxy的原理拦截HTTP的内容,当启用Fiddler时,IE的PROXY设定会变成127.0.0.1:8888,所有HTTP的协定均会透过Proxy (Fiddler)与WinINET后才会到达浏览器呈现。
  • Web Session界面解析
    「要了解如何追求心仪的女性,就必须先了解她的想法」,同样的,要充分利用Fiddler前,就必须先了解介面的功能。Fiddler虽然只是个600多KB的小软体,但其分析的功能绝对超过600KB的等级。在这一部分TigerLin会对Fiddler介面做个简单的介绍,让各位先了解各项目的功能与用途。首先是进入Fiddler后的左边区域,此区域是[Web Session]区域,会显示所有的HTTP通讯过程与Request内容,在这一个区域中可以巨细靡遗的列出IE与WEB通讯的细节,每个栏位都有其意义。  [#] – Request的顺序,可看到进入网站后的页面档案读取顺序[Result] – HTTP状态回应码,可依据回应码判断网页内容是否异常。EX: 200为正常,304为重导向,404为找不到档案,500为伺服器错误。[Protocol] -所使用的通讯协定[Host] -档案的来源伺服器[URL]-档案的完整URL [Body] – Request的大小(以Byte计算) [Caching] -快取的各种属性[Content- Type] -档案的类型,这个栏位有时是很重要的除错依据,下面会说明到。[Process] -是由哪个执行绪(程式)与通讯埠连接至目标image_thumb

接着我们看右边的区域,此区域跟左边区域是息息相关,在这里我们就针对每个页签做解说~ 

  • [Statistics]功能页签
    Request的回应秒数与传送的大小以及HTTP回应状态码的总计,下方的Chart功能可让文字的报表转换成简单的圆饼图进行查阅。image_thumb1
  • [Inspectors]功能页签
    详细的HTTP Request与Response资讯分析,可浏览每个Request中包含的资讯,如jpg的Request使用ImageView就可看到图片,Html使用TextView可看到内文。TigerLin最常浏览的是Header与Raw的项目功能,可以撷取与Server通讯的Header部分进行IE与WEB Server丛集间的除错,帮助TigerLin确认丛集的设置是正确的。XML项目功能则是可以分析AJAX的XHR执行状态,但这一部分较少用到,所以不多加着墨。image_thumb2
  • [AutoResponder]功能页签
    可将目前浏览的网页换至上自己指定的物件,老实说这个功能除了可以测试某个区域的物件换至外,还真想不到另外的用途,为一想到的是测试网页的时候可以不用动用HTML,详细用法可看看官方影片Using the Fiddler AutoResponderimage_thumb3
  • [Request Builder]功能页签
    HTTP动词产生器,可以测试WEB SERVER是否有利用动词进行攻击的漏洞,TigerLin大多都用此功能测试IIS URLScan的阻挡动词功能是否有设置成功。image_thumb4
  • [Filters]功能页签
    将Web Session透过指定的条件进行过滤,还可设定中断点进行分析,可用在分析网页图片总KB数时先进行过滤,也可隐藏所有成功的需求(HTTP 200)只显示异常的处理,善加利用可增加分析的速度唷~image_thumb5
  • [Timeline]功能页签
    将所有需求依照顺序以及时间常躲做横向的图表展现┘可轻易的发现页面中是哪个档案造成页面缓慢,稽核WEB速度的时候非常好用。image_thumb6

 

而Fiddler 的强大分析功能可以让Web Developer 与IT 人员进行快速的除错,下面我们列举6 个常用的案例:

  1. 档案下载回应404,但路径确实存在
  2. 页面档案使用比例
  3. 页面下载时间分析
  4. RAW HTTP Request 检视分析- 伺服器版本隐藏
  5. RAW HTTP Request检视分析- WEB丛集的设置正确性
  6. 抓Flash 的引用档案
  • 档案下载回应404,但路径确实是存在的
    这是一个之前帮客户处理的案例,话说Web Application已经撰写完成,且布署至正式环境了,资料库与应用程式完全正常,唯独有一区影片播放的功能完全出不来。RD人员经过详细的检查后,确认影片档案有存在于WEB上的路径,但就是一直读不到,客户也在那边不停抱怨。
    使用Fiddler进行分析后,发现影片档案有准备要载入,但回应一直都是404,影片的名称是”xxx. FLV ” ,看到影片副档名当下就知道了原因。
    在IIS6中,预设的MIME Type是不支援FLV的档案型态,解决方式则是将FLV加入到MIME类型即可。加入之后再以F5 Reload一次,影片就可以正常拨放了。小技巧分享:有时WEB的404并不是档案真的遗失或路径错误,而是跟Server的设定有关系。当发生难搞的404错误时可以转向检察MIME看看,搞不好问题就在那边呢。
  • 页面统计资讯报表
    文字型的统计报表,透过简单但又不失详细的数据呈现资讯。藉由HTTP状态码的统计,可迅速得知在浏览的过程中有几个档案找不到,而又有几个是被重导向。基本上某些404不会影响网页的运作,但基于完美主义的坚持下,TigerLin一般都是让404为0才觉得让人舒坦(洁癖><)。
    档案大小的总合是以Byte为单位,这部份的数据TigerLin会搭配Timeline功能一起进行稽核,如果数据异常的大,加上Timeline时间拉很长,则表示页面或图形上的处理不够完整。大型的档案会让频宽迅速耗用,藉由此功能可稽核是WEB的频宽流量到达极限需要升级,或是不用花冤望钱调整一下即可改善。image
  • 页面下载时间分析
    画面中除了看到档案依序被载入的顺序外,最重要的是每个档案所花费的时间比例。如果档案越大,中间的时间条就会拉得很长,马上就可以知道页面慢的元凶是哪一个档案,而Timeline的另外一个应用则是可以测试网路连线的品质,之前将客户的网站放在机房,因客户的连线品质较差,便一直质疑是机房的乱品质不稳定,打电话一直抱怨外还要求减价…机房的频宽明明就很好,TigerLin这边测试就是很快,但客户可不相信片面之词…硬要凹到底。这时TigerLin就请另外两位MSN上的朋友一起用Fiddler读取客户网站的首页,并将Timeline抓下来,并将三个Timeline处理成一份简单的Word报告传给客户,并告知客户它们的线路品质能较差,请他们至电给ISP询问一下。正所谓No Picture No True,电话马上就安静下来了… 😀image
  • RAW HTTP Request检视-伺服器版本隐藏
    在预设状态下,Server的HTTP Response Header会有伺服器的版本资讯,除此之外还有很多的资讯。一般而言,伺服器的版本流露出去可能会有已知漏洞但尚未修补的情况下,伺服器很容易就变成了箭靶并且被攻陷。在这里TigerLin会使用RAW HTTP的检视功能进行确认,在之前的文章IIS安全性延伸模组URLScan 3基本设定-参数区段意义一文中有说明RemoveServerHeader参数的作用,如果设置正确时伺服器版本是完全不会出现在Header当中(详见下图),这也是常用的RAW HTTP检视功能之一。image
  • RAW HTTP Request检视- WEB负载平衡丛集的设置正确性
    大型环境与高负载的WEB SERVER通常会有两台或以上,无论是使用硬体的InBound Load Balance或是采用Windows NLB Cluster、Failover Cluster…等丛集技术,以往测试丛集是否有设定成功时都需要先将WEB的某个页面做一点变更,例如首页中用注解加注”WEB-1″的字眼以供辨识。搭配Fiddler要确认负载平衡是否有成功无需如此的麻烦了,利用RAW HTTP Header检视的功能就可以轻易的达到~于Server-Side设定HTTP主机标头,名称为X-WebFarm,内容设定为Web Server 1 ,IIS 6与7位置不同请参阅下图。接下来使用Fiddler观察RAW HTTP Header,就可以看到刚刚设定的自订标头了,这个技巧可以应用在许多的环境,非常实用。imageimage
  • 完整的抓取Flash的档案  
    抓取Flash档案有什么稀奇的?很多软体都可以做到,但Fiddler更厉害,了目前页面读取的以外,连SWF中Load Movie载入的其他SWF都可以将Request抓取到,各位可以到马达加斯加2的官网http://www.uip.com.tw/madagascar2/teaser.html看看,了页面上正在播放的SWF外,Fiddler可是连其他读取的档案都被抓出来了。接下来只要对要下载的SWF按下Ctrl + U就可以复制网址下载了。image
  • 参考连结
    Fiddler2官方网站http://www.fiddler2.com
    Fiddler PowerToy – Part 1: HTTP Debugging http://msdn.microsoft.com/en-us/library/bb250446.aspx
http://www.dotblogs.com.tw/tigerlin/archive/2009/04/02/7801.aspx
      站点地图 | 关于我 | 返回顶部
    Copyright © 2001-2013 { amiku.cn | zhangshunjin.com }. Powered by 

    阿米酷

    张顺金


    浙ICP备11002820号-1