【工具】Fiddler使用教程
目录
概述 2
Fiddler是做什么的,能帮助我们做什么? 2
工作原理 2
代理模式 3
使用场景——提供的功能 3
界面及使用介绍 3
常用功能 10
HOST配置 10
前后端接口连调——Composer 11
网络限速FiddlerScript——测试在不同网络下的请求运行状况 13
捕获IOS/Android移动设备上的请求 14
插件介绍 15
附录一 16
图标解释: 16
web session的常用的快捷键 16
参考: 17
Fiddler:译名—小提琴手,有Eric开发,曾就职微软。
Fiddle支持多个平台的版本:
Windows: https://www.telerik.com/download/fiddler
Mac/Linux: http://fiddler.wikidot.com/mono
但是,由于早期fiddler是基于.net开发的,所以在windows平台下支持的功能更多,
在IOS\Linux的支持会相对少。
类似工具:Charles http://www.charlesproxy.com/
概述
Fiddler是做什么的,能帮助我们做什么?
1、能够监听http/httpS的流量,可以截获从浏览器或者客户端软件向服务器发送的http/https请求;
2、对截获之后的请求,我们还能够查看请求中的内容;
3、伪造请求。不仅可以伪造客户端的请求,还能够伪造服务器的响应。——该功能能够方便我们进行前后端的调式。
4、测试网站的性能;
5、解密https的外部会话。因为https本身是一种加密的协议,通过fiddle我们可以进行解密操作;
6、提供第三方扩展插件,满足更多需求。
工作原理
需要经过fiddler的代理服务器代为转发请求与响应。
如何实现?
首先启动fiddler,然后在浏览器中查看局域网代理服务器。图示:
可以看到代理服务器的地址变成了127.0.0.1 ,这就是fiddler监听的地址。
代理模式
流模式与缓冲模式。
流模式:fiddler会实时把服务器返回给客户端的数据进行返回。 缓冲模式:fiddler会等待所有的请求都准备好之后才返回给客户端。
区别:缓冲模式下可以控制最后的服务器响应;而流模式下不能控制,是什么就是什么,更接近浏览器本身的真实行为。
选择:具体情况具体选择。
使用场景——提供的功能
1、开发环境的host配置;
2、前后端接口连调——Composer
3、定位线上bug——将发布文件代理到本地,快速定位线上bug;
4、性能分析和优化——Inspectors 、Timeline
界面及使用介绍
[外链图片转存失败(img-GWk0X8A1-1568635818027)(https://img-blog.csdn.net/20171018112015233?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW1hZ2luZUNvZGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
1、菜单栏
2、工具栏
(1)气泡:备注。添加之后在会话栏的Comment列中显示备注内容。
(2)Replay:回放【常用】。重播一个会话。快捷键:”选中会话+R”
(3)清除会话面板:过滤请求、清除请求。
(4)Go:断点调式。配合状态栏上的断点工具。功能类似Debug。
(5)Stream:代理模式。默认:缓冲模式。点击进行切换。
(6)Decode:解压请求。解压http请求里面的东西,帮助查看。
(7)Keep:指示fiddler的保持会话数目。
(8)Any Process:捕获请求,只看需要的请求。将“靶心”投向需要的请求。
(9)Find:查找请求。用颜色标注查找的请求。
(10)Save:保存会话。
(11)截图:默认5秒后截图。
(12)计时器:第一次点击-开始计时;第二次点击–返回计时结果;第三次点击-清零,重新计时。右键点击—不计时。
(13)Browse:启动浏览器;
(14)Clear Cache:清空缓存;
(15)TextWizard:【常用】编码、解码文本内容;
(16)Tearoff:浮窗。
3、会话面板【fiddler核心功能之一】
Server IP:需要配置。
Ctrl+F :搜索”static function Main()”,添加代码:
FiddlerObject.UI.lvSessions.AddBoundColumn(“Server IP”,120,”X-HostIP”);
然后重启Fiddler。
4、详情和数据统计面板
(1)Statistics:数据统计面板。性能分析。
RTT:【主要关注】体现一个请求从发送到返回响应的时间。
通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。
(2)Inspectors :对抓到的请求进行解包,查看具体内容
(3)AutoResponder:文件代理【常用】。例如,将一个需要服务端返回的文件,使用本地文件做代理。
(4)Composer:前后端接口连调,伪造请求【常用】。实现不写任何js代码的情况下实现与服务端的接口调式。
(5)Timeline: 性能分析。对选择多个请求有意义。作用类似HttpWatch.
5、控制面板:
(1)命令行工具:执行一些快捷操作。
常见的命令有:
- help 打开官方的使用页面介绍,所有的命令都会列出来
- cls 清屏 (Ctrl+x 也可以清屏)
- select 选择会话的命令
- ?.png 用来选择png后缀的图片
- bpu 截获request
(2)状态栏:
Capturing:开启/关闭 fiddler的监听;
Web Browsers:过滤会话选择;
常用功能
HOST配置
将线上的服务器IP配置为指向本地服务器IP。将线上所有的文件的地址都映射到本地。
1、文件替换\线上bug调式——AutoResponder
(1)、可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。
因此,如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本之后,再修改服务器端的内容,这可以保证,尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。
(2)、不仅是单个url,Fiddler支持多种url匹配的方式:
I. 字符匹配 如 example可以匹配 http://www.example.com和http://example.com.cn
II.完全匹配 以EXACT开头表示完全匹配,如上边的例子 EXACT:http://blog.csdn.net/ohmygirl
III. 正则表达式匹配
以regex: 开头,使用正则表达式来匹配URL
如:regex:(?insx).*.(css|js|php)$
表示匹配所有以css,js,php结尾的请求url
(3)、操作——模拟
http://cn.babybus.com/join/index_campus.shtml下的function_campus.js文件
外链图片转存失败(img-gxbWFwAM-1568635818076)(https://img-blog.csdn.net/20171018113258340?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW1hZ2luZUNvZGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
前后端接口连调——Composer
选中一个接口——>拖拽到Composer面板;
准备工作:
接口请求方式、请求参数;
Get请求:参数直接写在接口里面
Post请求:参数写在Request Body里面。
同时,我们还能够伪造Request Header中的Cookie。
网络限速FiddlerScript——测试在不同网络下的请求运行状况
原理:将请求代码化。
OnBeforeRequest()表示在发送一个请求时需要做什么。
例如:
添加代码:
oSession[“resquest-trickle-delay”]=”3000”;//表示延时3秒请求;
oSession[“response-trickle-delay”]=”3000”;//表示延时3秒响应;
缺点:需要编写C#代码。
解决方案:使用图形化插件;
捕获IOS/Android移动设备上的请求
1)首先设置fiddler。菜单栏Tools—》Fiddler Options。
2)让你的电脑与移动设备处于同一个WiFi连接状态(不要使用VPN),然后命令行ipconfig查看本机IP。
3)使用你的移动设备在浏览器上访问本机IP加“端口号”。例如:192.168.1.28:8888,然后会出现一个Fiddler的证书,安装该证书。
4)设置你的移动设备。让设备处在WiFi连接,设置代理为手动。然后填写代理IP为你的电脑的IP,端口号为8888。
5)现在你就可以在手机上操作,例如访问浏览器,此时在fiddler就能监听到了。
插件介绍
插件下载地址:
http://www.telerik.com/fiddler/add-ons
例如:
Javascript Formatter——Javascript格式化插件
Traffic Differ——文件比较插件
第三方插件 Willow ——http代理插件
附录一
图标解释:
web session的常用的快捷键
CTRL+A: 选中所有的session;
ESC: 取消选中所有的session;
CTRL+I 反向选中;如果session已选中,则取消,否则选中;
CTRL+X 删除所有的session;
Delete: 删除选中的session;
Shift+Delete 删除所有未选中的session;
R 重新执行当前请求;
SHIFT+R 多次重复执行当前请求
U: 无条件重新执行当前请求,发送不包含If-Modified-Since 和 If-None-- Match的请求头;
SHIFT+U 无条件地多次重复执行当前请求;
ALT+Enter 查看当前session的属性;
Insert:切换是否用红色粗体标记选中的session;
M 给选中的session添加描述;
参考:
http://blog.csdn.net/fyifei0558/article/details/30283937
http://www.tuicool.com/articles/YBbm6fr
http://my.oschina.net/leejun2005/blog/399108
http://blog.chinaunix.net/uid-27105712-id-3738821.html
http://www.cnblogs.com/yuzhongwusan/archive/2012/07/20/2601306.html
http://blog.csdn.net/ohmygirl/article/details/17855031
http://www.tuicool.com/articles/uM7RRjj
http://blog.csdn.net/ohmygirl/article/details/17849983
————————————————
版权声明:本文为CSDN博主「ImagineCode」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ImagineCode/article/details/78271148
【工具】Fiddler使用教程的更多相关文章
- 高效前端优化工具--Fiddler入门教程
简介: Fiddler是用C#编写的一个免费的HTTP/HTTPS网络调试器.Fiddler是以代理服务器的方式,监听系统的网络数据流动英语中Fiddler是小提琴的意思,Fiddler Web De ...
- 抓包工具Fiddler使用教程
一.基本原理 Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888 二.Fiddler抓取https设置 1.启动Fiddler,打开菜单栏中的 Too ...
- 【转】抓包工具Fiddler的使用教程(十二)下:Fiddler抓取HTTPS
在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS 抓包工具Fiddler的使用教程(十二):[转载]HTTPS协议 再次回忆一下关键内容: iddler ...
- Fiddler系列教程1:初识Http协议抓包工具
1. Fiddler简介 Fiddler是用一款使用C#编写的http协议调试代理工具.它支持众多的http调试任务,能够记录并检查所有你的电脑和互联网之间的http通讯,可以设置断点,查看所有的“进 ...
- 【测试工具】http协议调试利器fiddler使用教程
转自:http协议调试利器fiddler使用教程http://bbs.phpchina.com/thread-207418-1-1.html Fiddler真乃神器!它和市面上常见的很多web调试器. ...
- 工具fiddler学习
1:Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理.能支持HTTP代理的任意程序的数据包都能被Fiddler嗅 ...
- 抓包工具Fiddler的使用
Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...
- [微信开发利器]微信内移动前端开发抓包调试工具fiddler使用教程
[微信开发利器]微信内移动前端开发抓包调试工具fiddler使用教程 在朋友圈看到一款疯转的H5小游戏,想要copy,什么?只能在微信里打开?小样,图样图森破,限制了oauth.微信浏览器内打开, ...
- fiddler2抓包工具使用图文教程
fiddler2抓包工具使用图文教程 三.fiddler实用功能使用说明: 1.fiddler捕获浏览器的会话: 能支持http代理的任意程序都能被fiddler捕获到,由于fiddler的运行机制就 ...
- 初识Http协议抓包工具—Fiddler
1.Fiddler简介 Fiddler是用一款使用C#编写的http协议调试代理工具.它支持众多的http调试任务,能够记录并检查所有你的电脑和互联网之间的http通讯,可以设置断点,查看所有的“进出 ...
随机推荐
- SpringCloud系列(一):Eureka 注册中心
在演示spring cloud之前得要知道我们为什么需要微服务框架. 先讲讲我的经历,以前我们做项目时所有功能都写在一起,只是做了分层(模型,数据,业务),所有业务逻辑都写在业务层,刚开始还好,等时间 ...
- mysql如何查询一个字段在哪几张表中
SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`COLUMNS` WHERE COLUMN_NAME = 'xxx' ; xxx替换成需 ...
- .NET CORE学习笔记系列 开篇介绍
ASP.NET Core学习和使用了一段时间了,好记性不如烂笔头,通过查阅官网学习文档和一些大神们的博客总结一下.主要路线先总结一下ASP.NET Core的基础知识,然后是ASP.NET Core ...
- Python之面向对象之初识面向对象
初始面向对象 一.面向过程:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大地降低了写成学的复 ...
- wepy框架换行
上图所圈的写法会造成如下图所示 在微信开发工具是没有问题的,在真机 运行下会出现空格问题. 解决如下:
- JAVA笔记20-容器之四Map接口、自动打包、泛型(重要)
一.Map接口 Map提供的是key到value的映射.key不能重复,每个key只能映射一个value. 注:重复是指equals,但用equals()方法效率低,所以此处用hashCode()方法 ...
- 为什么second是秒也是第二?
起源 早期在西方,一小时分为 60 分钟.后来,科学发达了.文明进步了,人们认为一分钟太粗放了.必须划分得更细致,于是就把一分钟划分成 60 等分.由于是对时间的第二次划分,就将新的 60 等分的“单 ...
- 使用Swagger自动生成文档
1.maven依赖 maven仓库(https://mvnrepository.com/)搜索springfox <!-- https://mvnrepository.com/artifact/ ...
- golang rabbitmq实践 (二 实现简单的消息收发)
1:驱动 本来打算自己写一个驱动的,后来发现github上面已经有了,那我就直接拿现成的了, 驱动采用 github.com/streadway/amqp ,直接import就可以啦! 2:excha ...
- CUDA开发指南
安装指南:https://blog.csdn.net/qilixuening/article/details/77503631 安装了anaconda不需要安装cuda和cudnn?:https:// ...