A user agent can force a cache reload using the Cache-Control request directive. The protocol spec discusses many more aspects of caching. By opening and closing fewer TCP connections, CPU time is saved, and memory used for TCP protocol control blocks is also saved. HTTP requests and responses can be pipelined on a connection. Pipelining allows client to make multiple requests without waiting for each respons This allows single TCP connection to be used much more efficiently, with much lower elapsed time.
Network congestion is reduced.
Reduces number of packets caused by TCP opens, and by allowing TCP sufficient time to determine the congestion state of the network. HTTP can evolve more gracefully. Errors can be reported without the penalty of closing the TCP connection. Clients using future versions of HTTP might optimistically try a new feature, but if communicating with an older server, retry with old semantics after an error is reported. One complication of consistent connections is that either the client or server or a proxy might time-out the connection if no data is sent for a while.