Web调试利器fiddler介绍

转载:http://blog.chinaunix.net/uid-27105712-id-3738821.htmlcss

  最近在使用fiddler,发现这个真是很是最犀利的web调试工具,笔者这里强烈推荐给你们;fiddler不论是对开发仍是测试,仍是产品;都是不可多得的工具;开发用来抓包定位问题; 测试用来抓包,回放测试记录,构造发包用例。产品用来抓包记录现场。html

在介绍这一利器以前,咱们先瞻仰一下他的做者Eric Eric目前就任于微软。。fiddler最新版本下载地址http://fiddler2.com/get-fiddlerweb

相信不少人遇到和笔者相似的经历,好不容易找到个破解版本的httpwatch,却该版本发现其不支持chrome或firefox。或者想要构造发包请求,却又要换到firefox,由于firefox有比较多得这样插件。另外想要抓起手机获取其余平台如MAC,目前同类型的工具中,比较少有会对其全面兼容支持。chrome

因此笔者推荐这款fiddler工具,主要看中其三点优点:一、功能强大,其余工具备的功能它也有,其余工具没有的功能它也有,支持http,https,ftp等协议;二、彻底免费,长期免费。三、全部的浏览器可使用,全部的平台均可以使用。就冲着这三点,就值得拥有。windows

Fiddler功能太多,本人也只是在平时工做用用到他的部分功能,也没有深刻全面的研究,这篇文字只是抛砖引玉,有兴趣的能够全面仔细的研究该工具。本文主要内容介绍工做中经常使用的五个经常使用功能点:浏览器

一、 用fiddler 抓http(s)的包,保存,回放。session

二、 使用fiddler配置host架构

三、 查看每次请求的IPcomposer

四、 使用fiddler构造请求Post包。函数

五、 使用fiddler的统计功能,观察server性能;

六、使用fiddler中断功能,进行调试跟踪

 

 

在介绍fiddler使用方法以前,我想先介绍一下fiddler原理,明白原理后,使用起来会更驾轻就熟。
    

 

      由上图能够看出,Fiddler使用代理方式,让客户端全部数据流都发给它,而后有钱转发给目标server,目标server的回包发给fiddler,再由fiddler转发给客户端。因此不论是Request仍是Respone数据包都通过了fiddler,fiddler能进行截获和分析。正是他这样架构优点,才有其其余工具没法作到的强大功能,其不光是支持这些IE, Chrome, Safari, and Opera浏览器的抓包,还支持一些客户端的http(s)抓包,前提是这些client支持http代理配置。
    
   

 


   先介绍一下Fiddler界面布局介绍:
     

 

 

 


      

一、 抓包,保存,回放

启动fiddler,不须要对浏览器作任何配置,自动开启了抓包的功能,fiddler状态栏是开启开关,值得一提的是fiddler作的比较人性化,启动时候自动配置浏览器的proxy项。在Tools-》WinNet Options这里能够查看,也能够在IE选项里面查看。fiddler在退出的时候自动关闭

 

 

 

 

     另外咱们通常状况下不须要看全部的http请求,须要过滤抓到的包:根据须要对url关键字或内容关键字进行过滤,这里就须要使用filter配置了
       

 


   

    保存或记录:选择左侧栏的session;而后File-》Save保存,fiddler使用.saz文件扩展名

    回放:选择file –》 load archive;点击工具栏replay,回放;

二、 使用fiddler配置host

这个功能主要做用就是不须要每次配置hosts都到windows目录下去修改hosts文件;能够直接方便在fiddler界面里面配置便可;方便快速的配置本身的测试host。

 

三、 查看每次请求的server ip 和端口
  咱们知道,每一个域名会对应多个ip,咱们通常不能直接看出此次请求是发到那台机器上去了,yng每次分配请求ip是dns轮询的,有时候想要肯定请求是发到哪一个机器上。Fiddler支持脚本开发功能,扩展自定义菜单。这里使用脚本加上显示ip的功能。

 



修改完后,重启fiddler;抓包,选择一条session,右键选择Properties,这样就会打开一个记事本,里面有X-HOST指示server的IP,以下图:

 



若是以为每次点击打开一个记事本比较麻烦,还能够把IP显示在Session列里面,按照下面步骤去配置
 Step1 :打开菜单Rules-》customize Rules; 打开CustomRules.js;
 Step2 :查找” var m_AlwaysFresh: boolean = false;”这一行;添加这段代码      

  1. public static RulesOption("Show Server IP", "Per&formance") 
  2.                  var m_ShowServerIP: boolean = false;

  如图

 


 step3:找到OnBeforeResponse函数,添加下面这段代码
 

  1. if (m_ShowServerIP){ 
  2.                 oSession['ui-customcolumn'] += ' ' + oSession.m_hostIP; 
  3.             }

   如图所示

 

 

  Step4:配置完后,重启fiddler,打开Rules-》Performance-》show server IP;能够看到每一个request的ip
  

 

四、 使用Fiddler构造Http请求Post包。

开发的时候有时候想测试Post的接口,可是没法使用浏览器测试,由于浏览器只能输入GET请求;因此常常须要本身写一些代码或使用firefox一些插件来完成post请求动做;如今有fiddler横空出世,这一切都再也不是问题。使用composer构造Post请求,点击execute发送请求,以下图

 

五、 使用fiddler统计功能,能统计数据量,按host统计请求数,一个请求从链接到收发包,关闭各个阶段的时间统计,这些数据对优化网站,分析性能很是有帮助;

 

 

 

六、 使用fiddler调试中断功能

这个功能能够在数据包发送以前,修改请求参数;在收到应答包,在js解析和浏览器渲染以前,修改返回结果。有了这个功能,开发者就能够修改不一样参数测试server,同时也能够修改返回包测试本身的js函数,或测试页面渲染。使用者功能要用到fiddler的命令行。由于这个菜单里面是中断全部的请求

 


若是咱们要中断某个cgi的请求,就使用命令行,命令行的介绍请参考http://fiddler2.com/documentation/KnowledgeBase/QuickExec,譬如咱们要调试CU网站,能够输入 bpu www.chinaunix.net. 中断请求

 

 

   
     在querystring里面修改请求参数, 若是要中断应答 则使用 bpafter

 

PS:fiddler最强大的功能仍是其FiddlerScrip功能,这块尚未作过研究,后续在深刻研究一下。语法请参考http://fiddler2.com/documentation/KnowledgeBase/FiddlerScript

相关文章
相关标签/搜索