HTTP/1.1 (Hypertext Transfer Protocol 1.1) 是 HTTP 协议的第二个主要版本,在 HTTP/1.0 基础上引入了持久连接、管道化、分块传输等特性,提高了 Web 应用的性能和效率。

解决的核心痛点:如何减少 TCP 连接建立的开销,提升页面加载速度?


核心命题


运行机制

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

    Note over C,S: 1. 建立 TCP 连接 (三次握手)
    C->>S: SYN
    S-->>C: SYN-ACK
    C->>S: ACK

    Note over C,S: 2. 持久连接上发送多个请求
    C->>S: GET /index.html
    C->>S: GET /style.css
    C->>S: GET /script.js

    S-->>C: 200 OK (index.html)
    S-->>C: 200 OK (style.css)
    S-->>C: 200 OK (script.js)

    Note over C,S: 3. 关闭连接(或保持)
    C->>S: Connection: close

关键区别

维度HTTP~1.1HTTP~1.0HTTP~2
持久连接默认开启需手动开启默认开启
管道化支持不支持多路复用
队头阻塞有(响应有序)
头部压缩HPACK
多路复用支持
Host 头部必需可选必需

应用场景

  • 适用场景
    • 兼容性强:所有浏览器和服务器都支持,适用于需要广泛兼容性的场景
    • 简单请求:请求数量较少时,持久连接已能满足性能需求
  • 误用
    • 大量并发请求:应使用 HTTP/2 或 HTTP/3,避免队头阻塞
    • 敏感数据传输:应使用 HTTPS 而非明文 HTTP/1.1

知识图谱

  • 父级概念HTTP — HTTP/1.1 是 HTTP 协议的一个版本
  • 子级概念
  • 并列概念
  • 相关概念
    • TCP — HTTP/1.1 的传输层协议
    • 队头阻塞 — HTTP/1.1 的性能瓶颈

参考延伸