Fiddler PowerToy-第一部分:HTTP 调试

Fiddler PowerToy-第一部分:HTTP 调试

作者:Eric Lawrence

Microsoft Corporation

January2005

软件要求:

    Microsoft Internet Explorer

     Microsoft .NET Framework
     Microsoft Fiddler PowerToy

概述:本文将介绍您在开发和测web应用程序和客户端时如何去使用Microsoft Fiddler HTTP调试器。

内容:

Fiddler简介

开始Fiddler

使用fiddler

使用fiddler进行性能测试

使用fiddler测试

扩展Fiddler

总结

 

简介

您对IE怎么与您的web应用程序通信感到疑惑吗?当想去跟踪它们怎么通信,您遇到困难吗?您对cookie的发送、网页下载的缓存内容感到好奇吗?

Fiddler能帮助我们回答象上面这样的问题更多的问题。Fiddler是一种可以记录您电脑和internet之间的http通信的http调试代理。Fiddler允许您察看全部的http通信,设置断点和篡改进出的数据。FiddlerNetMon和其他网络调试器更容易使用。

Fiddler含有一个简单而且强大的基于Microsoft Jscript.NET脚本事件的子系统,该子系统灵活性高,能够支持大批量的http调试任务。

 

开始Fiddler

安装

Ÿ   Fiddler要求windows2000及更高版本操作系统,大于10M的磁盘空间

Ÿ   首先确定您已经安转了.net framework version 1.1

Ÿ   下载从http://www.fiddlertool.com中下载fiddler

Ÿ   成功安装后,您可以在IE工具栏中找到 图标

Ÿ   如果不能找到图标,可以右键IE工具栏并选择“自定义”,您也可以通过开始菜单打开它

运行fiddler

启动fiddler后,fiddler将自动注册为Microsoft Windows Internet Services(WinInet)代理,HTTP层将被IEmicrosoft office等微软其他产品所使用。您可以通过查看ProxySettings对话框来检查fiddle是否正确截取请求。在IE工具——“internet选项——连接——局域网(LAN)设置——高级可以打开 ProxySettings对话框

 

1 IEProxySettings对话框

作为系统代理,在到达目标服务器之前,所有来自WinInetHTTP请求都必须流经Fiddler。同样,所有返回给客户端程序的HTTP 响应也得流经Fiddler

 

2 HTTP通信流图

在关闭fiddler后,它将自动注销对系统的代理。

 

使用Fiddler

界面预览

Fiddler的操作界面主要包括一个http会话列表和三个主要用来显示所选会话的相关信息的页签。

 

3Fiddler用户使用界面

上图中左边是一个HTTP会话列表

右边是几个页签,常用的三个页签如下:

performanceStatistics:显示所选会话的统计信息

sessionInspector:允许您查看和修改请求和响应

Request builder:允许您手动更改一个HTTP请求

 

使用fiddler进行性能测试

HTTP统计视图

通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。

 

4 statistics视图

另外,通过在会话列表中显示HTTP头信息,用户可以查看页面是否丢失了允许客户端或代理缓存的HTTP Expiration头信息。如果一个响应不包含Expires或缓存控制头信息,这个响应也许不能被客户端缓存。

 

5HTTP Expiration

 

使用Fiddler进行调试

对于HTTP的请求和响应,Fiddler支持断点调试.当到达调试位置时或者是HTTP请求或响应匹配我们制定的调试目的的时候,Fiddler能够暂停HTTP通信并且允许用户编辑。Fiddler的这项功能对于安全测试和一般性的功能测试是很有用的,因为请求或者相应的代码路径都能够被使用。

 

6:会话的Inspector检查视图

用户可以在Request Builder页签中手动添加一个HTTP请求,也可以从会话列表中拖动一个会话到Request Builder页签中,以便再次执行请求。

 

扩展Fiddler

使用.net frameworkFiddler是可扩展的。两种主要的扩展机制是:用户规则和Inspectors

使用脚本规则扩展Fiddler

Fiddler支持允许用户能够自动修改HTTP请求和响应的Jscript.NET事件处理引擎。该引擎能够在用户界面中修改会话的可视化外观,来使错误更见显眼或者完全从列表中移除用户不感兴趣的会话

下面的示例代码展示,当COOKIES被加载的时候,使UI变成紫红色。

static function OnBeforeRequest(oSession:Fiddler.Session)

{

   if (oSession.oRequest.headers.Exists("Cookie")){

      oSession["ui-color"] = "purple";

      oSession["ui-bold"] = "cookie";

   }

}

可以通过打开Fiddler,选择”Rules”——“Customize Rules…”,将打开一个文件文件,可以在这个文本文件中修改代码来定制用户想要的UI设置。

通过增加Inspectors来扩展Fiddler

用户可以添加用任何.net语言编写的Inspector对象。RequestInspectorsResponseInspectors提供一个格式特定并且不是很专业的HTTP请求和响应试图

Inspectors可以使只读[RO]或者是可读写[RW]的。如果是可读写的,则可以在服务端或客户段接收到HTTP请求/相应时,修改它。

默认情况下,Fiddler提供下列的Inspectors

Request Inspectors

Ÿ   [RW]Headers-显示请求的头信息和状态信息

Ÿ   [RW]TextView-在一个文本框中显示请求体

Ÿ   [RW]HexView-在一个十六进制视图中显示请求体

Ÿ   [RO]XML-按照xml dom 树形式显示请求体

Response Inspectors

Ÿ   [RW]Transformer-移除GZipDEFLATECHUNKED编码进行简单的调试

Ÿ   [RW]Headers-显示响应的头信息和状态信息

Ÿ   [RW]TextView-在一个文本框中显示响应体

Ÿ   [RW]HexView-在一个十六进制视图中显示响应体

Ÿ   [RO]ImageView-已图片的形式显示响应体,支持所有.net图片格式

Ÿ   [RO]XML-按照xml dom 树形式显示响应体

Ÿ   [RO]Privacy—如果P3P语法存在,则在响应的头信息中说明P3P

Ÿ    

总结

我们已经大致了解下了Fiddler.对此,您应该知道怎样去安装Fiddler,怎样去查看一个HTTP会话集的统计信息和怎样去查看HTTP会话原始的通信。

下一部分,我们将使用Fiddler高级功能来调试客户端/服务端怎么相互通信

 

Eric Lawrence IE团队的一个项目经理。在进入微软之前,Ericdot-com担任web开发人员。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值