导读:
Fiddler(中文名称:小提琴)是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
Fiddler官方网站提供了大量的帮助文档和视频教程,这是学习Fiddler的最好资料
- Fiddler_官方网站:https://www.telerik.com/fiddler
- Fiddler官方文档:<https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureFiddler?ga=2.179498276.1265936032.1590122951-786729012.1590122951>
- Fiddler_官方视频:https://www.telerik.com/videos/fiddler
- Fiddler_官方插件:https://www.telerik.com/fiddler/add-ons
![fef3a964cff7b90a93e6a41cc35653b5.png](https://img-blog.csdnimg.cn/img_convert/fef3a964cff7b90a93e6a41cc35653b5.png)
一:Fiddler主要特点
![eabf1dabdd6df258cdd424259d603d82.png](https://img-blog.csdnimg.cn/img_convert/eabf1dabdd6df258cdd424259d603d82.png)
![9b386acaf3d90cf7c076f17f59ca7564.png](https://img-blog.csdnimg.cn/img_convert/9b386acaf3d90cf7c076f17f59ca7564.png)
![c4ba5ad388b40a3c52cf5ef1973ddfcc.png](https://img-blog.csdnimg.cn/img_convert/c4ba5ad388b40a3c52cf5ef1973ddfcc.png)
二:简要概述下主要功能
- 监控HTTP或者HTTPS的流量,截获浏览器或者客户端向服务器发送的HTTP或者HTTPS请求
- 查看截获后请求的内容
- 伪造服务器返回的请求,伪造一个请求发送给服务器,方便前后端调试
- 测试网站性能
- 解密HTTPS的WEB会话,通过FIDDLER可以解密操作
三:Fiddler运行环境
![2971e857a0490cbc54fb8261ae2c83b6.png](https://img-blog.csdnimg.cn/img_convert/2971e857a0490cbc54fb8261ae2c83b6.png)
注:Fiddler不能跨平台,仅支持Windows
四:Fiddler工作原理
![4a40938f7d49d8f4fbdaf248a5ae6428.png](https://img-blog.csdnimg.cn/img_convert/4a40938f7d49d8f4fbdaf248a5ae6428.png)
在客户端和服务器端之间创建了一个代理服务器,客户端发起的所有的请求都要通过FIDDLER创建的这个代理服务器才能到达最终它所请求的服务器
五:Fiddler下载和安装
- 下载地址:https://www.telerik.com/download/fiddler
- 安装比较简单,这里不做过多介绍
六:使用场景
我们在什么情况下才会去使用Fiddler呢
- 开发,测试,生产环境hosts修改
通常修改hosts需要修改系统文件,在多个环境下切换不是很方便,Fiddler提供了相对高效的hosts修改方法
![7c4c825b146b70a07db9903604e4a31c.png](https://img-blog.csdnimg.cn/img_convert/7c4c825b146b70a07db9903604e4a31c.png)
![84ad1b15adee9a6058e9d8b531058e25.png](https://img-blog.csdnimg.cn/img_convert/84ad1b15adee9a6058e9d8b531058e25.png)
- 前后端接口调试(获取接口URL,请求报文及响应结果)
Fiddler可以直接在界面进行相关配置
![2c7ac6b73d278bf5db586b725e654de0.png](https://img-blog.csdnimg.cn/img_convert/2c7ac6b73d278bf5db586b725e654de0.png)
- 辅助定位生产bug
Fiddler可以将发布文件代理到本地,方便快捷定位线上bug
第一步:在右侧窗口的顶部菜单找到AutoResponder,前面有个闪电的图标。 第二步:点击Add Rule按钮,选中的文件就会出现在下面紫色框中。 第三步:点击Local file to return or *Action to execute的下拉框。 第四步:选择下拉框的最后一项Find a file... 第五步:点击Save保存规则。
![a28a2a1520552a60731a3ca902349e38.png](https://img-blog.csdnimg.cn/img_convert/a28a2a1520552a60731a3ca902349e38.png)
![b87c7942a4d0268de777f17a907e927d.png](https://img-blog.csdnimg.cn/img_convert/b87c7942a4d0268de777f17a907e927d.png)
- 性能分析和优化
前端性能在一定程度可以提升用户体验,而前端的性能数据可以通过Fiddler的Statistics和Timeline来获取,从而为性能分析及优化提供依据
![e0c2a340d5dbf395c6b4955cc807d864.png](https://img-blog.csdnimg.cn/img_convert/e0c2a340d5dbf395c6b4955cc807d864.png)
七:Fiddler的两代理模式
Fiddler代理模式有两种,分别是:流模式(Streaming)和缓冲模式(Buffering),默认是缓冲模式 流模式可以理解为一种实时通信的模式,Fiddler会实时的把服务器返回给客户端应用程序的数据返回给我们。 缓冲模式是等所有请求都到了再一起返回,也就是等所有数据都准备好了以后才返回给客户端。 流模式更接近于浏览器本身真实的行为,而缓冲模式可以控制最后的服务器响应。在实际使用中我们可以根据具体的实际情况来选择代理模式。在界面上的切换操作很简单,就是Stream按钮的按下与弹起的区别。
![508846c253bd5d199e7be5e52105e8d8.png](https://img-blog.csdnimg.cn/img_convert/508846c253bd5d199e7be5e52105e8d8.png)
七:Fiddler各功能点详解
- 工具栏
File:用于导出Session、打开新的Fiddle窗口、保存会话等功能。 Edit:用于复制session、host、url、header等、remove session 、标记、以及find Seesion Rules:用于创建规则规则过滤会话。例如可以隐藏掉图片类型的请求,或者304的请求之类 Tools: 主要是工具,可在options中设置Fiddler的端口号、Https的请求、connnection等。也可以清除cache View :主要用于Fiddler窗口显示上的问题,例如可以设置ToolBar是否显示等 - ToolBar(工具面板)
![9f13be4b736f7cf7e4bfa761f76fb366.png](https://img-blog.csdnimg.cn/img_convert/9f13be4b736f7cf7e4bfa761f76fb366.png)
![505e401a2dbb2463ff8624b054507c17.png](https://img-blog.csdnimg.cn/img_convert/505e401a2dbb2463ff8624b054507c17.png)
- 会话面板
![d9817551ac2705af1305bc0c2b09d427.png](https://img-blog.csdnimg.cn/img_convert/d9817551ac2705af1305bc0c2b09d427.png)
不同的响应类型:
![59edd9a856c2c0ddfe530deefd9b9aae.png](https://img-blog.csdnimg.cn/img_convert/59edd9a856c2c0ddfe530deefd9b9aae.png)
- 状态面板
![4b1f4dc3e6822727e2c87d492efcb8d4.png](https://img-blog.csdnimg.cn/img_convert/4b1f4dc3e6822727e2c87d492efcb8d4.png)
命令解释help打开官方的使用页面介绍,所有的命令都会列出来cls清屏 (Ctrl+x 也可以清屏)select选择会话的命令?.png用来选择png后缀的图片bpu截获requestbpafter截获response