Re: i28 proposed replacement text

On ons, 2008-07-02 at 13:05 -0400, Yves Lafon wrote:
> To sum up, the current text should not be changed, as it is valid to cut 
> the connection to signal the end of the tranfer, even if Transfer-Encoding 
> is used _without_ using chunked encoding.
> 
> However, if it was raised as an issue, it deserves clarification, and most 
> probably a warning.

Agreed.

> So, in 4.4, item 2:
> 
> <<<
> 2.  If a Transfer-Encoding header field (Section 8.7) is present,
>         then the transfer-length is defined by use of the "chunked"
>         transfer-coding (Section 3.4), unless the message is terminated
>         by closing the connection.
> >>>
> replaced by
> <<<
> 2.  If a Transfer-Encoding header field (Section 8.7) is present, and
>         the "chunked" transfed-coding (Section 3.4) is used, the
>         transfer-length is defined by the use of this transfer-coding.
>         If the "chunked" transfer-coding is not present, the
>         transfer-length is defined by [the emitter] closing the connection.
> 
>         Warning: If the transfer-length is defined by closing the
>         connection, the transfer-coding used might not have characteristics
>         to ensure that the  sender and the recipient sent/received the same
>         message.
> >>>

Looks fine. But I think the warning part is overkill and only confuses
matters, but won't object it if others thinks it's needed.

I've already said many times that HTTP does not strictly provide this
guarantee even if chunked is used as the chunking may have been added
along the path.

If energy is to be spent on explaining the "message integrity"
properties of HTTP then some better wording on what constitutes an
incomplete message, and how recipients should act when seeing one,
especially proxies.. But most seems to get this right by intuition, but
I think it's important to add that a proxy detecting a partial message
by seeing a connetion close either before Content-Length octets or
before a chunked end-chunk when the message is using chunked SHOULD
close the proxied connection without signalling the end-chunk to the
recipient, and that caches MUST consider the message partial. This to
avoid the next-hop mistakenly beleiving the partial message is proper.

> As it doesn't make much sense for a client to close the connection after 
> sending an entity using TE without chunk, we can just replace [the 
> emitter] (in [] just to show it needs a better wording) by 'the server'.
> Cheers,

Yes.

Regards
Henrik

Received on Wednesday, 2 July 2008 20:30:24 UTC