Fiddler是一款强大的抓包工具,主要是原理是通过代理获取前端到后端整个请求过程中的请求数据和响应数据。使用fiddler前需要下载fiddler安装包,使用fiddler抓包前注意提前下载并安装证书到对应的浏览器或安卓手机平台。
本文以各类实站操作加上图文的方式极速入门fiddler。
一:常用功能
1、页面介绍下图把页面分为四块:黄色区域:为菜单及工具区域;红色部分:为session会话区域;蓝色部分为:请求查看区域;绿色部分为:响应查看区域;
①菜单及工具区域:菜单主要有捕获请求,保存请求,载入本地session,设置捕获规则等菜单内容;
工具主要是当前session的一系列操作,如eplay再次请求,
②session会话区域:改区域会对抓取的请求从1开始自上而下开始排序。主要包括响应状态码result,
请求协议protocol,请求域名(Domain name) Host,URL资源路径和GET参数,BODY请求大小以字节计算,caching是否缓存及缓存有效时间,content/type请求及响应的格式,process进程内容及格式,comments,可自定义session备注,custom可自定义脚本中的值
③请求查看区域:在inspectors中,可通过多种方式查看请求报文信息。主要有Headers,webForm,cookie,Auth,Raw,Json,XML
④响应查看区域:在inspectors中,和请求查看区域类似。
2、过滤功能:过滤是很强大的功能,可以过滤掉不需要的http请求,也可以过滤掉不需要的url格式如css,image,html,还可以过滤请求报文大于或者小于指定大小(byte)的请求。
3、抓取功能:HOst中发现不只有一个子域名,这个其实说明在很多网站的架构中,大多需要多个子域名处理不同的功能,如缓存静态资源需要子域名,媒体资源也需要子域名,数据统计也需要子域名。
4、保存功能:鼠标右击session,点击save可以保存单条或者所有请求报文request或者响应报文response。如图保存了抓取的所有请求报文。在发现有可疑的请求情况下。通过保存功能然后分析报文是很重要的。
5、#标识的意思:每个标识表示的请求类型都不同。
二:其他功能
1、查看性能数据:statistics中可以查看某个HTTP请求的性能相关数据分析。如DNS解析时间,TCP/IP消耗时间,其中overall Elapsed表示是从前端发送请求报文到后端返回响应报文的总时长。图示为0:00:00.28秒。
2、重复发送某个请求:如图抓取到评论接口后点击Replay完成第二次评论。
3、Insepectors内容:Textview可以查看响应报文中的HTML/css/js内容,Raw中是原始HTTP请求头和响应头,Auth中包含授权Proxy-Authorization 和 Authorization的相关信息,cookie则包含请求cookie和响应set-cookie内容。
4、ASutoresponder:强大的功能之一。拦包后重定向至本地资源路径,操作步骤如图:该接口被重定向至本地资源后对比。关于ASutoresponder的详细使用可以参考官方文档
除了find a file支持重定向至本地资源外,Fiddler内部还提供内置的多种重定向资源(下图红框内),如需要修改服务器的脚本文件,可以先拦截该脚本文件到本地,修改后调试没问题的情况下再到服务器修改脚本内容。从而保证了再真实环境下的测试减少bug的可能性。
5、composer:此功能可以对抓取的包修改后请求。操作步骤在paras中修改accept, host, referrer, cookie,cache-control信息或者在Raw中构建请求体,操作步骤如下图。(提醒:禁止使用此功能侵害任何安全道德weifa行为。如使用本文概不负责)
6、Fitter中的client process:该功能可以选定某个进程,session框只抓取该进程的接口。一般用于对单一应用的请求进行调试时使用。如图所示以某笔记应用为例。Fitter中的Hosts:该功能可以过滤选择需要的Hos域名。如下图二www.feizui.com只会匹配到对应的host请求。
7、命令框:支持输入内置命令。
命令一:select 文件格式后缀 :选中所有该文件,如下图一select html选中所有HTTP的Html请求;命令二:?任意字符: 选中该字符匹配到的url请求的所有HTTP,如图二输入命令?ds.js;
命令三:>size或<size:选中字节(body字段,以d为单位)的所有HTTP请求,如图三输入>31;
命令四:= status:如图四=200为选出所有状态码为200的HTTP,HTTPs请求;
命令五:@HOST:选中所有该HOST后缀的请求,如图五@baidu.com选出对应的请求。
8、断点调试:以一个web本地项目为例,打开后设置响应后断点,可以通过bpu localhost、菜单栏Rules after response breakpoint设置,此时如图二已经显示该接口已被挂起来了,点击TextView,输入修改的响应内容,点击run to compeltion .回到浏览器,输入url后返回设置的页面。如下多图显示。取消断点:输入go即可。
关于Fiddler的相关功能非常强大,深入FIddler需要更多的学习和努力,Fiddler不是一个“简单”的抓包工具。