Keep-Alive
The Keep-Alive
general header allows the sender to hint about how the connection may be used to set a timeout and a maximum amount of requests.
Note: Set the Connection
header to "keep-alive" for this header to have any effect.
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
specification requirements and does not load any response that contains them.
Header type | Request header, Response header |
---|---|
Forbidden header name | yes |
Syntax
http
Keep-Alive: parameters
Directives
parameters
-
A comma-separated list of parameters, each consisting of an identifier and a value separated by the equal sign (
'='
). The following identifiers are possible:timeout
: An integer that is the time in seconds that the host will allow an idle connection to remain open before it is closed. A connection is idle if no data is sent or received by a host. A host may keep an idle connection open for longer thantimeout
seconds, but the host should attempt to retain a connection for at leasttimeout
seconds.max
: An integer that is the maximum number of requests that can be sent on this connection before closing it. Unless0
, this value is ignored for non-pipelined connections as another request will be sent in the next response. An HTTP pipeline can use it to limit the pipelining.
Examples
A response containing a Keep-Alive
header:
http
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Aug 2016 15:23:13 GMT
Keep-Alive: timeout=5, max=1000
Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT
Server: Apache
(body)
Specifications
Specification |
---|
HTTP/1.1 # compatibility.with.http.1.0.persistent.connections |
Browser compatibility
BCD tables only load in the browser
See also
Connection
- Connection management in HTTP/1.x
- Keep-Alive Header IETF Internet Draft