Re: pipelined client/server behaviour

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.

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.

>
> 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.

Also I think the current Opera sends a "Connection: keep-alive" tag in 
this case instead of a "Proxy-connection: keep-alive" tag, which breaks 
NTLM through proxies (connection gets closed by proxy when it needs to 
be open because proxy doesn't recognise that the client indicated it 
wanted the connection kept alive).

Adrien

> --Sincerely,
> 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 10:27:55 UTC