Link: http://trac.tools.ietf.org/wg/httpbis/trac/ticket/104
Origin: http://www.w3.org/mid/000d01c878e2$fb911330$6401a8c0@T60
Component: non-specific
Currently, unknown headers are treated as entity headers;
...Unrecognized header fields are treated as entity-header fields. (various places)
Often, however, extension headers are not entity headers, and are not treated as such by implementations.
That is merely stating where they end up in the ABNF and how they should be interpreted when received in a PUT by a recipient that does not recognize the header field.
Obviously, it would have been better for each of the field types to be distinguished syntactically, but MIME does not do that and so HTTP/1.x can't either.
If we change the spec to say that all unrecognized header fields should simply be ignored (forwarded downstream but never saved), then a lot of these strange handling requirements can be removed. My guess is that "must ignore" behavior is more consistent with current implementations than what is specified in 2616.