- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Thu, 09 Apr 98 13:34:46 MDT
- To: hardie@nic.nasa.gov
- Cc: ietf-http-ext@w3.org
(Henrik)
I have two points here: First, I disagree that HTTP defines end-to-end to
mean from the user agent to the origin server. For example, the text in
13.5.1 says
* End-to-end headers, which must be transmitted to the
ultimate recipient of a request or response. End-to-end
headers in responses must be stored as part of a cache
entry and transmitted in any response formed from a
cache entry.
Think of caching, for example. The client sends a set of header
fields in the request that it considers to be end-to-end, however,
they may never reach the origin server because a cache happens to
be the "ultimate recipient".
(Ted, again)
I still believe there is a different behavior being defined in
Mandatory than the caching example provides. The proxy cache
behavior is defined by the proxy's need to act for the end host;
in the presence of an end to end header in a request for which
it has a valid entry, the proxy can still reply, on behalf of
the ultimate recipient. It can't itself be the recipient of
an end-to-end header (as an example, on a request for a resource
which it has never before seen, the proxy *must* transmit all
end to end headers to the ultimate recipient).
Ted is right. I wrote the paragraph that Henrik cited, and
Henrik's interpretation is exactly opposite to actual meaning.
If there is any confusion, try reading that paragraph in its
complete context:
For the purpose of defining the behavior of caches and non-caching
proxies, we divide HTTP headers into two categories:
o End-to-end headers, which must be transmitted to the
ultimate recipient of a request or response. End-to-end
headers in responses must be stored as part of a cache entry
and transmitted in any response formed from a cache entry.
o Hop-by-hop headers, which are meaningful only for a single
transport-level connection, and are not stored by caches or
forwarded by proxies.
In context, it should be clear that an "end-to-end" header is one
that MUST be delivered to the server that is the target of
a request (unless the request isn't forwarded to that server at all).
You cannot separate an end-to-end header from the request of the
request (or response).
-Jeff
Received on Thursday, 9 April 1998 16:34:50 UTC