zoukankan      html  css  js  c++  java
  • fidder从基础到熟练

    一、fidder介绍

    1Fiddler是一款由C#语言开发的免费http调试代理软件,有.net 2 .net 4 两种版本。Fiddler能够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据。

    2Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。

    3Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的httphttps请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展

    4、你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。

    5Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具

    二、fidder下载及安装

    Fiddler的官方网站:  www.fiddler2.com

    打开Fiddler 2官方网站,点击屏幕下方“Get Fiddler. It's FREE”或者屏幕右上角“Get Fiddler”均可进入下载页面

     

    这样就可以完成下载了

    注意:

    如果电脑中安装的.netframework2.0版本,则下载左侧的“Fiddler 2“,4.0版本,则下载右侧的“Fiddler 4

    判断.netframework是否安装

    1、查看C:WINDOWSMicrosoft.NETFramework,这目录下是否有v(版本号)文件夹;有就是装了;

    2、单击“开始”——“运行”,并在“运行”对话框中键入 regedit,确定。在“注册表编辑器”中,找到下表中的“注册表项名称”,并查看相关 .NET Framework 的值,即可查看是否安装,也能知道版本。

     

    安装过程就不再介绍了

    三、fidder的工作原理

    Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler

     

     

    四、Fiddler如何捕获HTTPS会话

    默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler  Tool->Fiddler Options->HTTPS tab

     

    点击OK就可以啦

    五、fidder界面介绍

     

    主界面中主要包括四个常用的块:

    1.Fiddler的菜单栏,上图绿色部分。包括捕获http请求,停止捕获请求,保存http请求,载入本地session、设置捕获规则等功能。

    2.Fiddler的工具栏,上图红色部分。包括Fiddler针对当前view的操作(暂停,清除session,decode模式、清除缓存等)。

    3.web Session面板,上图黄色区域,主要是Fiddler抓取到的每条http请求(每一条称为一个session,主要包含了请求的url,协议,状态码,body等信息,详细的字段含义如下图所示:

     

    4.详情和数据统计面板。针对每条http请求的具体统计(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。如inspector面板下,提供headerstextviewhexview,Raw等多种方式查看单条http请求的请求报文的信息:

     

    composer面板下,则可以模拟向相应的服务器发送数据的过程(不错,这就是灌水机器人的基本原理,也可以是部分http flood的一种方式)。

     

    也可以粘贴一次请求的raw http headers,达到模拟请求的目的:

     

    Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。最简单如:过滤内网http请求而只抓取internethttp请求,或则过滤相应域名的http请求。Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求:

     

    六、开始抓包

    开始抓包前,先了解一下抓包的含义:

    抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

    开始实践:

    Fiddler抓取HTTP请求:

    抓包是Fiddler的最基本的应用,以本博客为例,启动Fiddler之后,在浏览器中输入https://home.cnblogs.com/blog/ 键入回车之后,在Fiddlerweb session界面捕获到的HTTP请求如下图所示:

     

    各字段的详细说明已经解释过,这里不再说明。需要注意的是#号列中的图标,每种图标代表不同的相应类型,具体的类型包括

     

    另外,注意请求的host字段。可以看到有来自多个www.csdn.net的子域名的响应,说明在大型网站的架构中,大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)。

    右键单击其中的一条请求。可以选择的操作有:save(保存请求的报文信息,可以是请求报文,可以是响应报文)。例如,我们保存的一条请求头信息如下:

     

    不仅是单条session,Fiddler还支持保存所有抓取到的session(并支持导入),这对于抓取可疑请求然后保存,并在之后随时分析这些请求是很有帮助的。

    如果想要重新发送某些请求,可以选中这些请求,然后点击工具栏中的reply.就可以重新发送选中的这些请求。

    左键点击单条HTTP请求,可以在右侧的tab面板中看到如下信息:

    1. Statistic

    关于HTTP请求的性能和其他数据分析:

     

    我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息

    2.Inspectors

    分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息

     

    3. AutoResponder

    Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后(本例中的规则是将http://blog.csdn.net/ohmygirl的请求拦截到本地的文件layout.html,如下图所示

     

    然后在浏览器中访问http://blog.csdn.net/ohmygirl,得到的结果实际为:

     

    这刚好是本地layout.html的内容,说明请求已经成功被拦截到本地.当然也可以使用Fiddler的内置响应。下图是Fiddler支持的拦截重定向的方式:

     

    因此,如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本之后,再修改服务器端的内容,这可以保证,尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。

    不仅是单个urlFiddler支持多种url匹配的方式:

    I. 字符匹配

    example可以匹配 http://www.example.comhttp://example.com.cn

    II. 完全匹配

    EXACT开头表示完全匹配,如上边的例子

    EXACT:http://blog.csdn.NET/ohmygirl

    III. 正则表达式匹配

    regex: 开头,使用正则表达式来匹配URL

    如:regex:(?insx).*.(css|js|PHP)$  表示匹配所有以css,js,php结尾的请求url

    4. Composer

    老版本的fiddler中叫request-builder.顾名思义,可以构建相应的请求,有两种常用的方式构建请求:

    (1)Parsed 输入请求的url之后executed即可,也可以修改相应的头信息(如添加常用的accept, host, referrer, cookiecache-control等头部)后execute.

    这个功能的常见应用是:“刷票”(不是火车票!!),如刷新页面的访问量(基于道德和安全原因,如果你真去刷票,刷访问量,本博客概不负责)

    (2)Raw。使用HTTP头部信息构建http请求。与上类似。不多叙述

    Fiddler另一个比较强大的功能。Fiddler提供了多维度的过滤规则,足以满足日常开发调试的需求。如下图示:

     

    过滤规则有:

    a. hostzone过滤。可以过滤只显示intranet或则internetHTTP请求

    也可以选择特定域名的HTTP请求

     

    b. client process:可以捕获指定进程的请求。

    这对于调试单个应用的请求很有帮助。

    其他更多的设置可以参考fiddler的官方文档。

  • 相关阅读:
    零基础学python-2.24 一些常用函数
    零基础学python-2.23 模块
    零基础学python-2.22 回到我们的游戏 加入文件和异常
    tcp协议:三次握手四次挥手详解---总结
    centos7安装jmeter + ant
    centos7安装jenkins
    centos7安装tomcat
    centos7安装jdk (jdk-8u161-linux-x64.tar.gz 和 java-1.8.0-openjdk* 介绍)
    波浪场景jp@gc
    阶梯场景jp@gc
  • 原文地址:https://www.cnblogs.com/hht147/p/6929699.html
Copyright © 2011-2022 走看看