1. HTTP/1
超文本传输协议,处于计算机网络中的应用层,HTTP是建立在TCP协议之上,所以HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性。
缺陷:
- 连接无法复用 ---------- 每次请求经历三次握手和慢启动
- HOLB(队头阻塞) ---------- 带宽无法充分利用
- 协议开销大 ---------- 头部携带信息过多,且每次头部信息基本无变化
- 传输数据基本为明文 ---------- 不安全
浏览器默认对同一域下的资源,只保持一定的连接数,会阻塞过多的连接。
因此页面有多请求的建议使用请求复用或者把资源打包压缩传输。
2. HTTP/2
新特性:
- 二进制传输 ---------- 流、消息、帧
- 多路复用 ---------- 同域名所有通信在单个连接上完成;同域名只占用一个TCP连接
- header压缩 ---------- 使用首部表,有变化才更新头部键值对
- server push
缺陷:
- 由于使用了多路复用,若TCP连接中出现了丢包,整个过程都需要重传;而HTTP/1而言有多个连接,问题不大
3.HTTP/3
基于UDP协议的QUIC协议
特点:
- 0-RTT(往返时延) ---------- 缓存会话上下文
- 多路复用 ---------- 原生实现(TCP没有的功能)
- 认证加密 ---------- 报文头部、body都是认证或加密的
- 前向纠错机制(FEC) ---------- 数据包包含冗余其他包部分数据,在丢失少量包的情况下可以直接组装,无需重传
参考:
HTTP/2及HTTP/3特性 - HackerVirus - 博客园
HTTP/3的过去、现在和未来_移动_Rustam Lalkaka_InfoQ精选文章