Re: [i81] Content Negotiation for media types

On mån, 2007-11-12 at 17:11 +1100, Mark Nottingham wrote:
> Yes; I've hit this a few times. I think it revolves around the  
> interpretation of "acceptable". Consider:
> 1) Accept: text/html
> 2) Accept: text/html;q=1, */*;q=0.1
> 3) Accept: text/html;q=1, */*;q=0
> Many people read the spec as saying that #1 and #3 are equivalent. It  
> sounds like we're saying #1 and #2 are closer to the mark -- i.e.,  
> that the server can choose to send anything back, even if it's not  
> listed, as long as the client didn't explicitly say they didn't want  
> that to happen. This seems to be in the spirit of server-driven  
> negotiation;

A conditionally compliant server/application can choose to ignore Accept
entirely and send anything back, but not a fully compliant

Obeying to the limits set by the Accept header is a SHOULD level
requirement in the definition of Accept. The slightly conflicting
comment in the definition of 406 is just that, a comment. Doesn't say
anything about compliance level of either implementation or which
request headers the server may ignore, and I read that more as a
reminder to client implementers that it's not a MUST level requirement
for servers to obey to the limits set by Accept or any of the other
Accept-* headers.

But in practice most servers implementations is partially conditionally
compliant here, not always looking at the Accept header.

The changes I see as appropriate here is to change the 406 comment to
clarify that it's directed to client implementers and not servers.
Suggested wording:

      Note: HTTP/1.1 servers are in certain situations allowed to
      return responses which are not acceptable according to the
      accept headers sent in the request. Because of this User
      agents are encouraged to inspect the headers of an incoming
      response to determine if it is acceptable 

Or remove the comment entirely as it's not really about the 406 response
as such..

The paragraph immediately following the comment should also be moved to
a different place. It's not really about 406 but how clients should
process responses in general. No suggestion at the moment.


Received on Monday, 12 November 2007 12:58:32 UTC