一、工作原理
Fiddler是一个代理服务器。代理地址:127.0.0.1,端口:8888
本地应用(包含客户端、浏览器、app)与服务器之间的所有请求和响应,由fiddler进行转发,此时fiddler以代理服务器的方式存在。由于所有的网络数据都需要经过fiddler,因此,fiddler能够截取数据信息,实现网络数据抓包。
1、Chrome浏览器查看代理服务器路径:
设置 > 系统 / 搜索框直接输入 “代理” 检索 > 找到 “打开您计算机的代理设置” > 连接tab栏下点击 “局域网设置” > 找到 “代理服务器” > 在 “高级” 中就能看到代理地址:127.0.0.1和端口:8888
2、关掉Fiddler,代理服务器会自动取消。
如果Fiddler非正常退出,因为Fiddler没有自动注销,可能会造成网页无法访问,解决的办法是重新启动Fiddler。
二、核心功能
Fiddler可以干什么,用的最多的功能如下:
定位前后端bug:
抓取协议包,前后端联调
接口测试:
发送自定义的请求,模拟小型接口测试
构建模拟测试场景:
数据篡改,重定向(重新连接类似于电话转接意思)
弱网测试:
模拟限速操作,弱网,断网
前端性能分析及优化
三、抓包对比
1、Fiddler与F12区别
相同点:
- 都可以对http、https请求进行抓包分析
不同点:
- F12无法抓取app端请求,而Fiddler工具可以完成
- F12无法修改请求数据,请求之前和请求之后,而Fiddler工具可以完成
- F12可以在console控制台输入部分命令,方便查看前端的数据信息
2、Fiddler与Charles区别
- 系统:fidder用于windows系统抓包,抓取浏览器数据传输 、windows客户端、手机安卓系统;charles只能在mac系统运行,专对苹果系统的电脑macOS和手机ios,专有苹果抓包工具。
- 开源:fidder免费;charles收费(可试用30天)
- 界面:fidder简单清晰适合新手;charles界面更复杂适合有经验,功能更强大,界面设计更现代化,提供自定义选项,有一些扩展功能,有一些高级选项。
- 功能:都具备抓包、断点调试、请求替换、构造代理等等。fidder支持所有类型网络流量,比如典型http、https,还允许插件扩展工具安装;charles自带高级功能ssl代理,重放请求,处理复杂网络调试任务更灵活。(面更扩展)
- 场景:正常掌握fiddler就OK了
抓包工具方向:F12 > Fiddler > Charles(免费期间可以去体验一下)由浅入深
以上就是Fiddler与其它常见抓包工具对比总结,仅供参考!
四、界面翻译
Fiddler界面从上到下分为:菜单栏、工具栏、回话列表、功能页签、命令行,状态栏六大板块!如下图所示:
1、菜单栏介绍
File菜单
1、Capture Traffic:Fiddler抓包开关(开启/关闭状态)
2、New Viewer:打开一个新的fiddler窗口
3、Load Archive:用于重新加载之前捕获的以SAZ文件格式保存的数据包
4、Save:支持以多种方式把数据包保存到文件中
5、Import Sessions.... :支持导入从其他工具捕获的数据包,也支持导入以其他格式存储的数据包
6、Export Sessions... :把Fiddler捕捉到的回话以多种文件格式保存
7、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler
Edit菜单
1、Copy:复制会话
2、Remove :删除会话
3、Select All:选择所有会话
4、Undelete:撤销删除会话
5、Paste as Session:把剪贴板上的内容粘贴成一个或多个模拟的会话
6、Mark:选择一种颜色标记选中会话
7、Unlock for Editing:解锁会话
8、Find Session... :打开Find Session窗口,搜索捕获到的数据包
Rules菜单
1、Hide Image Request:隐藏图片回话
2、Hide CONNECTS:隐藏连接通道回话
3、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。lgnore Image触发器控制这些断点是否作用于图片请求。
4、Customize Rules... :打开Fiddler脚本编辑窗口
5、Require Proxy Authentication :要求客户端安装证书。该规则可以用于测试HTTP客户端,确保所有未提交Proxy- Authorization请求头的请求会返回HTTP/407响应码。
6、Apply GZIP Encoding:只要请求包含具有gzip标识的Accept-Encoding请求头,就会对所有响应使用GZIP HTTP进行 压缩(图片请求除外)。
7、Remove All Encoding:删除所有请求和响应的HTTP内容编码和传输编码。
8、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的所有回话。
9、Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送。
10、User-Agents:把所有请求的User-Agent请求头设置或替换成指定值
11、performance:模拟弱网测试速度
Tools菜单
1、Options... :打开Fiddler选项窗口
2、WinINETOptions... :打开IE的Internet属性窗口
3、Clear WinINETCache:清空IE和其他应用中所使用的WinINET缓存中的所有文件
4、Clear WinINETCookies:清空IE和其他应用中所发送的WinINETCookie
5、TextWizard... :选项会启动TextWizard窗口,对文本进行编码和解码
6、Compare Session:比较回话
7、Reset Script:重置Fiddler脚本
8、Sandbox:打开http://webdbg.com/sandbox/
9、View IE Cache:打开IE缓存窗口
View菜单
1、Show Toolbar:控制Fiddler工具栏是否可见
2、Default Layout、Stacked Layout、Wide Layout:三种界面布局
3、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M)
4、Squish Session List:控制回话列表是否水平收缩
5、AutoScroll Session list:添加新的回话时,自动滚动到回话列表底部
2、工具栏介绍
1、备注功能 2、重新发送请求(快捷键R,多次重放&简单的压测测试:Shift+R) 3、删除请求(删除选中请求:Delete,删除非选中的请求:Shift+Delete,删除所有请求:Ctrl+X) 4、当有请求前断点时,点击去发送请求 5、流模式(默认是缓冲模式) 6、解码 7、保持回话的数量 8、选择你想要抓包或者监听的程序 9、查找(快捷键:Ctrl+F) 10、保存所有会话,文件名以.saz为扩展名
11、截图 12、计时器 13、快捷的打开IE浏览器 14、清除IE缓存 15、文本的编码解码工具 16、分离面板 17、MSDN查询 18、本机的信息
3、回话列表详解
会话(session)即Fiddler抓取到的每条http请求数据包。
主要包含:1、请求的ID编号 2、http响应状态码 3、会话使用的协议 4、请求发送到的服务器主机名 5、数据包在服务器中的路径和文件 6、响应body的字节数 7、响应头信息Cache-Control的值 8、响应头信息Content-Type的值 9、发起请求的本地windows进程 10、注释 11、自定义备注
4、功能页签详解
Statistics页签
通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。访问页面时选 择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多, 从而对页面的访问进行速度性能优化。
inspectors页签(常用页签)
它提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求 展示,下部分为响应展示。
AutoResponse页签(常用页签)
它可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返 回都是404的数据包读取本地文件作为返回内容。
composer页签(常用页签)
支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。
FiddlerScripts页签
打开Fiddler脚本编辑
log页签
打印日志
Filters页签(常用页签)
过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。
Timeline页签
时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接 受数据等阶段。把多个请求以时间作为X轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个 回话,Timeline便会显示指定内容从服务端传输到客户端的时间。
5、命令行工具详解
Fiddler命令行可以输入命令操作回话列表,常见命令有:
help 打开官方的使用页面介绍,所有的命令都会列出来
cls 清屏(Ctrl+X也可以清屏)
select 选择所有相应类型的回话(如select image或select css)
?sometext 查找字符串并高亮显示查找到的会话
size 选择请求响应大小小于size字节的会话
=status/=method/@host 查找状态、方法、主机相对应的会话
1uit 退出fiddler
bpafter xxx 中断URL包含指定字符的全部回话响应
bps xxx 中断HTTP响应状态为指定字符的全部回话响应
bpV xxx 中断指定请求方式的全部回话响应
bpm xxx 中断指定请求方式的全部回话响应。等同于bpv xxx
bpu xxx 与bpafter类似
6、状态栏详解
1、Capturing:代表Fiddler正在捕捉,点击它即关闭Fiddler捕捉(同时Capturing消失)
2、显示当前捕捉哪些进程:
All Processes 捕获所有进程的请求
Web Browsers 捕获Web浏览器的请求,应该特指IE
Non-Browser 捕获非 Web 浏览器的请求
Hide All 隐藏所有请求
3、显示当前断点设置状态,通过鼠标点击切换。有三种:
不设置断点
所有请求在断点处被暂停
所有响应在断点处被暂停
4、显示当前共捕获了多少回话:(如:3001,表示共捕获了3001个会话,如:1/3001,表示当前选择1个会话,共捕获3001个会话)。
5、第五区块,描述当前状态:
如果是刚打开Fiddler,会显示什么时间加载了CustomRules.js;如果选择了一个会话,会显示该会话的URL;如果在命令行输入一个命令,就会显示命令相关信息。
如果觉得不错,请点赞。谢谢.
版权归原作者 Jackfruit_ 所有, 如有侵权,请联系我们删除。