带有 QUIC 协议的 HTTP/3

HTTP-over-QUIC 被重命名为 HTTP/3。HTTP/3 基于之前的 RFC 草案“基于 QUIC 的超文本传输​​协议 (HTTP)”。QUIC 是最初由 Google 开发的实验性传输层网络协议

HTTP 背景

HTTP 是一种无状态协议。超文本传输​​协议 (HTTP) 是分布式、协作、超媒体信息系统的应用协议。HTTP 是万维网数据通信的基础,其中超文本文档包括指向用户可以轻松访问的其他资源的超链接,例如通过鼠标点击或点击屏幕。开发 HTTP 是为了促进超文本和万维网。

HTTP 由 Tim Berners-Lee 和他的团队在 1989 年至 1991 年间开发,HTTP 经历了许多变化,保持了大部分的简单性并进一步塑造了其灵活性。HTTP 已经从用于在半可信实验室环境中交换文件的早期协议发展到现代互联网迷宫,现在可以承载高分辨率和 3D 的图像、视频。

什么是 HTTP/3

从 HTTP/1.1(1999 年发布)到 HTTP/2(2015 年发布)的开发存在很大差距,随着 2019 年发布的 HTTP/3 的发布,事情正在迎头赶上。HTTP/3 将成为支持万维网的古老超文本传输​​协议的下一个版本。HTTP/3 是Google的QUIC协议的演变。它与传统的 HTTP 有很大不同。

HTTP/3 是即将成为下一代 HTTP 协议族。此版本在功能上与 HTTP/2 相似,与它的前身最不同之处主要在于 HTTP/3 将仅通过 QUIC 完成。QUIC 是在 UDP 之上实现的传输协议。

虽然 UDP 不是一种可靠的传输方式,但 QUIC 在 UDP 之上添加了一个引入可靠性的层。它提供数据包的重新传输、拥塞控制、定步和其他 TCP 中存在的其他功能。只要保持连接,从一个端点通过 QUIC 发送的数据迟早会出现在另一端。

QUIC 是一种新的可靠传输协议,可以被视为一种下一代TCP

QUIC 连接是通过 UDP 端口和 IP 地址建立的,但一旦建立,连接就会通过其“连接 ID”关联(每个连接都拥有一组连接标识符或连接 ID,每个连接标识符都可用于标识连接)。

QUIC 提供 0-RTT 和 1-RTT 连接设置,这意味着在设置新连接时,QUIC 充其量根本不需要额外的往返。这两个中较快的 0-RTT 握手仅在与主机建立了先前的连接并且该连接的秘密已被缓存时才有效。

基于 HTTP/3 的非 HTTP

通过 HTTP/3 发送 HTTP 以外的协议的工作已被推迟到 QUIC 版本 1 发布之后。

QUIC 连接是两个 QUIC 端点之间的单个对话。HTTP/3 的连接建立将版本协商与加密和传输握手相结合,以减少连接建立延迟。要通过这种连接实际发送数据,必须创建和使用一个或多个流。

如果分配给流的资源得到正确的优先级,则流多路复用对应用程序性能有显着影响。

HTTP/3 将使用 HTTPS:// URL 执行。HTTP:// URL 将保持原样,随着我们进一步进入具有更安全传输的未来,它们可能会变得越来越不常用。对此类 URL 的请求不会升级为使用 HTTP/3。

有关 HTTP3 的详细信息,请下载本书

在线阅读:RFC9114中文:HTTP/3 协议