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