HTTP/2 (Hypertext Transfer Protocol 2) 是 HTTP 协议的第三个主要版本,在 HTTP/1.1 基础上引入了多路复用、头部压缩、服务器推送等特性,旨在提高 Web 应用的性能和效率。

解决的核心痛点:如何解决 HTTP/1.1 的队头阻塞问题,提升并发传输效率?


核心命题


运行机制

sequenceDiagram
    participant C as 客户端
    participant S as 服务器

    Note over C,S: TLS 握手完成,建立 HTTP/2 连接
    Note over C,S: 二进制帧交错传输

    par 并发请求
        C->>S: HEADERS (index.html)
        C->>S: DATA (index.html)
    and 并发请求
        C->>S: HEADERS (style.css)
        C->>S: HEADERS (script.js)
    end

    par 并发响应
        S-->>C: HEADERS + DATA (index.html)
        S-->>C: HEADERS + DATA (style.css)
    end

    Note over C,S: 流 1 关闭

关键区别

维度HTTP~2HTTP~1.1HTTP~3
传输方式二进制帧文本二进制帧
多路复用⚠️ 管道化(有队头阻塞)
队头阻塞TCP 层响应有序
头部压缩HPACKQPACK
服务器推送
底层协议TCP + TLSTCPQUIC

应用场景

  • 适用场景
    • 高并发页面:多资源并行加载,减少页面加载时间
    • 资源密集型:大量图片、CSS、JS 的页面
    • API 聚合:一次请求获取多个相关资源
  • 误用
    • 低延迟场景:高丢包率网络下性能可能不如 HTTP/1.1(TCP 队头阻塞)
    • 无 TLS 环境:主流浏览器仅支持 HTTP/2 over TLS

知识图谱

  • 父级概念HTTP — HTTP/2 是 HTTP 协议的一个版本
  • 子级概念
  • 并列概念
    • HTTP~1.1 — HTTP/2 的前一个版本
    • HTTP~3 — HTTP/2 的后续版本
  • 相关概念
    • TCP — HTTP/2 的传输层协议
    • TLS — HTTP/2 主流实现所需的加密层
    • 队头阻塞 — HTTP/2 仍存在的性能瓶颈

参考延伸