Connection

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

The HTTP Connection header controls whether the network connection stays open after the current transaction finishes. If the value sent is keep-alive, the connection is persistent and not closed, allowing subsequent requests to the same server on the same connection.

Warning: Connection-specific header fields such as Connection and Keep-Alive are prohibited in HTTP/2 and HTTP/3. Chrome and Firefox ignore them in HTTP/2 responses, but Safari conforms to the HTTP/2 spec requirements and does not load any response that contains them.

All hop-by-hop headers, including the standard hop-by-hop headers (Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization, and Proxy-Authenticate) must be listed in the Connection header, so that the first proxy knows it has to consume them and not forward them further.

The default value of Connection changed between HTTP/1.0 and HTTP/1.1. Therefore, to ensure backwards compatibility, browsers often send Connection: keep-alive explicitly, even though it's the default in HTTP/1.1.

Header type Request header, Response header
Forbidden header name Yes

Syntax

http
Connection: keep-alive
Connection: close

Directives

close

Indicates that either the client or the server would like to close the connection. This is the default on HTTP/1.0 requests.

any comma-separated list of HTTP headers (usually keep-alive only)

Indicates that the client would like to keep the connection open. Keeping a connection open is the default on HTTP/1.1 requests. The list of headers are the name of the header to be removed by the first non-transparent proxy or cache in-between: these headers define the connection between the emitter and the first entity, not the destination node.

Specifications

Specification
HTTP Semantics
# field.connection

Browser compatibility

BCD tables only load in the browser