Re: The getcontentlength property

Mr. Demeanour wrote:
> 
> Werner Donné wrote:
>> Mr. Demeanour wrote:
>>>
>>> I presume I've missed the point.
>>>
>>
>> This client does seem to read the chunked stream correctly, but after
>>  reading it, it only retains as much bytes as indicated by the 
>> "getcontentlength" property, which was fetched earlier.
> 
> That's clearly a defect in the client. The server can't be expected to
> compute a getcontentlength that may be dependent on whatever
> Transfer-Encoding it decides on later (since the Transfer-Encoding may
> be dependent on some Accept: header it hasn't seen yet).

Um, the value of content-length header as defined in RFC2616 does not 
depend on the transfer encoding.

> But this is partly missing the point, I think. Your server is sending a
> getcontentlength value for an entity which is dependent on the
> User-Agent; but it seems to be generating the same getcontentlength
> value, regardless of which entity is being requested (i.e. regardless of
> the User-Agent setting). If you are going to vary the entity's value
> according to the User-Agent, then surely you should vary the value of
> getcontentlength according to the same criteria.

I'd like to agree with this, but unfortunately RFC2518 has this language 
in (<http://greenbytes.de/tech/webdav/rfc2518.html#rfc.section.13.4>):

"Purpose:
     Contains the Content-Length header returned by a GET without accept 
headers."

Now U-A is not an accept header, but it *seems* like the original intent 
was to forbid variant selection here. Problem is, nobody seems to recall 
why this was added, and what exactly it means. Unfortunately, we have 
the same confusing language in 
<http://greenbytes.de/tech/webdav/draft-ietf-webdav-rfc2518bis-18.html#rfc.section.15.4>, 
soon to be published as RFC4918.

Best regards, Julian

Received on Saturday, 23 June 2007 09:35:45 UTC