HTTP2

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/