51Testing软件测试论坛

标题: 最全面的 Fiddler 教程讲解 [打印本页]

作者: 草帽路飞UU    时间: 2022-7-28 15:39
标题: 最全面的 Fiddler 教程讲解
一.Fiddler 介绍一.Fiddler 简介

fiddler 是由 C# 开发的最强大好用的免费web调试工具之一,可记录所有客户端和服务间的 http 以及 https 请求,可监视设断点,甚至修改输入输出数据,它还包含了一个强大的基于事件脚本的子系统,并且能使用 .net 语言来拓展。

二.此文结构介绍

此文依据 fiddler 的界面按钮的排版来依次讲解这些按钮的作用,主要讲解 fiddler 界面上的 7 大板块,从菜单栏→工具栏→底端状态栏→命令行控制台→ session 栏→ request 栏→ response 栏来依次讲解,但是 fiddler 某些常用功能的详细使用方法没有放在此文中讲解,为防止文章过长,具体的功能使用将放在另一篇博文中叙述

二.Fiddler 工作原理

Fiddler 以代理 Web 服务器的形式工作的,使用代理地址为 127.0.0.1,端口 8888,当 fiddler 开启时自动开始代理,关闭 fiddler 时自动注销,这样就不会影响其他程序。只要是支持 http 代理服务器的任意程序都可以被 fiddler 嗅探到,fiddler 的运行机制其实就是本机上监听 8888 端口的 HTTP 代理。
注意一下,要是 fiddler 没有正常退出,可能造成 fiddler 没有正常注销,使得页面没法访问。fiddler 的学习过程是对http相关协议知识的一个学习同时对该协议了解的越多,fiddler 的学习也就越容易。
关于什么是代理服务器,代理服务器的相关知识可见这篇博文:HTTP 代理知识点

[attach]139913[/attach]

[attach]139914[/attach]

Fiddler 的代理模式有流模式和缓冲模式,其中流模式是一种实时通信模式,请求之后实时的返回,更接近浏览器真实行为,另外一种是缓冲模式,等所有请求到了再一起返回,可以来控制最后的服务器响应,实际中我们可以根据具体场景选用不同代理模式,fiddler 默认缓冲模式,这里可改变

[attach]139915[/attach]

三.Fiddler 菜单栏

Fiddler 菜单栏共有 6 个板块,如下:

[attach]139916[/attach]

1.File

这里与文件导入导出加载有关

[attach]139917[/attach]

[attach]139918[/attach]Import Sessions…:从目标文件夹及其子文件夹加载所有 SAZ 文件。缓存和重用密码。
支持导入从其他工具获得的流量
[attach]139919[/attach]
Export sessions:支持用fiddler把捕捉到的 sesison 用多种方式保存。CURL 脚本由 CURL 回放;参见 CURL
[attach]139920[/attach]
2.Edit

这里主要是鼠标点击编辑的一些操作

[attach]139921[/attach]

Copy:用来拷贝请求的相关信息。有用于复制在 web session 列表中选中的 session 信息,包括 just URL(选中的 session 的 URL 复制到剪切板中)、this column(拷贝菜单所在列的文本)、terse summary(选中 session 的简要说明复制到剪切板里)、header only (把 session 请求头复制到剪切板里)、session(把整个的 session 列表都复制到剪切板里)、full summary(把列表中显示的所有 session 信息复制到剪切板里)这些功能

[attach]139922[/attach]

Remove:主要是用来移除左侧边栏中的 session

[attach]139923[/attach]

[attach]139924[/attach]
3.Rules

这里主要是一些规则的选择

[attach]139925[/attach]

[attach]139926[/attach]
[attach]139927[/attach]
Performance:此项提供影响 web 性能的简单选项。若选中了 simulate modem speeds,它会设置所有后续 session 的 flag,把 request-trickle-delay 标志设置为 300,所有上传数据延迟 300ms/kb,若把 response-trickle-delay 标志位设为 150,会使所有下载数据延迟 150ms/kb。若选中了 disable caching,将会删除所有 If-None-Match和If-Modified-Since 请求头,并添加 Pragma:no-cache 请求头,选中该项还会删除响应中的所有 Expires 头,并把 Cache-Control 响应头设置成 no-cache,该项无法阻止浏览器重用在所用该选项之前所缓存的响应,在选中该选项后,为了得到最佳结果,最好是清空浏览器中缓存。若选择 Catch Always Fresh 会自动响应所有包含 http/304 响应的有条件的 http 请求,表示客户端缓存是最新的,当访问的站点无法正确的设置缓存失效日期时,该选项可以极大的提高性能。
[attach]139928[/attach]
4.Tools

这里提供各种支持 fiddler 的工具

[attach]139929[/attach]

Options…:打开 Options 窗口,是 fiddler 抓包的一些设置项,包括对抓取接口是 http 还是 https 的设置,获取证书,设置代理端口号等功能

[attach]139930[/attach]

WinINET Options…:打开IE浏览器的 options 进行设置

[attach]139931[/attach]

[attach]139932[/attach]






作者: 草帽路飞UU    时间: 2022-7-28 16:18
HOSTS:主机重定向工具。若在其中勾选 Enable 框,然后在下面加入 host 配置,点击保存之后,这个配置并不会修改到本地 hosts 中,取消勾选就会失效,若点击 Import Windows Hosts File 将会导入本地的 host 文件内容


5.View

提供各种视图功能




AutoSave:自动保存设置

APITest:api 调试

Statistics:查看一个请求的统计数据

Inspectors:嗅探,用来查看会话的内容,上面是请求,下面是响应

Composer:设计构造,在 Composer 中进行请求的修改,可以把 session 框中的数据先清除,然后点击 Composer 中的 Excute 按钮来发送请求,请求出现在 session 框中

6.Help

帮助功能



四.Fiddler 工具栏

1.WinConfig
windows 使用了一种叫做“AppContainer”的隔离技术,使得一些流量无法正常捕获,在 fiddler 中点击 WinConfig 按钮可以解除这个诅咒,这个与菜单栏 Tools→Win8 Loopback Exemptions 功能是一致的

2.
此按钮来给选定的 session 添加注释



点击此按钮并且拖动到你想要捕获的浏览器从而实现只捕获某个浏览器的请求

手动点击运行,手动点击暂停终止14.Browser
打开浏览器来查看响应数据

五.Fiddler 底端状态栏


           此处显示请求的 url 网址
六.Fiddler 底端自带命令行控制台

Fiddler 控制台有许多自己的快捷键和命令来方便快速的操作 fiddler,拿到自己想要的 session,这一块的功能性内容将放在另一篇博文中讲解
七.Session 栏一.右键 Session 列

session 框中的列有:


当右键点击session框中的列时,可以发现有5个功能


分别是仅搜索该列;标记列中的相同项并将相同项背景滤为黄色;隐藏列该列;确保所有的列都是可视的;定制列,可以增加其他的列名,通过下图来增加,并且还可以改变列名


二.Session 栏中各个列讲解

三.右键 Session 框

在session一栏中右键点击会出现





作者: 草帽路飞UU    时间: 2022-7-28 16:28
本帖最后由 草帽路飞UU 于 2022-8-11 16:21 编辑

[attach]139979[/attach]
Save:Save 可以保存相应的文件
[attach]139980[/attach]
Remove:移除
[attach]139981[/attach]
Filter Now:过滤当前 session
[attach]139982[/attach]
[attach]139983[/attach]
Replay:请求重发的相关功能
[attach]139984[/attach]
Select:选择需要的 session
[attach]139985[/attach]
八.Request 栏

在 request 栏中有 9 个大的标签页,分别是 Inspector,AutoResponder,Composer,Fiddler Orchestra Beta,Fiddler Script,Log,Filters,Timeline,Statistics,按照这个顺序讲解一下

1.[attach]139986[/attach]这里是查看某个 session 的请求和响应,响应的话专门置为一栏讲解,请求的话又可分为 10 个小的标签页。并且右键点击这 10 个标签页可以查看 Inspector的属性还有诸如 copy as image 和隐藏标签页的功能
[attach]139987[/attach]


9.:里头包含该 session 请求的统计数据,包括请求次数,请求与响应字节数,信息头和体各有多少字节,以及连接时间点,响应信息类型,最后,下面有个全球性能估计的数据:

[attach]139990[/attach]
九.Response 栏

这里包含 13 个小的标签页面,分别是 Transformer,Header,TextView,SyntaxView,ImageView,HexView,WebView,Auth,Caching,Cookies,Raw,JSON,XML

[attach]139991[/attach]


1.Transformer:这里显示了响应体的字节数,这里头的 Chunked Transfer-Encoding 和 HTTP Compression 是分块传输编码和 HTTP 压缩技术,这就需要 http 的知识了
[attach]139992[/attach]



作者: zsg    时间: 2023-4-18 16:58





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2