- From: Roy T. Fielding <fielding@kiwi.ICS.UCI.EDU>
- Date: Sun, 13 Apr 1997 17:58:53 -0700
- To: Josh Cohen <josh@netscape.com>
- Cc: http-wg@cuckoo.hpl.hp.com
>When a client is talking to a proxy server and is pipelining requests, >should it use a single pipeline connection to issue requests to >different origin servers ? >ie should GET http://www.ups.com/ HTTP/1.1 > and GET http://www.fedex.com/ HTTP/1.1 >be sent over the same pipeline or should a new connection be established. >A common occurence of this is when advertisement gifs come from a >different server than the html file. > >I guess the question becomes : >Can requests in the same pipeline be to different origin servers? That would depend on the nature of the proxy. A "personal proxy" (which is essentially what a good user agent cache becomes) would probably use multiple request threads (the equivalent of connections). A small group proxy would probably maintain a continuous two connections to every client in its domain, and thus whether or not the two are pipelined would depend on the presence of other outstanding requests. Likewise, a national proxy would likely maintain feeder connections to reqional proxies. In other words, HTTP is capable of doing either, and the best choice will depend on the context in which the proxy is configured. A good implementation plan would be to make such decisions configurable by the proxy maintainer. >With the advent of pipelined persistent connections ( and to a lesser >extend 1.0 keep alives ), the distinction of 'who the client is >talking to' is confusing to me. Since while the client may be >pipelining to a proxy, and the proxy can go ahead and do an >old style connection to an origin server, how does the client deal >with old responses? >Assuming the answer to the previous question, is yes... > >IE: client pipelines: > GET http://www.foo.com/ HTTP/1.1 > GET http://www.bar.com/ HTTP/1.1 >what happens if foo.com is a 1.1 server ( the proxy can do a >persistent conenction ) and bar.com is 1.0 (proxy cannot)? The proxy is always sending HTTP/1.1 responses, even if the origin is an HTTP/1.0 server. The proxy is capable of "converting" any HTTP/1.0 response into a valid HTTP/1.1 response. The only question in such cases is how much conversion should be done. Adding "Connection: close" is the simplest, but it is generally more efficient (for the proxy) to do a full conversion (i.e., add chunked encoding if no content-length is present). >Also, when the responses come back to the client, the first is >a 1.1 response, and the second is a 1.0 response .. Not if the proxy is 1.1 compliant. It would be a very, very bad idea for the proxy to change its HTTP-version based on the origin of the response. .....Roy
Received on Sunday, 13 April 1997 18:08:45 UTC