🎯 你正在阅读「网络原理续命手册」系列文章 🎯
🔥 弹简特 个人主页
❄️ 个人专栏直通车:
- 🔌 接口测试从入门到跑路
- ☕ 一个后端的 JavaEE 续命指南
- 🛜 网络原理续命手册
- ☕ Java项目-轻聊
- ☕ Java项目-企悦抽
✨ 靠热爱去书写自己,靠勇敢去书写生活!
🌟 博主简介:

文章目录:
一、前言
上一期,我们简要介绍了数据链路层的相关知识,并顺带了解了应用层的 DNS 协议。从本期起,我们将正式走进应用层的学习。
对于 Java 学习者而言,HTTP 协议是本章的重中之重。无论是 Spring Boot 搭建后端接口,还是前后端之间的数据交互,我们几乎每天都在与 HTTP 打交道------可以说,后端开发的服务器,本质上就是一个 HTTP 服务器。不过,在深入讲解 HTTP 报文格式之前,我们需要先学会"看清楚"一次 HTTP 通信的全过程。因此,本期将先带你安装并上手 Fiddler 抓包工具,为下一期详解 HTTP 协议打好基础。

我们应用层有一个很大的特点,就是我们程序员可以自定义应用层协议。那除了自定义之外,我们业界呢还有一些大佬设计好了现成的协议,让我们直接使用。
HTTP协议呢是目前使用最广泛的应用层协议了,那对于JAVA学习者来说,咱们后端开发的服务器大概率就是HTTP服务器。
咱们现在HTTP已经到了3.0,那目前呢我们这里介绍的仍然是HTTP1.0,因为它呢也是使用的最多的。
二、下载HTTP抓包工具fiddler
我们学习HTTP协议,那我们重点去学习HTTP的一个报文格式,而学习HTTP的报文格式我们需要搭配一个抓包工具来辅助观察和理解HTTP的通信细节。
抓包工具就是把你机器上传递的网络数据包获取到,从而显示出来,我们通过这种抓包工具来学习就会更加直观。
我们这里使用的是fiddler的抓包工具来针对HTTP进行抓包,它是专注于抓HTTP和HTTPS。
下载地址:fiddler下载地址
更多fiddler的使用细节可参考博客👉 :一文通关Fiddler抓包工具
选择经典版本,他是社区免费版的

点击下载

填一下自己的邮件

然后就选择安装路径,并一路next即可。
第一次打开fiddler会出现一下弹框

这是 Fiddler Classic 首次启动时的常见提示,主要用于配置 Windows 系统中的 AppContainer 网络隔离,以便捕获 Microsoft Edge 浏览器 和 UWP(沉浸式)应用 的网络流量。
处理方案:
方案一:仅关闭警告(不配置捕获)
如果你不需要捕获 Edge 或 UWP 应用的流量,可以:
直接点击 "Cancel" 按钮,这样警告窗口将不再弹出。
但如果你后续需要捕获这些流量,仍需通过 WinConfig 手动配置。
方案二:启用捕获
如果你想捕获 Edge 浏览器或 Windows 应用商店应用的流量,请按以下步骤操作:
- 点击 Fiddler 工具栏上的 "WinConfig" 按钮(图标类似齿轮 + Windows 标志)。
- 在弹出的窗口中,会列出所有受 AppContainer 隔离影响的应用(如 Microsoft Edge、Microsoft Store 应用等)。
- 勾选你需要捕获的应用(例如 "Microsoft Edge")。
- 点击 "Save Changes" 保存设置。
- 关闭提示窗口(点击"Yes"或"No"均可)。
那么点击之后左侧显示的就是请求,如果需要删除所有的请求就可以ctrl+a,然后再delete键

那么你第一次使用fiddler的时候默认抓的是HTTP,而不会有HTTPS的请求,所以如果需要抓HTTPS的话就需要配置:
Tools【工具栏】---》Options【选项】

然后点击HTTPS,再将所有框都打上√,最后点击OK

点击OK会弹出一个框,问你是否安装根证书,一定要选择 是 才可以使用,那么这个根证书有什么作用,具体我们后续谈HTTPS的时候会谈到。




如果就算配置了https还是抓不了,那么很可能就是fiddler和电脑上的代理软件冲突了,此时你需要将你电脑上的代理软件关闭掉。
三、代理模式
那么说到这,什么是代理呢?为什么会冲突呢?
代理那么有的是单独的软件,有的是浏览器的插件,而我们的fiddler它相当于一个代理,所以呢如果你电脑上有其他代理软件的话它就会冲突。
代理是计算机中一个典型的术语,他其实就是找个人帮你干活,这个帮你干活的人就是代理,举个例子:
小明想去超市买包烟,但是呢他不想去,于是他把钱给了他儿子,让他儿子去,超市的老板又不想看店,于是呢就让他的儿子来看店。

代理分为正向代理和反向代理:
- 正向代理就是这个代理帮客户端干活。
- 反向代理就是这个代理帮服务器干活。
对于小明的儿子就是正向代理,对于老板的儿子就是反向代理。
此处呢fiddler也相当于一个正向代理。
当你运行fiddler这个软件之后,你电脑上所有的网络通信都是先发给这个抓包工具,然后呢抓包程序再把数据发给服务器。

那么配置完毕之后此时我们就可以抓到HTTPS的请求了【使用谷歌浏览器】
四、fiddler左侧窗口的介绍
左侧是请求
1)蓝色且有包大小显示的是当前的请求,同时表示响应的数据格式是html

2)红色表示报错

3)绿色代表得到了一个JS

4)灰色表示这个响应的数据已经被保存了

5)紫色代表得到了一个CSS

6)黑色一般代表得到了一个JSON

那这里边会有一个问题啊,如果你的那个fiddler里面没有出现所谓的蓝色、紫色等等这些,那么是因为我们网络的访问速度是比访问硬盘更慢的,那我们补充一点,我们的速度是CPU>内存>硬盘>网络。那么浏览器为了提高用户体验,提高网页加载的效率,它就引入了一个缓存。我们访问某个网站打开过一次之后呢,就会把HTML依赖的css/js/图片/字体等资源保存到本地硬盘上,下次再访问就不必访问网络了,直接从本机硬盘来读取,那么一旦对方服务器更新了css、js、图片、字体,你从本地缓存读到的就是旧的数据,所以此时我们就需要通过强制刷新忽略本地缓存,强制从对方服务器加载数据。那强制刷新的一个快捷键是ctrl加F5
五、fiddler右侧窗口的介绍
我们说左侧窗口是请求,那么双击请求,会在右侧出现上下两个窗口,上边是请求request,下边是响应response。

想要看到请求的原始数据:上层标签页选择Inspectors【检验员】

然后再选择Raw[译为原始],此时就可以看到请求的原始数据了,代表这里的字符串就是一个完整的HTTP请求数据包,再进一步说,如果把这个字符串拷贝下来,通过tcp socket写进去,此时呢就相当于发送一个HTTP请求。所谓的HTTP协议就是按照这样特定格式构造的一个字符串,那我们客户端呢把这个字符串写入到tcp socket中,服务器就可以通过tcp socket把它给读出来,这样的字符串呢就是HTTP请求;那服务器还可以构造另一个特定格式的字符串,也写入到tcp socket中,客户端呢也通过tcp socket把这个字符串读出来,这样字符串就是HTTP的响应。

那么同理如果想要看到响应的原始数据,我们就同样点击Raw,只不过注意:我们的响应数据是经常压缩为二进制格式的目的是为了节省带宽。

如果想查看解压缩后的就点击一个按钮:Response body is encode[译为响应是压缩过的],Click to decode[译为点击进行解压]

点击之后此时我们的响应正文【响应体就不是乱码了】

点击View in Notepad可以使用记事本打开我们的请求或响应

至此,我们的fiddler的使用介绍就此结束了。最后补充,如果想要放大fiddler的响应和请求的字体,那么就按住Ctrl键+鼠标滚轮滚动。
到这里,我们就介绍了fiddler抓包工具的使用,那么下一期我们就详细来谈HTTP协议了。