HTTP/3 发布!

HTTP/3 发布!
文章图片
整理|苏宓出品|CSDN(ID:CSDNnews)6月6日 , IETFQUIC(InternetEngineeringTaskForce , 互联网工程任务组 , 简称IETF)、比利时的HTTP工作组成员RobinMark在Twitter上宣布“历时5年 , HTTP/3终于被标准化为RFC9114 。 将与RFC9204(QPACKheader压缩)和RFC9218(可扩展的优先级)一起开启Web的新篇章!” , 这意味着该协议已经进入了稳定的状态 , 而HTTP/3是HTTP超文本传输协议的第三个主要版本 。
HTTP/3 发布!
文章图片
同时HTTP/2也更新为新的RFC9113标准 。
HTTP/3 发布!
文章图片
基于QUIC的HTTP/3
据官方介绍 , HTTP/3是基于QUIC的 , 那么 , QUIC究竟是什么?
正如IEFT在简介中写道:
QUIC传输协议具有HTTP传输所需的几个特性 , 例如多路复用、流量控制、每个流的流控制和低延迟连接建立 。
HTTP/3 发布!
文章图片
简单来看 , 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来代替?
HTTP/3 发布!
文章图片
对此 , HTTP工作组成员RobinMark专门写了一篇稿件解释道 , 「一开始我们并不需要一个新的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 发布!】这样一来 , HTTP/3也被很多人诟病 , 如Apache推迟了将协议添加到其Web服务器 , 它认为自己的HTTPD做得很好 。 也有部分隐私倡导者担心QUIC , 他们发现QUIC承诺的速度提升难以捉摸 。