中文版
https://pan.baidu.com/share/init?surl=eR9GY8E#dm2k
dm2k

简介

Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据(我一般用来抓包),Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务。

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

[Fiddler_官方网站](https://link.jianshu.com/?t=http://www.telerik.com/fiddler)
[Fiddler_官方文档](https://link.jianshu.com/?t=http://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler)
[Fiddler_官方视频](https://link.jianshu.com/?t=https://www.youtube.com/playlist?list=PLvmaC-XMqeBbw72l2G7FG7CntDTErjbHc)
[Fiddler_官方插件](https://link.jianshu.com/?t=http://www.telerik.com/fiddler/add-ons)

工作原理


Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler开启会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

主界面


Fiddler的主界面分为 工具面板、会话面板、监控面板、状态面板

工具面板


说明注释、重新请求、删除会话、继续执行、流模式/缓冲模式、解码、保留会话、监控指定进程、寻找、保存会话、切图、计时、打开浏览器、清除IE缓存、编码/解码工具、弹出控制监控面板、MSDN、帮助

两种模式

  • 缓冲模式(Buffering Mode)Fiddler直到HTTP响应完成时才将数据返回给应用程序。可以控制响应,修改响应数据。但是时序图有时候会出现异常
  • 流模式(Streaming Mode)Fiddler会即时将HTTP响应的数据返回给应用程序。更接近真实浏览器的性能。时序图更准确,但是不能控制响应。

会话面板


监控面板

  • 统计报表
  1. 请求总数、请求包大小、响应包大小。
  2. 请求起始时间、响应结束时间、握手时间、等待时间、路由时间、TCP/IP、传输时间。
  3. HTTP状态码统计。
  4. 返回的各种类型数据的大小统计以及饼图展现。
  • 时间轴
    每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴,用图表的形式展现出来,就形成了瀑布图。在Fiddler中,只要在左侧选中一些请求,右侧选择Timeline标签,就可以看到这些请求的瀑布图

  • 绿色的请求表示这是一个“有条件的请求”。HTTP 协议定义了 5 个条件请求头部,最常见的两个是“If-Modified-Since”和“If-None-Match”。服务器根据这两个头部来验证本地缓存是否过期,如果过期则正常返回资源的最新版本;否则仅返回 304 Not Modified,浏览器继续使用本地缓存。包含条件请求头部的请求用绿色显示,否则用黑色。

  • 有阴影线的请求是缓冲模式下的请求,实心的是流模式下的请求。Fiddler 提供了缓冲(Buffering)和流(Streaming)两种抓包模式:缓冲模式下,Fiddler 会在响应完成时才将数据返回给应用程序(通常是浏览器),这种模式下可以控制响应,方便地修改响应内容;流模式下,Fiddler 会实时返回响应数据给浏览器,但没办法控制响应。一般使用流模式,瀑布图会更真实一些。这两种模式可以通过 Fiddler 的工具栏选择。特别的,通过 Fiddler 的“AutoResponder”功能返回的响应,只能是缓冲模式。

  • 请求条的不同颜色对应着不同类型的响应,根据响应头的 MIME Type 来归类。如浅绿色表示图片类型的响应;深绿色是 JavaScript;紫色是 CSS;其它都是蓝色。

  • 请求中的黑色竖线,表示的是浏览器收到服务端响应的第一个字节这一时刻。这个时间受 DNS 解析、建立连接、发送请求、等待服务端响应等步骤的影响。

  • 请求条后面的图标表示响应的某些特征。如软盘图标表示这个响应正文从本地获得,也就是说服务端返回了 304;闪电表示这是 Fiddler 的“AutoResponder”的响应;向下的箭头表示响应是 302,需要重定向;红色感叹号说明这个请求有错误发生(状态码是 4XX 或 5XX)。特别的,如果请求条后面有一个红色的X,说明服务端响应完这个请求之后,断开了连接。出现这种情况一般有两种可能:HTTP/1.0 的响应中没有 Connection: Keep-Alive;或者是 HTTP/1.1 的响应中包含了 Connection: close。使用持久连接可以省去建立连接的开销,也可以减小 TCP 慢启动和其它拥塞控制机制带来的影响,总之是好处多多。

  • 请求前面的红色圆圈表示这个连接是新建的,绿色表示是复用的。上面的圆圈表示的是浏览器到 Fiddler 的连接,下面的圆圈是 Fiddler 到服务端的连接。

状态面板


控制台Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有:

命令 解释
help 打开官方的使用页面介绍,所有的命令都会列出来
cls 清屏 (Ctrl+x 也可以清屏)
select 选择会话的命令
?.png 用来选择png后缀的图片
bpu 截获request
bpafter 截获response

Request消息的结构

Response消息的结构


常用功能

  • 监听HTTPS
    Fiddler不仅能监听HTTP请求而且默认情况下也能捕获到HTTPS请求,Tool -> Fiddler Option -> HTTPS下面进行设置,勾选上“Decrypt HTTPS traffic”,如果不必监听服务器端得证书错误可以勾上“Ignore server certification errors”,也可以跳过几个指定的HOST来缩小或者扩大监听范围。


监听HTTPS

  • HOST切换
  • 模拟各类场景
  • 通过GZIP压缩,测试性能
  • 模拟Agent测试,查看服务端是否对不同客户端定制响应
  • 模拟慢速网络,测试页面的容错性
  • 禁用缓存,方便调试一些静态文件或测试服务端响应情况
  • 根据一些场景自定义规则
  • 低网速模拟有时出于兼容性考虑或者对某处进行性能优化,在低网速下往往能较快发现问题所在也容易发现性能瓶颈,可惜其他调试工具没能提供低网速环境,而强大的Fiddler考虑到了这一点,能够进行低网速模拟设置Rules > Performance > Stimulate Modem Speeds。
  • Compare(对比文本)
  • Composer(构造器)
    请求构造顾名思义就是我们可以模拟请求,也就是说我们可以借助Fiddler的Composer 在不改动开发环境实际代码的情况下修改请求中的参数值并且方便的重新调用一次该请求,然后相比较2次请求响应有何具体不同。任何一个请求参数只要是合法的取值再次调用后都会有相应的响应,那么你想要的任意一个合法请求组合自然也能够按照你的意愿构造出来,然后再次调用以及查看返回数据。

    将该请求鼠标左键单击拖入Fiddler右侧Request Builder标签内并修改原请求参数OutPutType=JSON为OutPu tType=XML,然后点击Execute按钮再次触发调用请求


双击这次请求包在Inspectors标签下查看返回数据为XML格式,而JSON格式一栏为空:

  • Filters(过滤监控)
    对一个重新载入的页面进行抓包,如果包的条目过多而你需要关注的就那么几项的话,可以使用Fiddler的过滤器Filters进行抓包,那么抓包时只会抓取你希望抓到的那些包。切换到Filters标签勾选Use filter,以便激活过滤器,这样下面的各种过滤方式就可以进行选择了。

  • AutoResponder(请求重定向)
    所谓请求无非就是需要调用到的一些资源(包括JS、CSS和图片等),所谓重定向就是将页面原本需要调用的资源指向其他资源(你能够控制的资源或者可以引用到的资源)。
  1. 你可以将前台服务器的诸多或者某个资源在本地做个副本,如果正常网络访问环境下该资源出现了BUG而导致开发环境崩溃时,可以先将这个资源的请求重定向到本地副本,这样就可以继续进行开发调试你的页面,从而大量节省资源维护的等待时间。
  2. 你也可以将多人同时维护的某个JS文件复制一份出来在本地,当你的开发调试收到他人调试代码干扰时,可以将这个JS的调用重定向到本地无干扰的JS文件,进行无干扰开发,功能开发完成并调试OK之后再将你的代码小心合入到开发环境中,这样就可以避免受到他人干扰专心搞你的模块开发,也就是说能够将JS文件脱离开发环境却不影响线上调试。
  3. 你还可以将样式文件或者图片指向本地。

移动端抓包

Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。
Fiddler能捕获IOS,Andriod,WinPhone,设备发出的请求,同理,也可以截获IPad, MacBook的等设备发出的HTTP/HTTPS。
前提条件是:安装Fiddler的机器,跟Iphone 在同一个网络里, 否则IPhone不能把HTTP发送到Fiddler的机器上来。

具体操作步骤如下:

  • Fiddler设置打开Fiddler, Tools-> Fiddler Options。(配置完后记得要重启Fiddler).

[参考资料:https://www.cnblogs.com/conquerorren/p/8472285.html]

Fiddler教程,比较经典全面相关推荐

  1. Fiddler学习】Fiddler教程,比较经典全面(转)

    简介 Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有 ...

  2. 转 fiddler教程

    Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...

  3. Fiddler 学习笔记--Fiddler 教程

    学习网址: 1.https://www.cnblogs.com/yyhh/p/5140852.html 2.https://www.cnblogs.com/FounderBox/p/4653588.h ...

  4. python学英语视频教程_python教程(入门, 经典, 英文)

    python教程(入门, 经典, 英文) 简介:经典之作, 秒杀各种python教材, 视频制作无可挑剔, 英文讲解非常通俗流利. 即可作为python的入门教程的首选, 又是很好的英文听力催眠视频, ...

  5. CAD功能工具全自学教程与经典实例

    CAD 功能工具全自学教程 与经典实例 课 程内容: 本教程内容系统.全面,指导读者完成综合利用CAD基本命令绘制平面图形,再到了解绘制工程图 的方法.技巧及 AutoCAD 高级应用的全过程.教程分 ...

  6. mysql 经典入门教程_MySQL 经典入门教程

    MySQL 经典入门教程 1 定义 数据库中的表:一行叫一条记录.每一列叫一个属性,或一个字段. 主键:表中的某个特殊字段,具有唯一的确定的值,可以根据该字段唯一的确定一条记录 外键:表中的某个字段的 ...

  7. Fiddler教程系列—介绍【必看】

    Title 前言 一.Fiddler简单介绍和界面介绍 1.HTTP和HTTPS 2.Fiddler介绍 3.Fiddler的安装和下载 4.Fiddler界面 5.Fiddler界面介绍(只是简单的 ...

  8. HTML教程入门经典

    时间: 2011-03-21 20:59责任编辑: 网页学习网 点击: 8732次 网页学习网提供的HTML教程,包括理论梳理.实例演示和课后作业.在本HTML教程中,你将学习如何使用HTML来创建站 ...

  9. 全网最全抓包攻略丨傻瓜式Fiddler教程大全丨手把手从安装到抓包

    前言 在我们做接口测试的时候,经常需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就需要用到抓包工具. 今天,给大家带来最常用的Fiddler的傻 ...

最新文章

  1. Delphi保存网页中的图片
  2. 博士申请 | 香港科技大学陈浩教授招收AI医疗方向全奖博士/博后/实习生
  3. SQL Server 动态生成数据库所有表Insert语句
  4. TP-Link路由器设置上网知识笔记
  5. wordpress linux伪静态,nginx下wordpress伪静态设置
  6. clion stfp 配置
  7. 最新搜索引擎网站提交登录入口和收录入口大全
  8. java 复制Map对象(深拷贝与浅拷贝)
  9. Python手动安装 package
  10. java ocx调用_Javascript调用OCX控件
  11. freeSWITCH之安装
  12. 在线制作证件照教程,只需30秒
  13. 剖析Linux的守护神
  14. 『解题报告』数学 - Standard Deviation (标准差) - UVA10886
  15. HTML5+app开发学习之调试篇
  16. Window.clearTimeout() 方法取消由 setTimeout() 方法设置的 timeout
  17. rk3288 android 6.0固件,[RK3288][Android6.0] 使用SD卡升级固件到eMMC
  18. 大众点评的大数据实践
  19. python dingding --- 钉钉机器人API
  20. 高斯光强matlab,光强分布MATLAB

热门文章

  1. python tableau工作流_提取数据
  2. 去安定医院看失眠,有必要吗?
  3. 死磕Java之Java核心语法
  4. Java虚拟机:什么是Java,kafka架构和原理
  5. 零差云控(zeroerr)erob80 I型开箱
  6. Floodlight 入门 之 起步篇 - 如何处理PacketIN消息
  7. 基于阿里云容器镜像服务加速K8S镜像下载(二)
  8. win7锁定计算机要密码吗,win7锁屏设置密码的方法_w7电脑锁屏密码怎么设置
  9. OS + linux command / Linux Command / Linux command / linux Command
  10. mysql 自动复制_MySQL 复制搭建(附mysql自动搭建脚本)