什么是 HTTP/3?

HTTP/3 是超文本传输协议 (HTTP) 的下一个主要版本。它将提高速度、安全性和可靠性。

学习目标

阅读本文后,您将能够:

  • 了解在 HTTP/3 中预计会有哪些改进
  • 认识到协议将如何塑造用户体验
  • 描述预期的安全效益

复制文章链接

什么是 HTTP/3?

HTTP 是互联网的重要骨干——它决定了通信平台和设备如何交换信息和获��资源。简而言之,正是它让用户能够加载网站。

HTTP/3 是一项新的开发标准,它将影响 Web 浏览器和服务器的通信方式,并显著提升用户体验,包括性能、可靠性和安全性。

在第一个超文本传输协议 (HTTP) 于 1991 年发布后,随后的迭代在不对底层代码做任何变更的前提下使网站速度更快

HTTP/3 中有什么新内容?

HTTP/3 将是自 2015 年 HTTP/2 获得批准以来对超文本传输协议的第一次重大升级。

HTTP/3 的一个重要区别是它在一种新的传输协议 QUIC 上运行。QUIC 专为移动密集型互联网使用而设计,在这种环境中,人们携带的智能手机会在一天中不断地从一个网络切换到另一个网络。开发第一个互联网协议时情况并非如此:当时设备的便携性较差,且不经常切换网络。

QUIC 的使用意味着 HTTP/3 依赖于用户数据报协议 (UDP),而不是传输控制协议 (TCP)。切换到 UDP 将使在线浏览时的连接速度和用户体验更快。

QUIC 协议由 Google 于 2012 年开发,并在互联网工程任务组 (IETF)(一个厂商中立的标准组织)开始创建新的 HTTP/3 标准时采用。在咨询了世界各地的专家之后,IETF 进行了许多更改以开发自己的 QUIC 版本。

为什么需要一个新版本的 HTTP?

QUIC 将帮助修复 HTTP/2 的一些重大缺点:

  • 开发一种方法来解决当智能手机从 WiFi 切换到蜂窝数据时(例如离开家或办公室时)性能缓慢的问题
  • 减少丢包的影响——当一个信息包没有到达目的地时,它不会再阻塞所有的信息流(称为“队头阻塞”的问题)

其他好处包括:

  • 更快的连接建立:QUIC 允许 TLS 版本协商与加密和传输握手同时发生
  • 往返时间 (0-RTT):对于它们已经连接的服务器,客户端可以跳过握手要求(互相确认和验证以确定它们将如何通信的过程)
  • 更全面的加密:QUIC 的新握手方式将默认提供加密,这是对 HTTP/2 的巨大升级,并将有助于减轻攻击的风险

什么是默认加密?

要求在传输层而不是在应用程序层进行加密对安全具有重要意义。这意味着连接将始终被加密。以前,在 HTTPS 中,加密和传输层连接是分开发生的。TCP 连接可以携带加密或未加密的数据,TCP 握手和 TLS 握手是不同的事件。但是,QUIC 默认在传输层设置加密连接——应用程序层数据将始终被加密。

QUIC 通过将两次握手合并为一个动作来实现这一点,从而减少延迟,因为应用程序在发送数据之前只需等待一次握手完成。它还加密有关每个连接的元数据,包括数据包编号和标头的其他一些部分,以帮助防止攻击者掌握有关用户行为的信息。HTTP/2 中不包含此功能。加密这些数据有助于防止攻击者掌握有关用户行为的可操作信息。

HTTP 对请求和响应的使用明文的传统做法对安全性有负面影响,因为任何监控通信的人都可以读取它们。默认加密将有助于让每个人都更安全并保护敏感数据。

HTTP/3 现在可用吗?

虽然该标准仍在开发中,但网站所有者和访问者可以开始通过浏览器、操作系统和其他客户端获得对 HTTP/3 的支持。当然,该标准目前已经过几次实施,未来可能还有更多变化。

在 HTTP/3 发布后,整个网络不会一下子转换过来。许多网站甚至还没有使用 HTTP/2。

新协议的一个潜在障碍是它需要增加服务器和客户端的 CPU 使用率。随着技术的发展,这可能会随着时间的推移而减少影响。

谁来决定 HTTP/3 中包含的内容?

IETF 于 2016 年组建了 QUIC 工作组。来自许多组织和公司的人员参与了开发过程——包括 Cloudflare。

在获得当前名称 HTTP/3 之前,该标准之前使用过“HTTP-over-QUIC”和“使用 QUIC 传输协议的 HTTP/2 语义”等名称。

网站所有者现在如何开启 HTTP/3?

Cloudflare 使网站所有者能够打开对 HTTP/3 的支持,而无需对其源站进行任何更改。了解如何为您的域进行切换。