0


Fiddler原理介绍&界面翻译



一、工作原理

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区别

  1. 系统:fidder用于windows系统抓包,抓取浏览器数据传输 、windows客户端、手机安卓系统;charles只能在mac系统运行,专对苹果系统的电脑macOS和手机ios,专有苹果抓包工具。
  2. 开源:fidder免费;charles收费(可试用30天)
  3. 界面:fidder简单清晰适合新手;charles界面更复杂适合有经验,功能更强大,界面设计更现代化,提供自定义选项,有一些扩展功能,有一些高级选项。
  4. 功能:都具备抓包、断点调试、请求替换、构造代理等等。fidder支持所有类型网络流量,比如典型http、https,还允许插件扩展工具安装;charles自带高级功能ssl代理,重放请求,处理复杂网络调试任务更灵活。(面更扩展)
  5. 场景:正常掌握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;如果在命令行输入一个命令,就会显示命令相关信息。

如果觉得不错,请点赞。谢谢.


本文转载自: https://blog.csdn.net/Jackfruit_/article/details/140755985
版权归原作者 Jackfruit_ 所有, 如有侵权,请联系我们删除。

“Fiddler原理介绍&界面翻译”的评论:

还没有评论