HTTP1.x 连接无法复用、队头阻塞、协议开销大和安全因素等多个缺陷;
HTTP/1.0传输数据时,每次都需要重新建立连接,增加延迟。
HTTP/1.1虽然加入keep-alive可以复用一部分连接,但域名分片等情况下仍然需要建立多个connection,耗费资源,给服务器带来性能压力。
HTTP2 通过多路复用、二进制流、Header 压缩等等技术,极大地提高了性能,同时提供server push,使服务端通过push的方式将客户端需要的内容推送过去,也叫"cache push"。但是。由于HTTP2采用多路复用,一般来说同一个域名下只需要一个TCP连接,但当这个连接出现丢包现象那就会导致HTTP/2的表现情况反倒不如HTTP/1了。因为在出现丢包的情况下,整个TCP都要开始等待重传,也就导致了后面的所有数据都被阻塞了。但是对于HTTP/1.1来说,可以开启多个TCP连接,出现这种情况反到只会影响其中一个连接,剩余的 TCP 连接还可以正常传输数据。
HTTP3 QUIC 基于 UDP 实现,是 HTTP/3 中的底层支撑协议,该协议基于 UDP,又取了TCP中的精华,实现了即快又可靠的协议。
http1、http2、http3简介
最新推荐文章于 2024-03-06 19:13:23 发布