What do you understand by connection:keep-alive in http header?


When you should set the connectuon:keep-alive in the header of http response for a request?


The Keep-Alive general-header field may be used to include diagnostic information and other optional parameters associated with the “keep-alive” keyword of the Connection header field . This Keep-Alive field must only be used when the “keep-alive” keyword is present

you can go to link given below to understand this concept in details.


The Keep-Alive header is a hop-by-hop header that provides information about a persistent connection. Both client and server are able to provide information independently.

Keep-Alive = “Keep-Alive” “:” 1#keep-alive-info
keep-alive-info = “timeout” “=” delta-seconds
/ “max” “=” 1*DIGIT
/ keep-alive-extension
keep-alive-extension = token [ “=” ( token / quoted-string ) ]
This header is sent by either host participating in a persistent connection. The values might be set based on policy implemented by servers, clients and intermediaries. Values might also be set based on knowledge that a host has about lower layer intermediaries in the path of the request, such as a TCP middlebox. Such middleboxes, in particular network address translators (NATs), frequently discard mappings for idle connections, causing the connection to fail after a certain duration of inactivity.

The value of Keep-Alive parameters can change on each request or response sent on a connection. Absence of the header or any parameter implies that any previously provided value still applies.

As a hop-by-hop header, this header only applies to a single transport-level connection. If a Keep-Alive header is added to a request or response, the Connection header MUST include the tag Keep-Alive. This ensures that compliant intermediaries that do not recognize this header remove it before forwarding a request.