0

HTTP/3 发布!

 2 years ago
source link: https://blog.p2hp.com/archives/8872
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

HTTP/3 发布!

6 月 6 日,IETF QUIC(Internet Engineering Task Force,互联网工程任务组,简称 IETF)、比利时的 HTTP 工作组成员 Robin Mark 在 Twitter 上宣布“历时 5 年,HTTP/3 终于被标准化为 RFC 9114。将与 RFC 9204(QPACK header 压缩)和 RFC 9218 (可扩展的优先级)一起开启 Web 的新篇章!”,这意味着该协议已经进入了稳定的状态,而 HTTP/3 是 HTTP 超文本传输协议的第三个主要版本。

d41d8cd98f00b204e9800998ecf8427e.jpg

同时 HTTP/2 也更新为新的 RFC 9113 标准。

d41d8cd98f00b204e9800998ecf8427e-1.jpg

基于 QUIC 的 HTTP/3

据官方介绍,HTTP/3 是基于 QUIC 的,那么,QUIC 究竟是什么?

正如 IEFT 在简介中写道:

QUIC 传输协议具有 HTTP 传输所需的几个特性,例如多路复用、流量控制、每个流的流控制和低延迟连接建立。

d41d8cd98f00b204e9800998ecf8427e-2.jpg

简单来看,QUIC 是一个通用的传输层网络协议,是由 Google 在 2012 年实现并部署,最后在 2013 年向公众公开发布。之所以开发 QUIC,Google 的初衷是解决传输控制协议(TCP)需要几次来回才能建立连接并开始传输数据的事实。原有的协议产生的连接和传输延迟时间较长,带来了较差的用户体验。QUIC 改为使用用户数据报协议 (UDP) 来传输流量。UDP 减少了客户端和服务器之间的往返次数,因此可以加快传输速度,这一点在移动网络上非常重要。

当前,业界已经陆续有不少公司用上了 QUIC 协议。其中,谷歌就非常喜欢 QUIC,以至于在 2020 年其将 QUIC 应用到了 Chrome 浏览器中,并在 Google 服务器所有的连接中,有一半以上使用了 QUIC。

此外,Cloudflare 在 2018 年也将 QUIC 作为网络协议选项。微软也非常喜欢 QUIC,它不仅创建了自己的版本,还将其开源出来(https://techcommunity.microsoft.com/t5/networking-blog/msquic-is-open-source/ba-p/1345441)。NGINX 增加了 HTTP/3 支持。

为什么放着大流行的 HTTP/2 不用,而选择 HTTP/3?

虽然 HTTP/3 作为新一代超文本传输协议,要比第二代更为先进一些,但 HTTP/2 在 2015 年才被标准化,且据 Cloudflare 数据显示,HTTP/2 仍然是应用最为广泛的 HTTP 版本,排在第二的 HTTP/3 流行度要比 HTTP/2 差了很多。那么,IETF 为什么如此紧急地推出了 HTTP/3 来代替?

d41d8cd98f00b204e9800998ecf8427e-3.jpg

对此,HTTP 工作组成员 Robin Mark 专门写了一篇稿件解释道,「一开始我们并不需要一个新的 HTTP 版本,而是要让底层传输控制协议(TCP)实现升级」。

其表示,几十年来,TCP 作为网络基石,是互联网上使用和部署最广泛的协议之一,但是在互联网早期就已经出现的 TCP 并没有真正考虑到最大效率的问题。相较之下,新传输协议 QUIC 便被众人赋予期望。

然而,如果把 QUIC 直接运行在 HTTP/2 上有一定难度,因为其在很多特性上与 TCP 有着很大的不同。于是,HTTP 工作组便在几个关键领域进行了调整,使其与 QUIC 兼容。这个调整后的版本最终被命名为 HTTP / 3,之所以如此命名,主要原因是出于营销和方便用户更加清晰地识别出来区别。

简单来看,HTTP/3 本身就是对 HTTP/2 相对较小的改编,以使其与新的 QUIC 协议兼容。因此,HTTP/1.1 和 HTTP/2 之间的差异要比 HTTP/2 和 HTTP/3 之间的差异要大得多。

这样一来,HTTP/3 也被很多人诟病,如 Apache 推迟了将协议添加到其 Web 服务器,它认为自己的 HTTPD 做得很好。也有部分隐私倡导者担心 QUIC,他们发现 QUIC 承诺的速度提升难以捉摸。

不过,无论如何,HTTP/3 进入标准化,也是 HTTP 发展历程中重要的一个里程碑事件。如果你对 HTTP/3 也感兴趣,不妨通过官方介绍了解更多内容:https://www.rfc-editor.org/info/rfc9114

https://www.theregister.com/2022/06/07/http3_rfc_9114_published/

https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK