Keep alive
Is a setting in http, that allows the consumer (typically a browser) to reuse the same original tcp connection to make several http request/response
This setting only asks the server to keep alive the connection
Is a form of multiplexing
Generally, there is a timeout to reconnect with a new tcp connection
in firefox
network.http.keep-alive.timeout = 0, this will stop the use of keep-alive
network.tcp.keepalive.enabled
There is also a MaxKeepAliveRequests, to limit the number of requests a tcp connection should handle before getting an new tcp connection
part of the headers of the http request (http 1.0)
Connection: keep-alive; Keep-Alive: timeout=5, max=1000
Prohibited in http 2.0
For http 1.1 keep-alive is default
Pros
This saves having to do a whole new connection, handshake and tls stuff, thus reducing the RTT
Network resource conservation – It’s less taxing on network resources to use a single connection per client.
Reduced network congestion – Reducing the number of TCP connections between your servers and clients can lead to a drop in network congestion.
Decreased latency – Reducing the number of three-way handshakes can lead to improved site latency.
ISsues
Having high timeouts or max requests, can use resources for too long running multiple server processes or threads.
Servers may not conform to keep-alive, if their servers are under stress
For some low-frequency access resources / services, such as a cold image server, less than a few times a year, it is wasteful to keep the next connection (this scenario is not very appropriate). Keep alive may have a great impact on performance, because it keeps unnecessary connections for a long time after the file is requested, which takes up the number of connections on the server side.
Links
https://reqbin.com/req/java/4sa9kqvu/keep-alive-connection-example#:~:text=The%20Keep%2DAlive%20Connection%20means,request%20header%20to%20the%20server.
https://stackoverflow.com/questions/13677261/how-to-keep-httpclient-connection-keep-alive
https://developpaper.com/talking-about-the-keep-alive-mechanism-in-http-and-the-keep-alive-mechanism-in-java-http/
Last updated
Was this helpful?