W3C home > Mailing lists > Public > www-talk@w3.org > July to August 2003

Re: HTTP 1.1 Pipelining

From: Ian Clelland <ian@veryfresh.com>
Date: Sat, 2 Aug 2003 16:34:38 -0700
To: Mike Dierken <mdierken@hotmail.com>
Cc: www-talk@w3.org
Message-ID: <20030802233438.GC439@fullfactor.com>

On Fri, Aug 01, 2003 at 09:30:59PM -0700, Mike Dierken wrote:
> 
> Is pipelining the same as 'keep-alive'?
> I thought it was something different...
> 
> ----- Original Message ----- 
> From: "Tim.Greenwald" <tim.greenwald@wamu.net>
> > I would be interested in comments regarding the trade-off of using
> > pipelining. My thoughts on this are that it is great because it relieves
> the
> > burden on the server of having to open a TCP connection for each request
> for
> > an object but the trade-off is that the requests have to be sent/received
> in
> > order. This seems to me to override the benefits of multi-threading. If I
> > was to send multiple GETs at the same time I would open multiple
> connections
> > but the requests could be processed concurrently.

It's a similar concept -- Keep-Alive was an artifact of HTTP/1.0 which
was removed in HTTP/1.1. In 1.1, the default behaviour is to keep
connections open for some time to accept further requests, unless a
'Connection: close' header is sent.

In response to the original question, I don't think it's really a
tradeoff at all -- you can optimise a client's performance by using
request pipelining in conjunction with multiple requests.

I don't think it's uncommon for a web client to open one connection to a
server to get a document, then open half a dozen more connections to get
the related images / style sheet, and then keep all of those connections
open. When the user clicks a link to another document on the same
server, the connections are all still open, so the second document can
be retreived even faster.

Ian Clelland
<ian@veryfresh.com>
Received on Saturday, 2 August 2003 19:34:41 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 27 October 2010 18:14:28 GMT