W3C home > Mailing lists > Public > ietf-http-wg-old@w3.org > May to August 1995

Re: Worries about content-length

From: Rick Troth <TROTH@ua1vm.ua.edu>
Date: Fri, 16 Jun 95 12:40:17 CDT
Message-Id: <199506161819.AA285556793@hplb.hpl.hp.com>
To: David - Morris <dwm@shell.portal.com>, Rich Salz <rsalz@osf.org>, http-wg-request%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Cc: James@osf.org, Gosling <jag@scndprsn.eng.sun.com>, NED@sigurd.innosoft.com, masinter@parc.xerox.com, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
        This is olde ...

>> >  It is not an
>> > unreasonable burden on HTTP servers to require accurate content-length
>>
>> It requires that all documents returned by the server by pre-scanned.

        Yes.   And ...

>> There are apparently often times it is unreasonable.

        ... specifically,  pre-scanning breaks pipelineability.

>Sorry, I haven't heard an example yet which doesn't reflect laziness or
>poor design.  For the subset of cases where the size isn't known
>(e.g., CGI output), data could be delivered in a series of precisely
>size computed chunks with the last chunk so marked.

        Maybe.   There was the  Content-Transfer-Encoding: packet
scheme proposed by Dan Connolly a while back.   This,  or anything
else you might suggest that's similar,  would be fine.   It's the use of
Content-Length:  headers that I object to.   Content-Length can be
rendered completely invalid so easily.   It's just plain Bad News.

>> Which do you prefer?
>> 	foo | bar
>> 	foo >tmp ; bar <tmp
>
>The burden for the two step process falls on the information provider,
>not the network and not the consumer. Performance optimizations can
>be applied best at the source.
>        foo | bar
>is really
>        foo | [net] | [ua] > tmp ; < bar.ua

        I agree that optimizations which can be applied at the source
*should* be applied at the source.   But I don't know where you're
coming from w/r/t pipelining.   MS-DOS,  and I suppose Windows,
pipelines things by staging them to a disk file.   But UNIX doesn't,
and I'm sure OS/2 and NT don't either.   For multi-tasking systems,
as soon as the first packet is written by the producer,  it can be
read by the consumer.   This is a Good Thing.   So the network
transaction really looks more like

                foo | net | ua

        ... and "ua" might be doing all kinds of kinky things that
would be incompatible with the  Content-Length:  header,  and in any
case wouldn't want to wait ... and wait ... counting bytes.

--
Rick Troth <troth@ua1vm.ua.edu>, Houston, Texas, USA
http://ua1vm.ua.edu/~troth/
Received on Friday, 16 June 1995 11:21:47 EDT

This archive was generated by hypermail pre-2.1.9 : Wednesday, 24 September 2003 06:31:22 EDT