HTTP/1.1 特点
- TCP 连接数限制
- 浏览器和同一域的并行连接数有最大限制(不同浏览器限制不一样)
- Head-Of-Line Blocking(HOLB)
- 同一个连接上的多个请求,前面的请求会阻塞后面的请求
- 协议开销大
- Header 内容多
- 明文传输,不安全
HTTP/2 特点
二进制传输,解析更高效
HTTP/2 采用二进制格式传输数据,HTTP/1.x 使用文本格式
多路复用
- 同域名下的所有通信在单个连接上完成
- 数据流以消息的形式发送,消息由一个或多个帧组成,帧之间可以乱序发送,帧首部的流标记用于支持帧重装
Header 压缩
- HTTP/2 在客户端和服务器端使用 “首部表”跟踪和存储之前发送的头部键值对。
- 首部表在连接状态时始终存在,请求和响应只发送更新部分的头部,不发送以存在部分
Server Push
- 服务器可以将客户端需要的内容预先推送过去,也叫 “cache push”,
- 浏览器有权选择是否接受,如推送的资源已经被浏览器缓存过,浏览器可以通过发送 RST_STREAM 帧来拒收
参考:
https://blog.fundebug.com/2019/03/07/understand-http2-and-http3/