http1,http2,http3各个协议的特点和区别
好的,我们再用中文详细梳理一下 HTTP/1.1、HTTP/2 和 HTTP/3 这三大主流协议的特点与核心区别。
演进核心驱动力
HTTP 协议的演进,其核心驱动力始终是 为了提升网页加载速度和网络传输效率,解决前一代协议存在的性能瓶颈。
一张图看懂核心区别
| 特性 | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|
| 核心模型 | 每个连接处理一个请求(可复用连接) | 单个连接,多路复用 | 基于QUIC,多路复用 |
| 关键问题 | 队头阻塞、并发连接数限制 | TCP层队头阻塞 | 彻底解决TCP队头阻塞 |
| 数据格式 | 纯文本 | 二进制分帧 | 二进制帧 |
| 头部传输 | 纯文本,重复传输 | HPACK头部压缩 | QPACK头部压缩 |
| 服务器推送 | 不支持 | 支持 | 支持 |
| 底层协议 | TCP | TCP | QUIC (基于UDP) |
| 连接建立 | 慢(1-RTT) | 慢(1-RTT + TLS握手) | 极快(0-RTT/1-RTT) |
| 安全性 | 无要求 | 虽非强制,但已成事实标准 | 内建加密(TLS 1.3+) |
详细解析
1. HTTP/1.1 - 奠定基础
HTTP/1.1 是多年来的主流协议,它引入了多项关键改进,但性能瓶颈明显。
主要特点与问题:
- 连接复用:解决了 HTTP/1.0 每次请求都要新建TCP连接的问题,一个TCP连接可以用于多个请求。但请求在连接内仍是串行的。
- 队头阻塞:这是 HTTP/1.1 的主要性能瓶颈。在同一个TCP连接中,必须等前一个请求的响应完全返回后,才能发出下一个请求。如果前一个请求响应慢,就会阻塞后面所有请求。
- 并发连接数限制:为了解决队头阻塞,浏览器会对同一域名开启多个TCP连接(通常6-8个)来并行请求资源。但这增加了服务器压力,且建立多个连接本身就有开销。
- 头部冗余:请求和响应头部都是纯文本,且不压缩,特别是Cookie等头部信息反复传输,造成浪费。
- 无服务器推送:服务器只能被动响应,无法主动推送资源。
简单比喻: 一个货柜码头只有几条固定的传送带(TCP连接),每条传送带一次只能运一件货物(请求-响应)。必须等这件货物运到,才能运下一件。为了加快速度,只好多建几条传送带。
2. HTTP/2 - 性能飞跃
HTTP/2 旨在解决 HTTP/1.1 的性能问题,它没有改变 HTTP 的语义(方法、状态码等),而是改变了数据传输的格式和方式。
主要特点与改进:
- 二进制分帧:不再使用纯文本,而是将传输的数据分割为更小的二进制帧。这使得解析更快、更高效,错误更少。
- 多路复用:这是最核心的特性。在一个TCP连接上,可以同时交错地发送多个请求和响应帧。请求A和请求B的帧可以混杂在一起传输,服务器也能将其正确组装。这彻底解决了 HTTP 层面的队头阻塞,使得单个连接就能实现高效并行。
- 头部压缩:使用 HPACK 算法对HTTP头部进行压缩,大幅减少了冗余头部数据的传输。
- 服务器推送:服务器可以预测客户端的需要,在客户端请求一个资源(如HTML)时,主动将其他关联资源(如CSS、JS)推送给客户端,减少请求往返。
遗留问题:
HTTP/2 仍然基于 TCP 协议。TCP 要求数据包必须按顺序送达。如果网络传输中有一个TCP数据包丢失,整个TCP连接必须等待这个丢失的包被重传和确认,这会阻塞该连接上所有的HTTP/2数据流。这就是 TCP 层的队头阻塞。
简单比喻: 现在码头只有一条超级传送带(一个TCP连接),但上面可以同时运输多件货物(多路复用),并且可以混装。然而,如果传送带上的一个小包裹(TCP包)卡住了,整条传送带都会暂停,所有货物都得等着。
3. HTTP/3 - 面向未来
HTTP/3 是下一代协议,它通过彻底更换底层传输协议来解决 HTTP/2 遗留的 TCP 队头阻塞问题。
主要特点与革命:
- 基于QUIC协议:这是最根本的改变。QUIC 不再使用 TCP,而是基于 UDP 协议,并在其上实现了可靠传输。
- 解决TCP队头阻塞:QUIC 在协议层面原生实现了多路复用。每个数据流都是独立的,单个数据流的丢包只会影响该流本身,其他流完全不受影响。
- 极快的连接建立:QUIC 将加密和连接建立合二为一。对于访问过的服务器,它可以实现 0-RTT 的握手,意味着在第一次发送数据时就可以携带应用数据,极大降低延迟。
- 连接迁移:当你的网络在 Wi-Fi 和 5G 之间切换导致IP地址变化时,TCP连接会中断。而QUIC使用连接ID来标识连接,网络切换时只要ID不变,连接就能无缝保持。
- 内建加密:加密(TLS 1.3)是QUIC协议不可分割的一部分,所有HTTP/3流量都是加密的。
简单比喻: 现在每件货物都有自己的独立无人车运输通道(基于QUIC的独立流)。即使一个通道因故暂时封闭(丢包),其他通道的货物依然可以畅行无阻,互不干扰。而且无人车启动速度极快(0-RTT)。
总结
从 HTTP/1.1 到 HTTP/3 的演进,是一个持续为了解决延迟和性能瓶颈的过程:
- HTTP/1.1 → HTTP/2:解决了 HTTP层面的队头阻塞 和 头部冗余,通过多路复用和头部压缩,用一个连接实现高效并行,大幅提升效率。
- HTTP/2 → HTTP/3:解决了更底层的 TCP传输层的队头阻塞,通过切换到 QUIC 协议,实现了更快速、更可靠、抗抖动能力更强的互联网通信。
现状:
- HTTP/1.1:仍是互联网的基础,被普遍支持。
- HTTP/2:已成为主流,绝大多数现代网站和浏览器都已支持。
- HTTP/3:正处于快速普及阶段,主流浏览器、大型云服务商和网站(如 Google, Cloudflare)都已支持,是未来发展的明确方向。
挣钱养家

浙公网安备 33010602011771号