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.
The Connection
header needs to be set to "keep-alive" for this header to have any meaning.
Connection-specific header fields such as Connection
and Keep-Alive
are prohibited in HTTP/2. Chrome and Firefox ignore them in HTTP/2 responses, but Safari conforms to the HTTP/2 spec requirements and won’t load any response which contains them.
Header type | General header |
---|---|
Forbidden header name | yes |
Syntax
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
: indicating the minimum amount of time an idle connection has to be kept opened (in seconds). Note that timeouts longer than the TCP timeout may be ignored if no keep-alive TCP message is set at the transport level.max
: indicating 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/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 | Title |
---|---|
HTTP Keep-Alive Header | Keep-Alive Header (IETF Internet Draft) |
RFC 7230, appendix A.1.2: Keep-Alive | Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing |
Browser compatibility
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.