目录
一、Fiddler介绍
Fiddler是一个非常流行的、免费的Web调试代理工具,用于监控、捕获和分析所有通过计算机的HTTP(S)通信。Fiddler适用于Windows、Linux和Mac OS平台。
Fiddler具有以下强大的功能:
-
监控传入和传出的HTTP(S)流量:Fiddler允许用户查看所有HTTP(S)流量从客户端到服务器,这对于调试Web应用程序非常有用。
-
修改和调试请求:不仅可以查看请求和响应,用户还可以暂停Web会话,并手动修改HTTP请求和响应数据用于测试。
-
性能分析:Fiddler可以帮助分析Web应用程序的性能,包括页面加载时间和数据大小分析,帮助识别可能的性能瓶颈。
-
模拟客户端请求:通过修改请求头、用户代理等,Fiddler可以模拟来自不同浏览器或设备的请求,以测试服务器响应的差异。
-
测试网站的安全性:Fiddler可以测试网站的安全性,例如查看cookies和表单提交的数据,帮助识别潜在的安全问题。
-
HTTPS 支持:Fiddler能够解密HTTPS的流量,可以查看和修改HTTPS请求和响应。
-
扩展性:Fiddler支持自定义脚本和插件,允许用户根据需要扩展其功能。
-
跨平台:Fiddler Everywhere是最新版的Fiddler,特意为了提供跨平台支持而设计,可在Windows、Linux和Mac OS上运行。
二、Fiddler工作原理
所有的HTTP(S)请求和响应都会通过Fiddler,使它能够捕获、查看、修改这些请求和响应。
以下是Fiddler工作原理的基本流程:
-
代理服务器:安装Fiddler后,它配置系统使用Fiddler作为代理服务器。默认情况下,Fiddler代理运行在127.0.0.1(localhost)的8888端口上。这意味着所有HTTP(S)流量都被引导至这个地址和端口。
-
流量捕获:当浏览器或任何其他客户端应用发起HTTP(S)请求时,请求首先发送到Fiddler。Fiddler捕获这个请求,并在发送到目标服务器之前展示给用户。
-
请求修改:用户可以在请求继续前往服务器之前,检查和修改请求。修改可以包括改变HTTP头、请求体内容或者查询字符串等。
-
流量解密:对于HTTPS请求,Fiddler使用自己的证书作为信任的根证书来解密HTTPS流量。这需要用户在首次使用Fiddler时接受并安装Fiddler的根证书。有了这个证书,Fiddler就能“中间人”HTTPS连接,解密和显示HTTPS流量。
-
响应修改:当目标服务器回应请求时,这个响应也首先送到Fiddler。同样,在响应继续发送回原始请求客户端之前,用户可以检查并修改它。
-
性能分析:Fiddler不仅可以显示请求和响应的细节,还能分析交易过程中消耗的时间,帮助识别加载延迟或查找性能瓶颈。
-
脚本和自动化:Fiddler支持使用脚本(如FiddlerScript或SAZ文件)来自动化请求处理过程,比如设置断点、自动修改请求/响应等。
三、Fiddler概览
四、Fiddler界面详解
1.会话列表
名称 | 含义 |
# | 抓取HTTP Request的顺序,从1开始,以此递增 |
Result | HTTP状态码 |
Protocol | 请求使用的协议,如:HTTP/HTTPS等 |
Host | 请求地址的主机名 |
URL | 请求地址 |
Body | 请求体大小 |
Caching | 请求的缓存过期时间 |
Content-Type | 请求的响应类型 |
Process | 发送此请求的进程:进程ID |
Comments | 允许用户为此会话添加备注 |
Custom | 允许用户设置自定义值 |
2.辅助标签+工具
Statistics
显示有关当前选中会话的统计信息,例如会话时间、返回的状态码、请求和响应的大小等。
Inspectors
可以查看请求和响应的详细信息,包括头部信息、正文内容、WebForms、Cookies等。Inspectors提供了多种视图,比如Raw、Headers、JSON、XML等,方便不同格式数据的查看和编辑。
由下图所示:上半部分是请求内容,下半部分是响应内容。
AutoResponder
允许创建规则来自动响应匹配的HTTP或HTTPS请求,而无需将请求发送到实际的服务器。这对于离线测试、调试、性能优化和演示等场景非常有用。
下面是详细的使用步骤:
启用规则:
(1)勾选Enable Rules复选框来启动AutoResponder功能。
(2)如果希望在使用AutoResponder规则时,仍然将请求发送到服务器,可以勾选Unmatched requests passthrough复选框。
创建规则:
(1)点击Add Rule按钮开始创建新的规则。
(2)点击该条目,在下方的编辑区域中输入匹配该规则的请求的URL模式。
(3)在Rule Action部分,指定当请求匹配该规则时Fiddler应该返回什么响应。你可以选择返回一个本地文件、返回一个预设的HTTP响应等。
使用规则:
(1)规则创建并配置好之后,当有匹配的请求被捕获,Fiddler会自动根据配置的规则返回指定的响应,而不是将请求发送到远程服务器。
(2)可以在Fiddler的会话列表中查看到这些请求,它们的处理方式会显示为AutoResponder,表示这些请求是由AutoResponder处理的。
管理规则:
(1)启用/禁用规则:可以通过勾选或取消勾选规则列表中每个规则前的复选框来启用或禁用规则。
(2)修改规则:选中一个规则后,可以修改规则的匹配模式或动作。
(3)删除规则:选中一个规则后,点击Remove按钮可以删除该规则。
(4)导出和导入规则:通过Export和Import按钮,可以导出当前所有规则到一个文件,或者从文件中导入规则。
Composer
自定义请求服务器,允许用户手动构造HTTP(S)请求并发送到服务器,很适用于API接口测试,可以模拟客户端请求、研究HTTP请求的行为等场景。
下面是详细的使用步骤:
构建请求:
(1)请求方法:通过下拉菜单选择你需要用到的HTTP方法(如GET, POST, PUT等)。
(2)请求URL:在"URL"字段中输入你要请求的URL,确保包括完整的路径和查询字符串。
(3)请求协议版本:(可选)在方法和URL的旁边,可以选择HTTP请求的版本。
(4)请求头:在"Request Headers"部分添加任何需要的HTTP头。Fiddler Composer会提供一些标准的请求头(如User-Agent, Host, Accept等)。按需要添加或修改这些值。
(5)请求体:对于POST和PUT等需要请求体的HTTP方法,可以在下面的"Request Body"部分输入内容。对于表单提交,可能需要设置Content-Type为application/x-www-form-urlencoded或multipart/form-data,并在请求体中输入相应格式的数据。
发送请求:
(1)构建好请求之后,点击界面左上方的"Execute"按钮。
(2)请求会被发送,你可以在Fiddler的"Sessions"列表中看到这次请求和相应的响应。点击该会话可以查看更详细的请求和响应细节。
分析响应:
(1)在"Sessions"列表中,找到你刚才发送的请求,点击查看响应状态码、响应头和响应体等信息。
(2)如果响应包含JSON或XML等格式的数据,Fiddler甚至可以提供格式化的视图,方便阅读和分析。
高级功能:
(1)保存请求:构造的请求可以通过"Save"按钮保存,以便将来复用或分享。
(2)导入请求:可以通过"Import"按钮导入之前保存的请求。
(3)规则和脚本:对于高级用户,可以使用FiddlerScript对请求进行自动化处理或改写。
Filters
通过使用Filters,可基于不同的标准对流量进行过滤,如主机名、客户端IP、请求或响应URL等。
以下讲述如何使用Fiddler中的Filters功能:
启用Filters功能:
在Filters面板顶部,首先需要勾选"Use Filters"选项来激活过滤功能。只有勾选了这个框,设置的过滤规则才会生效。
设置过滤条件:
在启用Filters后,可以设置一个或多个过滤条件。这些条件可以基于请求或响应的各种特征,如Zone、主机名(Host)、HTTP方法(GET/POST等)、URL路径等来设定,也可以根据请求头或响应头的具体字段来过滤。
(1) 按Zone过滤:可指定只显示内网(show only Intranet Hosts)或只显示互联网(show only Internet Hosts)
(2)按主机名过滤:如果只对特定域名下的流量感兴趣,可以在"Host"字段中输入该域名,如baidu.com。
(3)按请求方法过滤:可以选择只查看GET请求、POST请求等。
(4)自定义过滤:在面板的底部,"Request Headers"和"Response Headers"部分允许你根据特定的HTTP请求头和响应头进行更具体的过滤。
应用和清除过滤规则:设置好过滤条件后,这些条件会立即生效,Fiddler只会显示匹配这些条件的流量。可以随时修改过滤规则来调整显示的流量。如果想看到所有流量,只需取消勾选"Use Filters"选项或清除所有设置好的过滤条件即可。
组合过滤条件:可以通过组合多个条件来创建更具体的过滤规则,使得Fiddler仅显示符合所有给定条件的请求和响应。
五、Fiddler其他功能
1.会话搜索功能
点击Edit--->Find Sessions或者直接快捷键:Ctrl+F或者直接点击工具条的Find按钮,都可以直接打开会话搜索功能,查询和过滤会话。
2.会话比较功能
选中2个会话,右键点击Compare,就可以比较两个会话的差异点(需安装WinDiff)
3.编码工具TextWizard
点击工具栏的TextWizard工具可以进行编码和解码,常用的base64
经过上述介绍,想必大家对Fiddler工具的使用已经有了初步的了解,后续会讲解在实际项目中的使用,关注小编不迷路~