上文提到过,基于QUIC传输的第一个也是最基础的协议是HTTP。
就像HTTP/2是通过网络传输HTTP流量的一种新方式,HTTP/3是另一种通过网络传输HTTP的新方法。
HTTP的范例和概念没有改变。它含有头部(header)和正文(body),请求和回复,还有动词(verb)、Cookie和缓存。HTTP/3的主要改变是将这些报文比特传送到另一端的方式。
为了使HTTP可以通过QUIC传输,协议的某些方面要进行修改,修改的结果便是HTTP/3。这些必要修改是因QUIC与TCP在某些性质上的不同所致,修改包括:
在QUIC中,数据流由传输层本身提供,而在HTTP/2中,流由HTTP层完成。
由于数据流互相独立,HTTP/2中使用的头部压缩算法如果不做改动,会造成队头阻塞。
QUIC流与HTTP/2略有不同。本书的HTTP/3章节会做详细介绍。
HTTP/3将使用HTTPS://
URL履行。我们的世界里充斥着HTTPS URL,并且为新协议引入另一种URL方案被认为不切实际且完全不合理。如同HTTP/2一样,HTTP/3不会引入新的URL方案。
HTTP/2是传输HTTP的一种新方式,但是它还是基于TLS和TCP,这和HTTP/1一样。而在基于QUIC的HTTP/3中,情况更加复杂,它在一些重要的地方做了一些改变。
历史遗留下来的明文HTTP://
URL的处理方式将保持原样,随着我们迈入安全传输更加普及的未来,它的使用可能会越来越少。对HTTP URL的请求不会升级为使用HTTP/3。在实践中,因为其他一些理由,它们也很少升级到HTTP/2。
当尝试连接到一个全新的、未访问过的网站时,到HTTPS:// URL的连接可能必须通过TCP(也许会有并行的一个QUIC连接)。因为主机可能是一个不支持QUIC的传统服务器,或者链路之间可能有阻碍QUIC成功连接的中间设备。
现代的浏览器和服务器可能在首次握手时协商HTTP/2协议。在连接建立并且服务器响应客户端的HTTP请求时,服务器可以通告客户端它对HTTP/3的支持与偏好。
Loading...
Loading...
Loading...
Loading...
Loading...