Skip to content

3.3 HTTP/2 牛逼在哪?

  • 依旧是http域名
  • 依旧基于 TCP 传输
  • 进行头部压缩:
    • 固定编码:固定字段如 Cookie 通过编码从 6 个字节缩短到 1 个字节
    • 协议编码:还可以在连接后协议字典,进行压缩编码
  • 数据二进制编码:
    • 对于如 200,通过二进制编码只要一个字节,如果字符串编码三个字节
  • 并发传输:HTTP/1.1 基于请求响应模型,请求后必须等待响应才能开始下一个请求,会有队头阻塞问题。
    • HTTP/2 通过 Stream,多个 Stream 复用同一条 TCP 链接,之间可以并发请求,并通过 Stream ID 拼接,保证数据有序。
  • 服务器主动推送资源:HTTP/1.1 只能客户端请求后获取响应,如 html、css 需要请求多次
    • HTTP/2,客户端访问 HTML,服务器可以主动推送 CSS 文件,减少传递次数,是通过上面的 Stream 实现,服务器推送使用偶数 Steam,客户端请求用奇数的。

正在精进