时隔多年HTTP发布新版本:HTTP/3
6月6日,比利时HTTP工作组成员RobinMark在Twitter上宣布,HTTP/3最终被标准化为RFC9114。将与RFC9204(QFCKheader压缩)和RFC9218(可扩展优先级)一起开启Web的新篇章!这意味着协议已经进入稳定状态,HTTP/3是HTTP超文本传输协议的第三个主要版本。
时隔多年HTTP发布新版本:HTTP/3
根据官方的说法,HTTP/3是以QUIC为基础的,那么,QUIC到底是什么?
QUIC传输协议具有多路复用、流量控制、各流量流量控制、低延迟连接等HTTP传输所需的几个特征。
简单来说,QUIC是2012年Google实现并部署的一个通用传输层网络协议,最终在2013年向公众公开发布。之所以发展QUIC,Google的初衷是为了解决传控协议(TCP)建立连接并开始传输数据需要来回几次的事实。原协议产生的连接和传输延迟时间较长,带来用户体验差。QUIC改用用户数据报协议(UDP)来传输流量,UDP减少了客户端和服务器的往返次数,因此能加快传输速度,在移动网络上很重要。
目前,许多行业公司已经使用了QUIC协议。其中,谷歌非常喜欢QUIC,因此它在2020年将QUIC应用到Chrome浏览器中,超过一半的QUIC用于Gogle服务器的所有连接。
另外,2018年的Cloudflare也将QUIC作为网络协议选项。微软也很喜欢QUIC,不仅自己创建版本,还开源了。NGINX增加了HTTP/3支持。
为什么选择HTTP/3而不是放置大流行的HTTP/2?
虽然HTTP/3作为新一代超文本传输协议,比第二代更先进,但HTTP/2直到2015年才被标准化,根据Cloudflare数据,HTTP/2仍然是最广泛使用的HTTP版本,与HTTP/2相比,第二代HTTP/3更受欢迎。那么,为什么IETF如此紧急地推出HTTP/3来取代它呢?
一开始,我们不需要一个新的HTTP版本,而是让底层传输控制协议(TCP)升级,HTTP工作组成员Robinmark专门写了一篇文章。
TCP是互联网上使用和部署最广泛的协议之一,作为几十年来的网络基石,但TCP并没有真正考虑到互联网早期已经出现的最大效率问题。相比之下,新的传输协议QUIC被公众所期望。
然而,由于QUIC在许多特性上与TCP大不相同,因此很难直接在HTTP/2中运行。因此,HTTP工作组在几个关键领域进行了调整,使其与QUIC兼容。由于营销和便利,用户可以更清楚地识别差异,因此该调整版最终被命名为HTTP/3。
简单来说,HTTP/3本身是一个相对较小的HTTP/2的改编,使其兼容新QUIC协议。所以,HTTP/1.1和HTTP/2的区别远远大于HTTP/2和HTTP/3。
通过这种方式,HTTP/3也遭到了很多人的诟病,比如说Apache推迟将协议添加到自以为HTPD做得不错的自己的Web服务器。还有一部分隐私倡导者对QUIC感到担忧,发现QUIC承诺的提速难以捉摸。
然而,在HTTP的发展过程中,HTTP/3进入标准化也是一个重要的里程碑事件。