HTTP改而使用一种基于UDP的协议。

超文本传输协议(HTTP)是规定浏览器如何与Web伺服器进行通信的网路协议,它的下一个版本将与现在使用的版本大不相同。

今天的HTTP(版本1.0、1.1和2)都基于TCP(传输控制协议)。TCP是作为一套核心IP(Internet协议)层的一部分而定义的,它提供了这种机制:以一种可靠、有序和校错的方式,通过IP网路传输数据。「可靠」是指如果某些数据在传输过程中丢失(由于硬体故障、拥塞或超时),接收端可以检测丢失问题,要求发送端重新发送丢失的数据;「有序」是指数据按照当初传输的顺序来接收;「校错」是指传输过程中的任何损坏都能检查出来。

这些都是理想的属性,对于HTTP之类的协议而言必不可少,但TCP是作为一种通用型的解决方案而设计的,适合需要这种可靠性的任何应用。它并不是针对HTTP适用的场景类型经过特别的调整。比如说,TCP需要在客户端和伺服器之间进行多次往返以建立连接;使用SSL over TCP需要后续往返以建立加密连接。一种专为HTTP设计的协议可以合并这些协商,并减少往返次数,因而缩短网路延迟。

对立面

谷歌在不断努力提高Web联网的速度,一直在研发一种名为QUIC的实验性网路协议,QUIC的全称是「快速UDP互联网连接」。QUIC放弃了TCP,改而使用一种同类协议UDP(用户数据报协议)。UDP是TCP的「对立面」;它不可靠(从一端发送的数据可能永远不会被另一端接收,而另一端无法知道某些数据已经丢失),而且无序(稍后发送的数据可能取代之前发送的数据,以凌乱的方式抵达接收端)。然而,UDP非常简单,新协议常常建立在UDP的基础上。

QUIC恢复了TCP拥有的可靠性和有序,但没有带来相同数量的往返和延迟。比如说,如果客户端重新连接到伺服器,该客户端可以通过第一个数据包发送重要的加密数据,让伺服器能够利用之前协商的同一种加密,重新使用原有连接,无需任何额外的往返。

互联网工程任务组(IETF,协作设计网路协议的行业组织)一直致力于制定标准化的QUIC版本,该版本目前与谷歌的原始提案有很大差异。IETF还希望开发一个使用QUIC的HTTP版本,该版本之前名为HTTP-over-QUIC或HTTP/QUIC。然而,HTTP-over-QUIC不是HTTP/2 over QUIC,而是一种为QUIC设计的新的HTTP更新版。

因此,身兼IETF旗下HTTP工作组组长和QUIC工作组组长的马克?诺丁汉(Mark Nottingham)提议,将HTTP-over-QUIC改名为HTTP/3,这个提议似乎已得到了广泛接受。HTTP的下一个版本将QUIC列作一项必不可少的基本功能,那样HTTP/3将始终使用QUIC作为其网路协议。


推荐阅读:
相关文章