当前位置: 首页 > news >正文

【心得】一文梳理高频面试题 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协议的迭代始终围绕‌性能优化、效率提升、安全性增强‌展开,不同版本的核心区别也需从上述方面进行理解记忆。

相关文章:

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

面试时很容易遇到的一个问题—— HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别,其实这四个版本的发展实际上是一环扣一环的,是逐步完善的,本文希望帮助读者梳理清楚各个版本之间的区别,并且给出当前各个版本的应用情况,…...

Navicat连接虚拟机数据库详细教程

Navicat连接虚拟机数据库详细教程 以Windows主机 上的navicat 连接ubuntu虚拟机为例 确认虚拟机ip地址和主机ip地址 主机地址查询 cmd输入ipconfig 登录mysql 创建用户 CREATE USER newuserlocalhost IDENTIFIED BY password; CREATE USER newuser% IDENTIFIED BY passwor…...

委托者模式(掌握设计模式的核心之一)

目录 问题: 举例: 总结:核心就是利用Java中的多态来完成注入。 问题: 今天刷面经,刷到装饰者模式,又进阶的发现委托者模式,发现还是不理解,特此记录。 举例: ​老板​…...

DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力

论文标题:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 作者团队:DeepSeek-AI 发表时间:2025 前置知识 & 术语 模型蒸馏 语言模型蒸馏的目标是将大型教师模型的知识(如语义理解、上…...

实现Unity shader扭曲效果

实现思路 1、扭曲材质赋于面片 2、抓取当前一帧的图片内容 3、获取屏幕坐标 4、利用屏幕坐标对抓取的图片采样 5、再采样张扰动贴图做扭曲 Shader "Unlit/NewUnlitShader" {Properties {_DistortTex ("扰动贴图 (RGB)", 2D) "bump" {}_Di…...

七星棋牌 6 端 200 子游戏全开源修复版源码(乐豆 + 防沉迷 + 比赛场 + 控制)

七星棋牌源码 是一款运营级的棋牌产品,覆盖 湖南、湖北、山西、江苏、贵州 等 6 大省区,支持 安卓、iOS 双端,并且 全开源。这个版本是 修复优化后的二开版本,新增了 乐豆系统、比赛场模式、防沉迷机制、AI 智能控制 等功能&#…...

C++STL---<limits>

C <limits> 头文件&#xff1a; <limits> 头文件是 C 标准库中用于获取各种数据类型的数值范围、精度等信息的工具。它通过模板类 std::numeric_limits 提供了对基本数据类型&#xff08;如 int、float、double 等&#xff09;的详细属性查询功能。通过 std::nume…...

一键安装Mysql部署脚本之Linux在线安装Mysql,脚本化自动化执行服务器部署(附执行脚本下载)

相关链接 一键安装Redis部署脚本之Linux在线安装Redis一键安装Mysql部署脚本之Linux在线安装Mysql一键安装JAVA部署脚本之Linux在线安装JDK一键安装Nginx部署脚本之Linux在线安装NginxNavicat最新版(17)详细安装教程Xshell客户端免费版无需注册XFtp客户端免费版无需注册 前言…...

ES、OAS、ERP、电子政务、企业信息化(高软35)

系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统&#xff08;ES&#xff09;二、办公自动化系统&#xff08;OAS&#xff09;三、企业资源规划&#xff08;ERP&#xff09;四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…...

文生图开源模型发展史(2014-2025年)

文生图开源模型的发展历程是一段充满技术革新、社区生态繁荣与商业化竞争的多维度演进史。 一、技术萌芽期&#xff08;2014-2020年&#xff09; 核心突破 2014年&#xff1a;GAN&#xff08;生成对抗网络&#xff09;诞生&#xff0c;首次实现数据驱动式图像生成&#xff0…...

OA办公系统自动渗透测试过程

目录 一、下载环境源码 二、部署环境 三、测试 XSS漏洞 SQL注入 文件上传漏洞 一、下载环境源码 OA源码打包地址: https://download.csdn.net/download/weixin_43650289/90434502?spm=1001.2014.3001.5503 二、部署环境...

Python标准库【os】5 文件和目录操作2

文章目录 8 文件和目录操作8.7 浏览目录下的内容8.8 查看文件或目录的信息8.9 文件状态修改文件标志位文件权限文件所属用户和组其它 8.10 浏览Windows的驱动器、卷、挂载点8.11 系统配置信息 os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面…...

[代码规范]接口设计规范

一个优雅的接口要如何设计&#xff1f;有哪些设计规范可以遵循&#xff1f; 下面抛砖引玉&#xff0c;分享一些规范。 目录 1、RESTful API 设计最佳实践 2、Shneiderman 的 8 条黄金法则 3、Nielsen 的 10 条启发式规则 1、RESTful API 设计最佳实践 一共18条&#xff0c;参考…...

什么是最终一致性,它对后端系统的意义是什么

最终一致性(Eventual Consistency)是分布式系统中的一种一致性模型。与传统的强一致性模型不同,最终一致性并不要求系统在任何时刻都保持一致,而是保证在足够的时间后,所有节点的数据最终会达到一致的状态。换句话说,系统允许短时间内出现数据的不一致性,但最终会通过某…...

Unity学习笔记之——ugui的性能优化

在Unity中UI优化的核心问题就是重绘和批处理之间的平衡 一、Canvas优化要点 1.优化原因&#xff1a; &#xff08;1&#xff09;Unity为了性能优化&#xff0c;会合并Canvas下的所有元素&#xff1b; &#xff08;2&#xff09;如果把所有面板放到一个Canvas下&#xff0c;会…...

Python接口自动化中操作Excel文件的技术方法

在Python接口自动化测试中&#xff0c;操作Excel文件是一项常见且关键的技术需求。Excel作为数据存储和数据分析的重要工具&#xff0c;在自动化测试中通常用于存储测试用例、测试数据以及测试结果。通过Python操作Excel&#xff0c;可以大大提高测试的效率和灵活性。以下是一些…...

[Windows] 免费电脑控制手机软件 极限投屏_正式版_3.0.1 (QtScrcpy作者开发)

[Windows] 极限投屏_正式版 链接&#xff1a;https://pan.xunlei.com/s/VOKJf8Z1u5z-cHcTsRpSd89tA1?pwdu5ub# 新增功能(Future)&#xff1a; 支持安卓14(Supports Android 14)提高投屏成功率(Improve the success rate of mirror)加快投屏速度(Accelerate screen mirrorin…...

游戏引擎学习第131天

仓库:https://gitee.com/mrxiao_com/2d_game_3 运行游戏并识别我们的小问题 今天的工作重点是对游戏引擎进行架构优化&#xff0c;特别是针对渲染和多线程的部分。目前&#xff0c;我们的目标是让地面块在独立线程上进行渲染&#xff0c;以提高性能。在此过程中&#xff0c;我…...

Visual Studio Code集成MarsCode AI

Visual Studio Code集成MarsCode AI 1、搜索MarsCode AI 安装包 2、点击install安装即可 小编这里已经安装过了 3、登录自己的账号 点击链接&#xff0c;注册账号 https://www.marscode.cn/events/s/i5DRGqqo/ 4、登录后可以自己切换模型...

partner‘127.0.0.1:3200‘ not reached

在SAP虚拟机中&#xff0c;如果LRPSAP 0显示黄色&#xff0c;通常表示服务启动异常或存在配置问题。以下是一些可能的处理方法&#xff1a; 检查主机文件配置 确保主机文件&#xff08;hosts&#xff09;中已正确配置SAP服务的域名解析。例如&#xff0c;添加以下内容到hosts文…...

CTF流量分析实战:从协议层还原攻击链

1. 这不是“看图说话”&#xff0c;而是网络攻防现场的证据链重建CTF流量分析题&#xff0c;很多人第一反应是打开Wireshark点开pcap文件&#xff0c;扫一眼HTTP请求、找找base64字符串、翻翻DNS查询——然后卡在第3个包就停了。我带过三届校队&#xff0c;每年都有至少一半选手…...

别再裸发ROS图像了!image_transport保姆级教程:从压缩传输到参数调优,一次搞定

别再裸发ROS图像了&#xff01;image_transport保姆级教程&#xff1a;从压缩传输到参数调优&#xff0c;一次搞定 在机器人视觉开发中&#xff0c;图像传输往往是性能瓶颈的关键所在。许多开发者习惯性地使用ros::Publisher/Subscriber直接处理图像数据&#xff0c;却不知这种…...

AI不是产品,是技术,Apple想明白了

一个让我愣住的观点前几天刷 HackerNews&#xff0c;看到一篇被顶到榜首的文章&#xff0c;标题很短&#xff0c;就一句话&#xff0c;AI is a technology, not a product。不是因为这个观点多新奇&#xff0c;而是因为一个显而易见的事实&#xff0c;居然需要有人专门写一篇文…...

STL转STEP格式转换实战指南:如何实现CAD模型的无缝迁移与工程化应用

STL转STEP格式转换实战指南&#xff1a;如何实现CAD模型的无缝迁移与工程化应用 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在数字化制造与工程设计领域&#xff0c;STL格式作为3D打印的标…...

如何快速从图表图片中提取数据?WebPlotDigitizer终极使用指南

如何快速从图表图片中提取数据&#xff1f;WebPlotDigitizer终极使用指南 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 你是否曾面对…...

HTTP安全头配置陷阱与三层验证修复指南

1. 这不是“配个Header”就能糊弄过去的事很多人看到“Web服务器HTTP设置漏洞”第一反应是&#xff1a;不就是加几个Strict-Transport-Security、X-Content-Type-Options头吗&#xff1f;改两行配置&#xff0c;跑个在线扫描工具显示“绿色✓”&#xff0c;就关掉工单、打上“已…...

GitHub中文界面插件架构解析与实战指南

GitHub中文界面插件架构解析与实战指南 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 核心问题&#xff1a;开发者面临的GitHub语言障…...

终极指南:如何用WeChatLuckyMoney轻松实现微信红包自动抢

终极指南&#xff1a;如何用WeChatLuckyMoney轻松实现微信红包自动抢 【免费下载链接】WeChatLuckyMoney :money_with_wings: WeChats lucky money helper (微信抢红包插件) by Zhongyi Tong. An Android app that helps you snatch red packets in WeChat groups. 项目地址…...

如何快速掌握拯救者工具箱:联想笔记本性能调校终极指南

如何快速掌握拯救者工具箱&#xff1a;联想笔记本性能调校终极指南 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 还在为联…...

Arty S7 FPGA开发板:从入门到进阶的硬件加速与嵌入式开发实战

1. 项目概述&#xff1a;为什么是Arty S7&#xff1f;如果你是一名嵌入式开发者、数字电路设计的学生&#xff0c;或者对硬件加速、实时信号处理感兴趣&#xff0c;那么“FPGA开发板”这个词对你来说一定不陌生。但面对市场上琳琅满目的开发板&#xff0c;从几百元到上万元不等…...