Re: [squid-users] Squid and excess data from webservers

From: Kevin <kkadow@dont-contact.us>
Date: Tue, 1 Mar 2005 18:49:45 -0600

On Mon, 28 Feb 2005 16:01:20 +0100, Ronny T. Lampert <telecaadmin@uni.de> wrote:
> sad fact is, that numerous (even bigger companies') webservers out there are
> broken and DO send excess data that differs from the Content-Length:
> specified in the header (mod_banner seems to be partially broken in this
> regard, too).
>
> Squid does simply hard-cut the stream after the header-specified length,
> which is all good and well, in theory.

The "Excess data" message appears at two places in http.c

From a cursory reading of the source, it appears to me that if the server is
not trying to do keep-alives, then the excess data is stored in the object,
is not truncated.

If the server is using keep-alives, but then goes on to violate it's own
Content-length, Squid not only truncates the object, but terminates the
TCP connection to the remote server.

> How about adding a configurable window, in which excess data is tolerated,
> but defaulting to 0 ?
> It is mostly around a couple of bytes (up to ~100?) and the browsers handle
> it, too.

IMHO, Squid is doing exactly what it should. I might suggest that
the debug message be updated to differentiate between the two cases?

For a server to specify a "Connection: Keep-Alive" header (under HTTP/1.0)
or to fail specify a "Connection: close" header (under HTTP/1.1), and then to
go on and violate it's own "Content-length" by sending excess data, is truly
broken, in all senses of the word.

Kevin
Received on Tue Mar 01 2005 - 17:49:46 MST

This archive was generated by hypermail pre-2.1.9 : Fri Apr 01 2005 - 12:00:01 MST