Fiddler使用教程
Fiddler是位于客户端和服务器端的http代理,目前最常用的http抓包工具之一,功能非常强大,是web调试的利器。
(注意:Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销。
这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。
解决的办法是新启动下Fiddler。)
主要功能:
1.监控浏览器所有的http/https流量;
2.查看、分析请求内容细节;
3.伪造客户端请求和服务器响应;
4.测试网站的性能;
5.解密https的web会话;
6.全局、局部断点功能;
7.第三方插件;
使用场景:
接口调试、接口测试、线上环境调试、web性能分析、判断前后端bug、开发环境hosts配置、mock、弱网断网测试。
主界面:
会话的概念:一次请求和一次响应就是一个会话。
修改监听端口:Options->connections->Fiddler listens on port;若不想做系统代理,取消勾选act as system ptoxy on startup即可。
工具条:
1.给会话添加备注信息
2.重放即重新加载当前会话(R键可以重放一次,Shift+R:弹出Repeat Count的界面,输入循环次数,就可以重放了)
3.删除会话选项(delete,删除其他的用:shift+delete)
4.放行,和断点对应
5.响应模式,即当Fiddler拿到远程的response后是缓存起来一次响应给客户端还是以stream的方式直接响应
6.解码。有些请求是被编码的,点击这个按钮后可以根据响应的编码格式自动解码
Keep All Session:保存会话占用内存
Any Pross选择你要监听的程序
7.查找会话
8.保存会话
9.截屏。截屏后,会以会话的方式返回一个截图
Clear Cache:清除缓存
TearOff:分离面板
Online:本机的在线信息
监控面板Session List(会话列表):Fiddler抓取到的每条http请求(每一条称为一个Session)。
主要包括了请求的ID编号,状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息。
Fiddler添加ip列:
运行fiddler,菜单,Rules->Customize Rules,打开“Fiddler ScriptEditor”;
Ctrl+F查找“static function Main()”字符串,然后添加以下代码:
FiddlerObject.UI.lvSessions.AddBoundColumn(“ServerIP”, 120, “X-HostIP”)。
辅助标签+工具:
1.Fiddler Statistics统计分析:HTTP请求的性能和其他数据分析,如DNS解析的时间,建立TCP/IP连接的时间消耗等信息。
2.Inspectors:检查器,可以多种方式查看请求的请求报文和响应报文相关信息。
格式化格式:Headers:以层级或分类进行查看;TextView:文本格式;SyntaxView:语法格式;WebForms:表单提交的方式。
3.AutoResponder(自动响应器):可用于拦截某一请求,进行如下操作:
重定向到本地的资源;使用Fiddler的内置响应;自定义响应。
4.Composer设计器:设计请求报文,然后执行。
5.Filters(过滤器):多维度的过滤规则,可根据主机、进程、请求头、响应头、状态码、响应类型和大小、断点进行请求的过滤。
Fiddler抓包可以完成我们移动开发者的调试测试需求。但是多余的网页请求和手机的其他链接影响我们手机开发的需求。所以我们需要
排除其他无用的包,只关注我们指定的域名的请求包。
6.断点分为局部断点和全局断点。
bpu:请求前断点;
bpafter:请求后断点。
设置断点请求,访问网页点击对应的会话,查看请求报文信息,修改请求内容,完成断点,放行,把该请求发送给目标服务器。
配置:
1.弱网测试
Rules->Customize Rules->Fiddler ScriptEditor->搜索simulate修改配置参数;
重启,设置Rules->Performance->Simulate Modem Speeds勾选上。
2.HTTPS抓包(谷歌和IE都是系统证书)
点击Tools->FIddler Options->HTTPS;勾选Decrypt HTTPS Traffic;如果抓不到,可以重新安装证书。
3.获取Firefox HTTPS流量(自己来管理自己的证书)
打开Firefox浏览器,选择选项按钮,点击高级,导出Fiddler证书,导入到火狐浏览器。
4.Android设备抓包
设置手动代理,主机名为Fiddler所在的主机的IP,端口为Fiddler监听端口;
打开Android设备浏览器,访问http://主机IP:8888/;
点击页面底部FiddlerRoot certificate下载证书;
打开下载好的FiddlerRoot.cer给手机进行安装;
浏览器打开百度,已经可以抓取HTTPS包了。
注意:测试完毕,关闭代理,否则手机无法上网。
5.ios设备抓包
(1)抓ios设备APP包-Fiddler设置
点击Tools->Fiddler Options->Connections,勾选Allow rmote computers to connect,重启Fiddler,确保防火墙允许Fiddler进程可以远程连接。
(2)ios设备连接WiFi
确保ios设备可以访问httpp://FiddlerMachineIP:8888,该地址会返回Fiddler Echo Service页面。
(3)ios设备抓包-ios设备设置
点击设置->Wi-Fi->打开连接的Wi-Fi设置;
点击配置代理->手动;
设置ios代理服务端地址为Fiddler所在主机的ip地址;
设置端口为Fiddler监听的端口;
点击存储,保存代理设置;
打开一个非HTTPS的网站,此时Fiddler已经可以捕获HTTP请求了。
(4)ios设备抓包-安装证书解密HTTPS
在ios设备打开浏览器,访问http://主机IP:8888/;
点击Fiddler Echo Service页面底部FiddlerRoot certificate下载证书;
打开FiddlerRoot.cer文件并安装;
Safer打开百度,已经可以抓取HTTPS的包了。
Fiddler插件安装:https://www.telerik.com/fiddler/add-ons。