Skip to main content

9. Additional HTTP Requirements/Considerations

9.1 Connection Management

HTTP/2 connections are persistent. Clients SHOULD NOT open more than one HTTP/2 connection to a given host and port pair.

9.1.1 Connection Reuse

Connections established to origin servers can be reused for multiple origins under certain conditions.

9.1.2 The 421 (Misdirected Request) Status Code

The 421 status code indicates that the request was directed at a server that is not able to produce a response.

9.2 Use of TLS Features

Implementations MUST support TLS 1.2 [TLS12] or higher for HTTP/2 over TLS.

9.2.1 TLS 1.2 Features

TLS 1.2 MUST be supported. Implementations MUST disable compression and MUST support Server Name Indication (SNI).

9.2.2 TLS 1.2 Cipher Suites

Deployments of HTTP/2 MUST support TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 with P-256 elliptic curve.

HTTP Header Fields

HTTP/2 uses special pseudo-header fields beginning with ':' character:

  • :method - HTTP method
  • :scheme - Scheme portion of target URI
  • :authority - Authority portion of target URI
  • :path - Path and query portions of target URI
  • :status - HTTP status code (responses only)

Request Pseudo-Header Fields

All HTTP/2 requests MUST include exactly one valid value for :method, :scheme, and :path pseudo-header fields.

Response Pseudo-Header Fields

For HTTP/2 responses, a single :status pseudo-header field is required.

Connection-Specific Header Fields

HTTP/2 does not use the Connection header field. Connection-specific header fields (such as Keep-Alive, Proxy-Connection, Transfer-Encoding, and Upgrade) MUST NOT be included.