Fiddler 教程

Fiddler 工作原理

不知道读者在使用 Fiddler 软件时,是否考虑过 Fiddler 是怎样抓包的,原理是什么?

Fiddler 本质上是一个 Web 代理服务器,默认的工作端口是 8888。查看端口方式为,点击菜单 “Tools”,选择“Options...” 菜单项,如下图:

在打开的 “Options” 配置框的 “Connections” 选项卡,如下图:

什么是 Web 代理服务器?

Web 代理(Web Proxy Server)服务器是网络的中间实体。Web 代理位于 Web 客户端和 Web 服务器之间,扮演 “中间人” 的角色。HTTP 的代理服务器既是 Web服务器又是 Web客户端。如下图:

上图中,浏览器发起请求到 Fiddler 代理服务器,然后由 Fiddler 代理服务将请求转发给真实的服务器。服务器收到请求后,进行各种处理,然后将响应返回给 Fiddler 代理服务器,Fiddler 代理服务器再将响应返回给浏览器。

既然浏览器的请求和服务器的响应均要通过 Fiddler 代理服务器来转发,在进行转发之前,我们可以对请求/响应报文进行任何操作。例如:修改请求参数、修改响应数据、在请求发送到服务器之前打断点、在响应到达浏览器之前打断点、创建Mock服务等等。

代理服务器的作用

(1)共享网络:能解决仅仅有一条线路、一个公有 IP 的问题。在公有 IP 资源严重不足的情况下,可以满足局域网大量用户同时共享上网的需求。

(2)提高了访问速度:因为大部分的代理服务器都有缓存功能,可以直接从缓存读取,无须再连接到远程 Web 服务器,下载访问资源。这可以达到加快访问网站的速度、节约带宽资源。

(3)突破访问限制:当访问权限受到限制时,可以使用有权限的代理服务器去访问受限资源。

(4)隐藏身份:内部网的用户要对外发布信息,就需要使用代理服务器的反向代理功能。这样就不会影响内部网络的安全性能,起到隐藏身份的目的。

Fiddler 工作原理

在了解工作原理前,我们先看看一个具体实例。详细步骤如下:

(1)打开 Fiddler 软件,处于抓包中的 Fiddler 监听的端口是 8888,如下图:

(2)打开 “控制面板”,选择 “Internet选项”。选择 “连接” 选项卡,然后点击 “局域网设置(L)” 按钮,如下图:

在局域网设置弹框中,选择 “高级” 按钮。如下图:

打开“代理设置”弹框,如下图:

从上图中可知,其实 Fiddler 已经自动将系统 HTTP 和 HTTPS 代理设置为 127.0.0.1:8888 了。如果我们浏览器默认使用的是系统代理,那么 Fiddler 就能正常抓包了。

但是,Firefox 浏览器是个例外,它可以手动配置是否使用系统代理设置,如果设置不是使用系统代理设置,则 Fiddler 将抓不到 Firefox 浏览器的包。如下图:

如果我们此时将 Fiddler 关闭,再次查看 “Internet选项” 中关于局域网的设置。如下图:

上图中,已经没有配置代理服务器信息了,即不走代理,Fiddler 也就不能抓包了。

通过上面例子的分析,应该明白为什么 Fiddler 能够抓包了吧!!

Fiddler 抓包的原理和我们生活中快递代收点类似,快递员将我们的快递放在代收点(如果我们快递没有使用胶带等封口,那么代收点是不是可以任意查看、替换我们快递中的东西,这就类似HTTP;如果我们快递使用胶带等封了口的,那么代收点就不能随意查看快递中是什么、甚至替换,这就类似HTTPS),我们有时间就到代收点去取快递。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号