(1)HTTP/1.1(short-lived connections)无法多路复用 其所带来队头堵塞问题(Head of Line Blocking)在HTTP/1.1协议中,由于HTTP是基于TCP协议进行数据传输的,而TCP协议是一种面向流的协议,因此在传输数据时会将数据拆分为一个个TCP报文段进行传输。当服务器在处理某个TCP连接时,如果某个请求的响应没有返回,那么后续的所有请求都必须等待该请求的响应返回后才能继续发送,即便这些请求可以并发处理,这就是HTTP队头阻塞。
HTTP/1.1协议引入了长连接机制,其中每个请求和响应可以是short-lived connections,从而提高了HTTP的性能和可靠性。
(2)HTTP/2 (Persistent connection) HTTP队头阻塞会降低HTTP请求的并发性能,导致请求的响应时间变长。为了解决这个问题,HTTP/2协议引入了多路复用技术,允许在一个TCP连接上同时传输多个HTTP请求和响应,从而避免了HTTP队头阻塞的问题。
调整响应优先级,头部压缩,Server Push
(3) HTTP/3 (HTTP Pipelining) 旨在通过使用多路复用、流优先级和丢失恢复等技术来减少延迟并提高 Web 连接的可靠性。默认情况下,它还使用加密,从而增强了安全性和隐私性。
与其前身 HTTP/1 和 HTTP/2 相比,HTTP/3 在处理请求和响应的方式上有几个关键差异。例如,HTTP/3 使用 QUIC (可以为除HTTP协议以外的应用层协议提供支持)的基于数据报的传输而不是 TCP (现存设备对TCP和UDP的支持已经僵化)的基于流的传输,这样可以更有效地使用网络资源并减少延迟。
HTTP/3 仍然相对较新,尚未被 Web 服务器和浏览器广泛支持。但是,随着越来越多的Web开发人员和网络管理员意识到其优势并开始在其应用程序中实施它,其采用率预计将增长。