Re: multiplexing -- don't do it

On Wed, Apr 04, 2012 at 07:02:18AM +0000, Poul-Henning Kamp wrote:
> In message <20120404054903.GA13883@1wt.eu>, Willy Tarreau writes:
> 
> >> I'm starting to get data back, but not in a state that I'd reliably
> >> release. That said, there are very clear indicators of intermediaries
> >> causing problems, especially when the pipeline depth exceeds 3 requests.
> 
> I always thought that the problem in HTTP/1.x is that you can never
> quite be sure if there is an un-warranted entity comming after at GET,
> so people simply look to see if anything follows the CRNL CRNL and if
> so, considers it an entity, even if it starts "GET /foo..."

There is an implicit empty body after a GET (content-length: 0), though
I read somewhere (don't remember if it's here or on haproxy ml) that a
few people are sending bodies with GET requests in server environments.

> If so, that is not a problem with pipelining, that is a problem with the
> HTTP/1.X spec.

The real problem with pipelining is that 1) some parsers used to read too
much and were unable to rewind, and 2) requests found in circular buffers
and which wrap or are spanned over multiple buffer chunks are not always
processed correctly. There will always be a few remaining cases where there
are implementation bugs, but implementation must be fixed according to specs,
not the other way around. Specs can only consider the risk of relying on too
many buggy implementations.

Willy

Received on Wednesday, 4 April 2012 07:37:21 UTC