跳到主要内容

9. 其他 HTTP 要求/考虑事项

9.1 连接管理

HTTP/2 连接是持久连接. 对于给定的 host 和 port 组合, 客户端 SHOULD NOT 打开超过一个 HTTP/2 连接.

9.1.1 连接复用

在特定条件下, 与 origin server 建立的连接可以被多个 origin 复用.

9.1.2 421 (Misdirected Request) 状态码

421 status code 表示请求被定向到了无法生成响应的服务器.

9.2 TLS 特性的使用

对于基于 TLS 的 HTTP/2, 实现 MUST 支持 TLS 1.2 [TLS12] 或更高版本.

9.2.1 TLS 1.2 特性

实现 MUST 支持 TLS 1.2. 实现 MUST 禁用 compression, 并且 MUST 支持 Server Name Indication (SNI).

9.2.2 TLS 1.2 Cipher Suites

HTTP/2 部署 MUST 支持使用 P-256 elliptic curve 的 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.

HTTP Header Fields

HTTP/2 使用以 ':' 字符开头的特殊 pseudo-header fields:

  • :method - HTTP method
  • :scheme - target URI 的 scheme 部分
  • :authority - target URI 的 authority 部分
  • :path - target URI 的 path 和 query 部分
  • :status - HTTP status code (仅用于响应)

Request Pseudo-Header Fields

所有 HTTP/2 请求都 MUST 为 :method, :scheme, 和 :path pseudo-header fields 分别包含且仅包含一个有效值.

Response Pseudo-Header Fields

对于 HTTP/2 响应, 需要且仅需要一个 :status pseudo-header field.

Connection-Specific Header Fields

HTTP/2 不使用 Connection header field. Connection-specific header fields (例如 Keep-Alive, Proxy-Connection, Transfer-Encoding, 和 Upgrade) MUST NOT 被包含.