Cloudflare、Google与Mozilla合作加速HTTP/3采用

Cloudflare与浏览器Google Chrome以及Mozilla Firefox紧密的合作,共同在服务器端以及客户端实例最新的HTTP协议HTTP/3,Cloudflare的用户会逐渐收到HTTP/3可激活通知,而用户现在就可以使用Chrome通过HTTP/3与激活HTTP/3的网站连接,Firefox也将会在之后发布支持HTTP/3的版本。

HTTP/3在去年9月被称为HTTP over QUIC,而到了11月时,正式被IETF成员接受,称为HTTP/3。HTTP/3的特点在于不再使用TCP协议作为对话(Session)的传输层,而是使用新的互联网传输协议QUIC,QUIC在传输层提供串流的功能,QUIC串流共享相同的QUIC连接,因此不需要额外的握手或是经历慢启动,来重新创建QUIC串流,而且因为每个QUIC串流都独立交付,大部分的封包丢失只会影响一个串流,并不会对其他串流产生影响,之所以QUIC能拥有这样的特性,是因为QUIC基于UDP协议实例。

与过去使用TCP的HTTP协议相比,HTTP/3使用UDP获得更大的灵活性,而且QUIC的实例是在用户空间层级,协议实例的更新不需要依赖操作系统更新,通过QUIC,HTTP层级的串流可以简单地被映射到QUIC串流上,进而也能获得HTTP/2主打的好处之一,没有队头阻塞(Head-Of-Line Blocking)的问题。

Cloudflare解释,之所以不在HTTP/2使用QUIC,而是要另外创建一个协议,是因为HTTP/2部分的功能无法简单地被带到QUIC上,像是HTTP/2标头压缩HPACK,由于HPACK很大程度依赖不同HTTP请求和回应传递到端点的顺序。

而HTTP/3中,QUIC虽保证单个串流字节交付的顺序,但不保证不同串流之间的顺序,因此在HTTP/3中需要重新创建了标头压缩结构QPACK,另外,部分HTTP/2的功能像是预串流控制,QUIC本身就已经提供,因此也需要从HTTP/3中移除,降低协议不必要的复杂度。

互联网新标准采用的困境,在于究竟应该是服务器先支持还是浏览器先支持,而这次Cloudflare与两大浏览器Mozilla Firefox和Google Chrome合作,加速了HTTP/3的发展以及采用,Chrome Canary版本现在已经可通过HTTP/3,连接Cloudflare上激活HTTP/3的服务,而Mozilla也验证了HTTP/3的可行性,在稍晚时候也会推出支持HTTP/3的Firefox版本。