【心得】一文梳理高频面试题 HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别并附加记忆方法

面试时很容易遇到的一个问题—— HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别,其实这四个版本的发展实际上是一环扣一环的,是逐步完善的,本文希望帮助读者梳理清楚各个版本之间的区别,并且给出当前各个版本的应用情况,以及总结了两个记忆口诀,希望对大家有帮助。

文章目录

  • 一、HTTP各版本协议的应用情况
  • 二、HTTP 1.0与HTTP 1.1的区别
    • 1.连接方式
    • 2.Host头字段
    • 3.请求方式
    • 4.管道化
    • 5.状态码
    • 6.缓存处理
    • 7.断点续传
    • 记忆口诀
  • 三、HTTP 1.1与HTTP 2.0的区别
    • 1.头部压缩
    • 2.传输格式
    • 3.数据包发送顺序(多路复用)
    • 4.记忆口诀
  • 四、HTTP 2.0与HTTP 3.0的区别
    • 1、 传输层协议
    • 2、 连接建立速度:
    • 3、 队头堵塞
    • 4、 错误恢复
    • 5、 安全性
  • 总结


一、HTTP各版本协议的应用情况

HTTP协议自诞生以来,有一下几个比较重要的版本:

HTTP/1.0
HTTP/1.1
HTTP/2(也可以叫做HTTP 2.0)
HTTP/3(也可以叫做HTTP 3.0)

其中:
• HTTP/1.1 是目前最广泛使用的版本
• HTTP/2 和 HTTP/3 是现代高性能 Web 应用的首选协议,HTTP/3 正在逐步普及。
而HTTP/1.0已经被废弃了。

二、HTTP 1.0与HTTP 1.1的区别

1.连接方式

HTTP 1.0默认为短连接,每次请求需新建TCP连接(三次握手),响应后立即关闭‌。HTTP 1.1默认持久连接,允许复用TCP连接发送多个请求,减少握手开销‌。

2.Host头字段

HTTP1.0 无强制HOST头,无法区分同一IP的不同虚拟主机,而HTTP1.1必须包含Host头,支持虚拟主机技术(如多域名共享服务器)‌

3.请求方式

HTTP 1.0‌:仅支持GET、HEAD、POST三种方法‌
HTTP 1.1‌:新增OPTIONS、PUT、DELETE、TRACE、CONNECT方法,功能更丰富‌

4.管道化

HTTP 1.0 必须等待响应后再发送新请求‌
HTTP 1.1 支持管道化,可连续发送多个请求(但响应需按顺序返回)‌

5.状态码

HTTP 1.1新增了24个错误状态响应码,如100 Continue 410 Gone

6.缓存处理

‌HTTP 1.0‌:仅支持Expires和If-Modified-Since,依赖绝对时间‌36。
‌HTTP 1.1‌:新增Cache-Control(如max-age)、ETag,支持更灵活的相对时间缓存策略‌

7.断点续传

HTTP 1.1增加了Range字段,支持断点续传,而HTTP 1.0则没有

记忆口诀

持久连接省握手,区分节点HOST头,请求方式更多有,管道连发多请求,状态缓存续传牛。

三、HTTP 1.1与HTTP 2.0的区别

1.头部压缩

HTTP 1.1‌:头部字段重复传输(如Cookie),占用带宽‌。
‌HTTP 2.0‌:如果你发出了多个请求,并且它们的头部(header)是相同的,那么 HTTP2 协议会帮你消除同样的部分。

2.传输格式

HTTP 1.1‌:基于文本格式解析,兼容性强但效率低‌。
‌HTTP 2.0‌:采用二进制分帧传输(二进制帧),解析更快、健壮性更强。‌

3.数据包发送顺序(多路复用)

HTTP 1.1:单个TCP连接需按顺序处理请求,存在队头阻塞问题,需建立多个连接并行传输‌。
HTTP 2.0: HTTP/2 的数据包不是按顺序发送的,同⼀个连接⾥⾯连续的数据包,可能属于不同的回应。(对数据包做了标记,标志其属于哪一个请求,其中规定客户端发出的数据流编号为奇数,服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级,优先级⾼的请求,服务器就先响应该请求)

4.记忆口诀

二部曲(二:二进制格式传输,部:头部压缩,曲(序):数据包发送不按顺序)

四、HTTP 2.0与HTTP 3.0的区别

这个呢是一环扣一环的 只要记住一个是TCP 一个是UDP 其余的区别都是可以推理出来的,故不需要口诀

1、 传输层协议

HTTP 2.0:基于TCP
HTTP 3.0: 基于UDP(并基于QUIC协议来实现可靠连接)

2、 连接建立速度:

HTTP 2.0: 需要TCP三次握手+TLS三次握手,建立速度较慢
HTTP 3.0:只需要QUIC的三次握手( ‌0-RTT 或 1-RTT 连接建立‌),速度很快

3、 队头堵塞

需要说明的是,HTTP 2.0相比于HTTP 1.1,基于多路复用(就是那个数据包的发送顺序),已经解决了应用层的队头阻塞。
但是由于HTTP 2.0是基于TCP的,所以在传输层,若底层 TCP 数据包丢失或延迟,所有通过该连接传输的 HTTP/2 流需等待 TCP 重传,导致‌传输层队头阻塞。
而HTTP 3.0通过改用 QUIC(基于 UDP)彻底规避了传输层阻塞‌。

4、 错误恢复

HTTP 2.0 依赖 TCP 的‌重传机制‌,恢复速度受限于 TCP 拥塞控制算法‌
HTTP 3.0 QUIC 内置‌快速重传与恢复机制‌,通过前向纠错(FEC)减少丢包影响‌

5、 安全性

‌HTTP 2.0‌:通常依赖 ‌HTTPS‌(需额外 TLS 握手),但协议本身未强制加密‌
‌HTTP 3.0‌:QUIC ‌原生集成 TLS 1.3‌,加密为默认且不可关闭,安全性更高‌

总结

HTTP协议的迭代始终围绕‌性能优化、效率提升、安全性增强‌展开,不同版本的核心区别也需从上述方面进行理解记忆。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/980730.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:H20服务器上DeepSeek R1 671B大模型部署与压力测试全攻略

前言 最近,我有幸在工作中接触到了DeepSeek R1 671B模型,这是目前中文开源领域参数量最大的高质量模型之一。DeepSeek团队在2024年推出的这款模型,以其惊人的6710亿参数量和出色的推理性能,引起了业界广泛关注。 作为一名AI基础…

mySQL复习

目录 一.写在前面 二.介绍 三.选择语句 四.内连接 五.列属性 一.写在前面 课程视频:【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!_哔哩哔哩_bilibili 课程所需资料: 链接:h…

基于SpringBoot+Vue的医院挂号管理系统+LW示例参考

系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…

golang介绍,特点,项目结构,基本变量类型与声明介绍(数组,切片,映射),控制流语句介绍(条件,循环,switch case)

目录 golang 介绍 面向并发 面向组合 特点 项目结构 图示 入口文件 main.go 基本变量类型与声明 介绍 声明变量 常量 字符串(string) 字符串格式化 空接口类型 数组 切片 创建对象 追加元素 复制切片 map(映射) 创建对象 使用 多重赋值 控制流语句…

3.2-A-L1-2-第15讲-冒泡排序 mochen @denglexi

博观而约取 厚积而薄发 Observe extensively but select wisely; accumulate deeply but release sparingly. 每次比较两个相邻的元素,如果它们的顺序错误就把它 们交换过来。 每一轮进行两两比较,将该轮中最大/最小的值冒出来。 冒泡程序核心代码&#…

25、泛型

十二章、泛型 12-1 为何要有泛型 1、泛型:是一种标签。把元素的类型设计成一个参数,这个类型参数就叫做泛型 2、所谓泛型,就是允许在定义类、接口时通过一个标识表示类中 某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在…

[KEIL]单片机技巧 01

1、查看外设寄存器的值 配合对应的芯片开发手册以查看寄存器及其每一位的意义,可以解决90%以上的单纯的片内外设bug,学会如何通过寄存器的值来排外设上的蛊是嵌入式开发从小白到入门的重要一步,一定要善于使用这个工具,而不是外设…

TCP/IP 5层协议簇:网络层(IP数据包的格式、路由器原理)

目录 1. TCP/IP 5层协议簇 2. IP 三层包头协议 3. 路由器原理 4. 交换机和路由的对比 1. TCP/IP 5层协议簇 如下: 2. IP 三层包头协议 数据包如下:IP包头不是固定的,每一个数字是一个bit 其中数据部分是上层的内容,IP包头最…

免费轻巧多功能 PDF 处理工具:转换、压缩、提取一应俱全

软件技术 今天要给大家分享一款超实用的 PDF 处理工具,它免费又轻巧,如同随时待命的得力小帮手,功能之强大超乎想象,真的值得大家收藏。 这款工具是绿色版软件,解压后开启,满满的 PDF 处理功能便映入眼帘…

基于微信小程序的疫情互助平台(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,从2019年底新型冠状肺炎疫情的爆发以来,使很多工作的管理工作难度再上一层楼。为了在疫情期间能更好的维护信息管理&#xff0…

飞致云开源社区月度动态报告(2025年2月)

自2023年6月起,中国领先的开源软件公司飞致云以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源运营数据概览&…

数据库拓展操作

目录 一、截断表: 操作目的: 操作内容: 性能影响: 基本语法: 例子: 二、插入查询结果: 基本语法: 例子: 三、聚合函数: 常用函数: 基…

在 Mac 上使用 Docker 安装宝塔并部署 LNMP 环境

前言 只因为在mac上没有找到合适的PHP开发集成环境,之前有安装了Eserver,但是安装一些常用PHP扩展有时候还是需要手动去编译添加。phpStudy也没有找到适合Mac的版本,在后面安装了Parallels Desktop虚拟机 来运行Ubuntu系统搭建了一套LNMP环境…

Node.js二:第一个Node.js应用

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 创建的时候我们需要用到VS code编写代码 我们先了解下 Node.js 应用是由哪几部分组成的: 1.引入 required 模块:我们可以使用 requi…

Excel基础(详细篇):总结易忽视的知识点,有用的细节操作

目录 基础篇Excel主要功能必会快捷键LotusExcel的文件类型工作表基本操作表项操作选中与缩放边框线 自动添加边框线格式刷设置斜线表头双/多斜线表头不变形的:双/多斜线表头插入多行、多列单元格/行列的移动冻结窗口 方便查看数据打印的常见问题Excel格式数字格式日期格式文本…

vue3:四嵌套路由的实现

一、前言 1、嵌套路由的含义 嵌套路由的核心思想是&#xff1a;在某个路由的组件内部&#xff0c;可以定义子路由&#xff0c;这些子路由会渲染在父路由组件的特定位置&#xff08;通常是 <router-view> 标签所在的位置&#xff09;。通过嵌套路由&#xff0c;你可以实…

【实战篇】【深度解析DeepSeek:从机器学习到深度学习的全场景落地指南】

一、机器学习模型:DeepSeek的降维打击 1.1 监督学习与无监督学习的"左右互搏" 监督学习就像学霸刷题——给标注数据(参考答案)训练模型。DeepSeek在信贷风控场景中,用逻辑回归模型分析百万级用户数据,通过特征工程挖掘出"凌晨3点频繁申请贷款"这类魔…

【Python 数据结构 2.时间复杂度和空间复杂度】

Life is a journey —— 25.2.28 一、引例&#xff1a;穷举法 1.单层循环 所谓穷举法&#xff0c;就是我们通常所说的枚举&#xff0c;就是把所有情况都遍历了的意思。 例&#xff1a;给定n&#xff08;n ≤ 1000&#xff09;个元素ai&#xff0c;求其中奇数有多少个 判断一…

计算机毕业设计SpringBoot+Vue.js社区智慧养老监护管理平台(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

西北工业大学计算机复试上机真题

西北工业大学计算机复试上机真题 历年西北工业大学计算机复试上机真题 西北工业大学计算机考研复试上机真题 2023西北工业大学计算机复试上机真题 2022西北工业大学计算机复试上机真题 在线评测地址&#xff1a;传送门 数组排序 题目描述 一组整数&#xff0c;由小到大排序…