背景介绍:
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。Fiddler是用C#写出来的,它包含一个简单却功能强大的基于JScript.NET事件脚本子系统,它的灵活性非常棒,可以支持众多的http调试任务,并且能够使用.net框架语言进行扩展。
注:Fiddler因为设置代理的原因,在使用中可能会出现网络问题,直接关闭或者点击关掉左下角的capture就好了
Fiddler及Willow插件的安装
Fiddler有两个版本,下载地址 http://www.telerik.com/download/fiddler ,针对Fiddler2和Fiddler4,对应的Willow插件版本也是不一样的。本文使用和针对的主要是Fiddler4
官网介绍的主要功能如下:
-
Web调试,调试PC、Mac或Linux系统和移动设备的通信。确保适当的cookies,headers和缓存指令是客户端和服务器之间传输。支持任何框架,包括.NET,Java,Ruby等等。
-
性能测试,Fiddler让你一眼就看到加载页面权重-请求的数量和传输的字节,http缓存和压缩技术。也可以用Fiddler的自定义规则来关注潜在的性能问题.比如,你可以标记所有大于25KB的响应(Fiddler4要安装Fiddeler script)
-
HTTP/HTTPS流量监控,Fiddler是一个免费的web调试代理,记录了所有在你的电脑和互联网之间的HTTP(s)的流量,可以用它来调试几乎任何支持代理的应用程序比如IE,Chrome,Safari等
-
Web会话操作,容易操作和编辑web会话。你所需要做的就是设置一个暂停正在处理的会话和允许变更的请求/响应的断点。你也可以在Fiddler中编写自己的HTTP请求(也就是伪造请求)
-
安全性测试,使用Fiddler对你的web应用程序进行安全性测试——解密HTTPS流量,用man-in-the-middler解密技显示和修改请求。可以配置Fiddler解码所有流量或者特定会话的流量
-
定制Fiddler,受益于丰富的扩展模型,从简单的FiddlerScript到强大的扩展,可以使用任何.net语言来扩展,点击查看已有的扩展。
Fiddler原理:
在本机开启一个http的代理服务器,然后它会转发所有的http请求和响应到最终的服务器,如图所示
打开Fiddler后,Fiddler会自动篡改代理,打开ie的internet选项->连接->局域网设置->高级可以看到下图
通过更改浏览器的代理服务地址,Fiddler就可以截获所有发出的请求
Fiddler两种代理模式
流模式:(streaming) 实时传送给客户端(更接近于浏览器本身真实的行为)
缓冲模式: (buffering) 等http请求所有东西都准备好后才返回给应用程序(可控制最后的服务器响应)
在Fiddler的工具栏的Stream可以进行两种模式的切换,默认是缓冲模式
Fiddler使用场景
-
开发环境host配置,Tools->Hosts
-
前后端接口调试
-
线上bugfix,将线上项目代理到本地进行修改调试(AutoResponder,Willow)
-
性能分析和优化
工具栏常用功能介绍
-
Replay,回放会话,选中会话并按R键即可回放会话(可多条)
-
清空监控面板,快捷键ctrl+x
-
go 断点调试
-
stream切换代理模式
-
Decode 解压请求
-
keep all session选项可选保存会话的数量,默认的保存所有,保存的会话越多,fiddler占用的内存越大,可以设置下,而且调试也不希望看到太多会话,可以根据需要清空监控面板或过滤请求
-
All Process,可以用来控制如只捕获chrome浏览器的请求
-
Find 可以查找会话并选择颜色高亮标明
-
TextWizard 解码/编码功能,可选选项很多,避免去网上找解码工具