W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2007

Re: pipelined client/server behaviour

From: Yngve N. Pettersen (Developer Opera Software ASA) <yngve@opera.com>
Date: Sun, 01 Apr 2007 13:31:34 +0200
To: "Adrien de Croy" <adrien@qbik.com>
Cc: "Adrian Chadd" <adrian@creative.net.au>, "Eric Lawrence" <ericlaw@exchange.microsoft.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Message-ID: <op.tp3rmwb1qrq7tp@nimisha.oslo.opera.com>

On Sun, 01 Apr 2007 12:25:43 +0200, Adrien de Croy <adrien@qbik.com> wrote:

> Is there still some confusion about what we mean by pipelining?
> In my understanding it's when multiple requests are sent down a single  
> connection and subsequent requests are sent before the previous response  
> is received back.

That's right

> The approach we took with WinGate was to serialize the requests.  Whilst  
> this effectively breaks potential pipelining performance benefits, it's  
> about the only way we found to make the system stable.  We tried various  
> ways where we honoured the client and server pipelining (i.e. pass  
> through), but actually found the performance to be worse.  So now, we  
> don't even process the FD_READ notification on the socket if it's a  
> client send and we've received the entire message from the client and  
> the server response hasn't been sent back, so TCP windowing etc should  
> choke back the sends of subsequent requests.

How the server/proxy handles
>> For Opera to use pipelining to a proxy the user must enable HTTP 1.1  
>> for the proxy, and the proxy MUST respond with a HTTP 1.1 response to  
>> the first request from Opera (which is sent using HTTP 1.0)
> This behaviour we have found causes havoc with a proxy that always  
> responds with the same version number as the client sent in it's  
> request.  I'd recommend actually honouring the user's configuration  
> wishes in this respect and if they specify using HTTP/1.1 then don't  
> send any HTTP/1.0 requests.

The server/proxy should respond with the HTTP version it supports, no  
matter what the client sends. See RFC 2145.

The reason Opera uses this approach is that we have seen too many proxies  
that break if they get HTTP/1.1 in the request.

Yngve N. Pettersen
Senior Developer                     Email: yngve@opera.com
Opera Software ASA                   http://www.opera.com/
Phone:  +47 24 16 42 60              Fax:    +47 24 16 40 01
Received on Sunday, 1 April 2007 11:32:49 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 11:10:42 UTC