Is HTTP Shortlived?

felix001 asked:

I see mainy people class HTTP as a short lived protocol. i.e fire and forget. However with HTTP 1.1 and the use of keepalive connections I wouldnt really say this is the case.

Can any confirm if this is the case or not ?

My answer:


First, we need a definition.

Long-lived protocols are those for which the connection is intended to remain open indefinitely. (An example of such a protocol is ssh. While an ssh connection can be short, it is meant to be able to idle forever, thus the protocol is long-lived.)

Short-lived protocols are more transactional in nature; a particular action occurs, or series of actions, and then the connection is closed.

By these definitions HTTP is a short-lived protocol, even with keep-alive.

The fact that an HTTP connection may remain open for minutes or hours while data is being transferred is irrelevant.

And Keep-Alive is a performance optimization meant to allow a client to make multiple requests of the server over a short period of time. Servers must drop an idle Keep-Alive connection after some time, because they have only a limited amount of resources for holding open ports, and the client doesn’t need it to remain open anyway.

Because HTTP cannot remain open and idle forever, and is not designed to do so, it is a short-lived protocol.


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.