- From: Diwakar Shetty <Diwakar.Shetty@oracle.com>
- Date: Wed, 27 Nov 2002 09:47:35 +0530
- To: Alex Rousskov <rousskov@measurement-factory.com>
- CC: ietf-http-wg@w3.org
My replies inline below Alex Rousskov wrote: > On Tue, 26 Nov 2002, Diwakar Shetty wrote: > > > Following is a para which i read in one book. I could not understand > > it. Could somebody please elaborate > > > > --------------------------------------------------- > > An HTTP/1.0 client could send a "Keep-Alive" header to a HTTP/1.1 > > proxy that did not understand "Connection" but might mistakenly > > forward it. If the downstream connection also maintained a > > "Keep-Alive" connection, the proxy in the middle would never receive > > the closing of the response > > --------------------------------------------------- > > You may be slightly misquoting the book or the book may be slightly > misquoting the protocol -- ``HTTP/1.1 proxy that did not understand > Connection'' is an oxymoron. An exact quote from RFC 2616 (section > 19.6.2) reads: > > The problem was that some existing 1.0 clients may be > sending Keep-Alive to a proxy server that doesn't understand > Connection, which would then erroneously forward it to the next > inbound server, which would establish the Keep-Alive connection and > result in a hung HTTP/1.0 proxy waiting for the close on the > response. The book is referring to HTTP/1.1 proxy and not HTTP/1.0 proxy If interested, one can refer the book "Web Protocols and Practice" by Balachander Krishnamurthy and Jennifer Rexford, Addison Wesley, May 2001 ISBN 0-201-71088-9 Page no. 289 in the para for "Semantic requirements on an HTTP/1.1 proxy It concludes at the end...."HTTP/1.1 proxies are not permitted to establish a persistent connection with HTTP/1.0 clients > > > > My question, is why does it matter. The proxy will just relay > > whatever comes from actual server to client. > > The problem is not with relaying bytes. That works just fine. The > problem is with relaying the "end of message" information. Pure > HTTP/1.0 applications rely on the [TCP] connection close to detect the > end of a message. If the connection happens to be persistent, a pure > HTTP/1.0 client will not detect the end of message for quite a while > (until the connection is closed, which may happen minutes or even days > But it was the HTTP/1.0 client which sent the "Keep-alive" in the first place Hence it is not pure. It intentionally wants to keep the Connection alive Hence, the client can detect the end of message using "Content-length" sent by the origin server, as mentioned by Scott Perhaps another issue to ponder over would be the different use of "Connection" in HTTP/1.0 and HTTP/1.1 Thanks Diwakar
Received on Tuesday, 26 November 2002 23:17:38 UTC