为什么 HTTP/3 正在席卷世界

去年,负责定义互联网技术的组织互联网工程任务组 (IETF) 对该协议的新版本 HTTP/3 进行了标准化。 从那时起,HTTP/3 和相关的 QUIC 协议在公共网络上迅速普及。 确切的数字取决于来源和测量方法, 全球19% 到 50+% 的 Web 服务器和网络支持 HTTP/3。

超文本传输​​协议 (HTTP) 是互联网的基石,有助于加载网页、流式传输视频以及为您喜爱的应用程序获取数据。 


由于这些新协议被 Google 和 Meta 等大公司大量使用,因此我们可以有把握地说,当前互联网流量的很大一部分已经在使用 HTTP/3。 事实上,您现在正在阅读的博客文章可能是通过 HTTP/3 加载的!

在本系列中,我将提供一些背景信息,介绍 HTTP/3 解决了哪些问题、它如何执行、为什么它得到如此迅速的采用以及它仍在努力克服哪些限制。

为什么我们需要 HTTP/3?

网络协议描述了数据如何在网络上的两个实体(通常是用户设备和 Web 服务器)之间进行通信。 由于有许多不同的公司为网络构建软件,因此协议需要标准化,以便所有这些软件都可以“互操作”,也就是说,它们都可以相互理解,因为它们遵循相同的规则。

在实践中,我们不会使用单一协议,而是同时使用多个协议的组合,每个协议都有自己的职责和规则(图 1)。 这是为了使事情变得灵活和可重用——无论您使用的是 Wi-Fi、电缆还是 4G/5G,您仍然可以使用完全相同的 HTTP 逻辑。

图 1 — HTTP/2 和 HTTP/3 的协议栈,显示了如何组合多个协议来提供完整的互联网功能。

许多最初的互联网协议在 80 年代和 90 年代就已经标准化,这意味着它们是根据这几十年的目标和限制而构建的。 虽然其中一些协议经受住了时间的考验,但其他协议已经开始显得过时了。 大多数问题已经通过变通办法和巧妙的技巧得到解决。 然而,很明显有些事情必须改变。 对于传输控制协议 (TCP) 来说尤其如此,它可确保您的数据可靠地通过 Internet 传输。

为什么 TCP 对于当今的网络来说不是最佳选择

HTTP/1.1 和 HTTP/2 依赖 TCP 来成功完成其工作。 在客户端和服务器可以交换 HTTP 请求/响应之前,它们必须建立 TCP 连接。

随着时间的推移,人们做出了许多努力来更新 TCP 并解决其一些低效率问题 - TCP 仍然将网页视为单个文件而不是数百个单独文件的集合。 其中一些更新已经取得了成功,但大多数影响较大的更新(例如 TCP 多路径和 TCP Fast Open)花了近十年的时间才在公共互联网上实际使用。

实施 TCP 更改的主要挑战是互联网上的数千台设备都有自己的 TCP 协议实现。 其中包括电话、笔记本电脑和服务器,以及路由器、防火墙、负载平衡器和其他类型的“中间盒”。 因此,如果我们想要更新 TCP,我们必须等待所有这些设备的很大一部分更新其实现,这在实践中可能需要数年时间。

QUIC 解决方案

这成为一个问题,以至于最实际的解决方法是用全新的东西取代 TCP。 这个替代品是 QUIC 协议,尽管许多人仍然(开玩笑地)将其称为 TCP 2.0。 这个昵称很恰当,因为 QUIC 包含许多与 TCP 相同的高级功能,但有一些关键的变化。

主要变化是 QUIC 与传输层安全(TLS)协议的深度集成。 TLS 负责加密网络上的敏感数据 - 它提供了 HTTPS 中的 S(安全)。 对于 TCP,TLS 仅加密实际的 HTTP 数据(图 2)。 对于 QUIC,TLS 还对 QUIC 协议本身的大部分内容进行加密。 这意味着 TCP 中所有中间件都可见(且可更改)的元数据(例如数据包编号和连接关闭信号)现在仅可供 QUIC 中的客户端和服务器使用。

图 2 — TCP+TLS 和 QUIC 之间的加密差异。 QUIC 加密的不仅仅是 HTTP 数据。

此外,由于 QUIC 进行了更广泛的加密,因此比 TCP 更容易更改它或添加新功能 - 我们只需要更新客户端和服务器,因为中间件无论如何都无法解密元数据。 这使得 QUIC 成为一种面向未来的协议,使我们能够更快地解决新的挑战。

当然,这种额外的加密也有利于新协议的总体安全性和隐私性。 虽然 TCP + TLS 非常适合保护信用卡或电子邮件内容等敏感个人数据,但它们仍然容易受到复杂(隐私)攻击,而由于人工智能的最新进展,执行这些攻击变得更加实用。 通过进一步加密此类元数据,QUIC 能够更好地应对复杂的威胁行为者。

QUIC 还具有许多其他与安全相关的功能,包括防御分布式拒绝服务 (DDoS) 攻击,以及防放大和重试数据包等功能。

最后,与 TCP 相比,QUIC 还包括大量的效率和性能改进,包括更快的连接握手(见图 3)、 消除“队头阻塞”问题 、更好的数据包丢失检测/恢复以及处理用户切换网络的方法(我将在下一篇文章中详细介绍这一点)。

图 3 — QUIC 具有更快的连接设置,因为它将“传输”三向握手与 TLS 加密会话建立相结合,这在 TCP+TLS 中是两个独立的过程。

我们不需要 HTTP/3; 我们需要的是 QUIC

最初,我们尝试保留 HTTP/2 并进行最小的调整,以便我们也可以在较低层使用 QUIC(毕竟,这就是拥有这些不同的协作和可重用协议的全部意义)。 然而,很明显 QUIC 与 TCP 的差异足以使其与 HTTP/2 不兼容。 因此,决定专门为 QUIC 制作一个新版本的 HTTP,最终成为 HTTP/3。

HTTP/3 与 HTTP/2 几乎相同。 它们的主要区别在于 QUIC 或 TCP 之上的功能的技术实现。 不过,由于 HTTP/3 可以使用 QUIC 的所有新功能,因此在加载网页和流媒体视频时预计会具有更高的性能。 在实践中,尤其是这一方面导致了 HTTP/3 的快速采用。

在我的 下一篇文章 中,我将更详细地介绍您最有可能遇到的常见连接问题,以及当您的移动设备从使用 Wi-Fi 更改为蜂窝连接时,QUIC 如何帮助减少通话和视频中断。 

© GVGNN 2013-2026