http1.0
浏览器与服务器保持短暂的连接,每次请求都要与服务器建立一个TCP连接,同时服务器完成请求后立即断开TCP连接,服务器也不跟踪每个客户也不记录过去的请求。**
http1.1
默认长连接Connection:keep-alive 一个连接可以传送多个请求和响应,减少了建立连接和关闭连接的消耗和延迟,同时增加了更多的请求头和响应头,如引入了更多的缓存策略,比如 if-Match if-none-Match, 引入range允许请求某一部分,以及请求方法put,delete,options.
http2.0
性能上有了很大的提升,如多路复用,二进制分帧,服务器推送,首部压缩
http3.0
- 基于谷歌的QUIC协议,QUIC协议是用UDP实现的
- 减少了TCP三次握手的时间,以及TLS握手时间
- 解决了http2.0中前一个stream丢包导致后一个stream被阻塞的问题
- 优化了重传策略,重传包和原包的编号不同,降低后续重传计算的消耗
- 连接迁移,不再用tcp四元组确定一个连接,而是用一个64位随机数来确定这个连接
- 流量控制