Is forwarding hop-by-hop headers a MUST-level violation?

Hi,

	Some proxies forward some hop-by-hop headers. While discussing
a related Apache bugzilla entry[1], Nick Kew suggested that forwarding
a hop-by-hop header by a proxy is only a SHOULD-level violation, if it
is a violation at all.

Section 13.5.1 of RFC 2616 says:

   For the purpose of defining the behavior of caches and non-caching
   proxies, we divide HTTP headers into two categories:

      - End-to-end headers, which are  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 MUST be
        transmitted in any response formed from a cache entry.

      - Hop-by-hop headers, which are meaningful only for a single
        transport-level connection, and are not stored by caches or
        forwarded by proxies.

The "Hop-by-hop headers ... are not stored or forwarded" claim is not
an explicit MUST- or SHOULD-level requirement. It looks like an
assertion or definition. Given the negative impact forwarding some
hop-by-hop headers would have, I always assumed that proxies MUST NOT
forward any hop-by-hop headers. Was I wrong?

Is it worth changing the above language to a more consistent and
explicit:

      - Hop-by-hop headers, which are meaningful only for a single
        transport-level connection. Hop-by-hop headers MUST NOT be
        stored by caches or forwarded by proxies.

BTW, the above "End-to-end headers" rules do not say anything about
forwarding End-to-end request headers. Perhaps the wording should be
polished to include request headers as well?

Thanks,

Alex.

[1] http://issues.apache.org/bugzilla/show_bug.cgi?id=15861

P.S. There are other MUSTs specific to some hop-by-hop headers,
including those in Connection header list. Here, we are talking about
the general rule for all hop-by-hop headers.

Received on Tuesday, 6 July 2004 13:27:03 UTC