HTTP/1
一次请求-响应,建立一个连接,用完关闭,每一个请求都要建立一个连接(HTTP1有连接无法复用、队头阻塞、协议开销大和安全因素等多个缺陷)。
HTTP/2
多个请求可同时在一个连接上并行执行(多路复用),某个请求任务耗时严重,不会影响到其它连接的正常执行。下面这张图清晰地说明了什么是多路复用。
虽然HTTP2通过多路复用、二进制流与 Header 压缩等技术极大地提高了性能。但是当这个TCP连接中出现了丢包的情况,那就会导致 HTTP/2 的表现情况反倒不如 HTTP/1 了。因为在出现丢包的情况下,整个 TCP 都要开始等待重传,也就导致了后面的所有数据都被阻塞了。
HTTP/3
抛弃了TCP 协议,以全新的视角重新设计 HTTP。其底层支撑是 QUIC 协议,该协议基于 UDP,有 UDP 特有的优势,同时它又吸取了TCP 中的精华,实现了即快又可靠的协议。
下面这张图很好的解释了Http1、Http2、Http3的发展历程。
上图中的HTTPS是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,其中SSL/TLS、TLS1.2+、TLS1.3+都是加密协议!