Connection
The Connection
general 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 for
subsequent requests to the same server to be done.
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 used by the message - including 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 despite that being the default in HTTP/1.1.
Header type | Request header, Response header |
---|---|
Forbidden header name | yes |
Syntax
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