HTTP/3 相对于 HTTP/2 的性能提升是显著的,但其优势并非在所有场景下都立竿见影。核心的差异源于底层传输协议从 TCP 切换到了 QUIC(基于 UDP)。
下面我们从几个关键维度进行详细对比,并总结适用场景。
核心差异:TCP vs QUIC
首先要理解,HTTP/2 和 HTTP/3 都是应用层协议,它们的性能差异主要来自于下层的传输协议。
-
HTTP/2 运行在 TCP 之上,并通常与 TLS(用于加密)结合。
-
HTTP/3 运行在 QUIC 之上,而 QUIC 将传输和加密深度集成,直接基于 UDP,并内置了 TLS 1.3。
性能对比维度
1. 连接建立速度(握手延迟)
这是 HTTP/3 最显著的优势。
-
HTTP/2:
-
需要先完成 TCP 三次握手(1个RTT)。
-
然后进行 TLS 握手(现代 TLS 1.3 通常需要 1个RTT)。
-
总计:至少需要 2个RTT 才能开始传输应用数据。
-
问题: 如果连接是新的,这个延迟是不可避免的。
-
-
HTTP/3:
-
QUIC 将连接建立和加密握手合并。
-
在大多数情况下,只需 1个RTT 甚至 0-RTT 即可建立安全连接并开始传输数据。
-
0-RTT: 对于之前连接过的服务器,可以在第一个数据包中就携带应用数据,极大提升了重复访问的速度。
-
结