Passa al contenuto principale

6. Connection Management (连接管理)

6.1. Connection Header Field (Connection 头部字段)

Connection        = 1#connection-option
connection-option = token

Connection 头部字段允许发送方指示此连接所需的控制选项。

常见值:

  • Connection: close - 发送方希望关闭连接
  • Connection: keep-alive - 保持连接(HTTP/1.0)

示例:

Connection: close
Connection: keep-alive

6.2. Establishment (建立连接)

HTTP 依赖底层传输协议建立客户端和服务器之间的连接。HTTP/1.1 通常使用 TCP/IP。

6.3. Persistence (持久连接)

HTTP/1.1 默认使用"持久连接" (persistent connections),允许在单个连接上执行多个请求/响应交换。

优点:

  • 减少 CPU 和内存使用
  • 减少后续请求的延迟
  • 允许请求流水线化 (pipelining)

6.4. Concurrency (并发)

客户端不应该 (SHOULD NOT) 与给定服务器建立超过两个连接。

6.5. Failures and Timeouts (失败与超时)

服务器通常会对不活动的连接设置超时。客户端应该重试失败的请求(如果是幂等方法)。

6.6. Tear-down (拆除连接)

Connection: close 选项用于发信号表示发送方在完成响应后将关闭连接。

6.7. Upgrade Header Field (Upgrade 头部字段)

Upgrade          = 1#protocol

protocol = protocol-name ["/" protocol-version]
protocol-name = token
protocol-version = token

Upgrade 头部字段用于在现有连接上升级到不同的协议。

示例:

GET /hello HTTP/1.1
Host: www.example.com
Upgrade: WebSocket
Connection: Upgrade

HTTP/1.1 101 Switching Protocols
Upgrade: WebSocket
Connection: Upgrade

✅ Section 6 完成