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.