HTTP Transitory and Persistent Connections and Pipelining
(Page 3 of 3)
Complications Arising From Persistent Connections and Pipelining
The obvious advantages of persistent connections make them the default for modern HTTP communication, but they do have one drawback: they complicate the process of sending data from the server to the client. With transitory connections, the client knows that all of the data it receives back from the server is in reply to the one request it sent. Once it has all the bytes the server sent and the TCP session ends, the client knows the file is complete.
With persistent connections, and especially when pipelining is used, the server will typically be sending one file after the other to the client, which must differentiate them. Remember that TCP just sends data as a series of unstructured bytes; the application must take care of specifying where the dividing points are between files. This means that persistent connections and pipelining lead to data length issues that must be specially addressed in HTTP.
To provide compatibility with older versions of the software, HTTP/1.1 servers still support transitory connections, and will automatically close the TCP connection after one response if they receive an HTTP/0.9 or HTTP/1.0 request. HTTP/1.1 clients may also specify that they do not want to use persistent connections in their initial request. The next topic describes how persistent connections are created and managed.
Home - Table Of Contents - Contact Us
The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005
© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.