- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Wed, 26 Aug 98 16:37:51 MDT
- To: "Roy T. Fielding" <fielding@kiwi.ics.uci.edu>
- Cc: http-wg@hplb.hpl.hp.com
I'm comfortable with Roy & Henrik's proposal, but I have a small qualm
about this wording:
A server using chunked transfer-coding in a response MUST NOT
use the trailer for any header fields unless at least one of
the following is true:
a) ....
b) the server grants the recipient(s) the right and ability to
discard those trailer fields without forwarding them to any
downstream recipient of the remaining message. This is
only possible if the trailer fields consist entirely of
optional metadata that is not necessary for the recipient
to understand in order to use the message.
The use of the verb "grants" here implies some sort of specific
action on the part of the server, which of course is not the case.
In fact, the second sentence does a better job of specifying the
conditions under which an exception can be made ... the phrase
"this is only possible if" is a good tip-off.
Also, the use of the term "server" instead of "origin server"
improperly (I think) allows an intervening proxy to "grant"
the right to drop metadata that the actual origin server might
consider "mandatory."
I would suggest using something more like:
b) The server is the origin server for the response, the
trailer fields consist entirely of optional metadata,
and the recipient could use the message (in a manner
acceptable to the origin server) without receiving this
metadata. In other words, the origin server is willing
to accept the possibility that the trailer fields might
be silently discarded along the path to the client.
Also, two minor nits about the explanatory paragraph that follows:
The above requirement exists to avoid an interoperabilty paradox
when the message is being received by an HTTP/1.1 (or later) proxy
and forwarded to an HTTP/1.0 recipient. It avoids a situation
where compliance with the protocol would have necessitated an
infinite buffer on the proxy.
There's a spelling error, and the use of "paradox" here doesn't
match any of the definitions in my dictionary. I'd suggest:
This requirement prevents an interoperability failure
when the message is being received by an HTTP/1.1 (or later) proxy
and forwarded to an HTTP/1.0 recipient. It avoids a situation
where compliance with the protocol would have necessitated an
infinite buffer on the proxy.
-Jeff
Received on Wednesday, 26 August 1998 16:39:46 UTC