Connection header and hop-by-hop header fields

Part 1, section 6.1.3.1 "End-to-end and Hop-by-hop Header Fields"
says:

>  The following HTTP/1.1 header fields are hop-by-hop header fields:
>
>  o  Connection
>  o  ...
>  o  Upgrade
>
>  All other header fields defined by HTTP/1.1 are end-to-end header
>  fields.
>
>  Other hop-by-hop header fields MUST be listed in a Connection header
>  field (Section 8.1).

The fact that it says that "Other" fields must be listed means that
the headers in the preceding list *don't* need to be listed, right?

But 8.4 says:

>  The TE header field only applies to the immediate connection.
>  Therefore, the keyword MUST be supplied within a Connection header
>  field (Section 8.1) whenever TE is present in an HTTP/1.1 message.

And similarly in 8.7:

>  The Upgrade header field only applies to the immediate connection.
>  Therefore, the upgrade keyword MUST be supplied within a Connection
>  header field (Section 8.1) whenever Upgrade is present in an HTTP/1.1
>  message.

and 8.1 "Connection" seems to agree:

>  Recipients that trigger certain connection
>  behavior based on the presence of connection options MUST do so based
>  on the presence of the connection-token rather than only the presence
>  of the optional header field.  In other words, if the connection
>  option is received as a header field but not indicated within the
>  Connection field-value, then the recipient MUST ignore the
>  connection-specific header field because it has likely been forwarded
>  by an intermediary that is only partially compliant.

I suspect that 8.4 and 8.7 are just wrong, and 8.1 needs to clarify
that it's only talking about newly-defined connection options, not the
predefined-hop-by-one ones, right?

-- Dan

Received on Thursday, 26 January 2012 13:56:39 UTC