Re: order of Accept-* and Server-Driven negotiation

My .02;

On 12/02/2008, at 8:21 PM, olivier Thereaux wrote:
>
> 1) order of acceptable values: significant or not?
>
> Consider a request with the header
> Accept-Language: en, fr; q=0.5, de, ja; q=0.8
>
> According to RFC2616 (Sec 14) this computes to
> en	= 1
> de	= 1
> ja	= 0.8
> fr	= 0.5
>
> The spec's section on server-driven negotiation, be it in 2616 or  
> draft-ietf-httpbis-p3-payload, does not specify how to treat choices  
> with equivalent quality factors, like "en" and "de" in this case.  
> Supposing both variants are available for the resource, is it up to  
> the server?
>
> The only doc I could find about it says:
> [[
> this header is Accept_Languageand will typically be the list of  
> language keywords the user specifies (in descending order of  
> preference)
> ]] -- http://www.ibm.com/developerworks/library/wa-apac.html
>
> ... but I am unsure whether the quote paragraph is a description of  
> the apache implementation, of a part of the spec I've missed, or  
> just an assumption by the author.

It isn't spelled out, but the overall tone of the applicable sections  
clearly communicates, IMO, that Accept and friends indicate a client  
*preference*, which the server takes into account when responding.  
Thus, if two values have an equivalent qval, the client doesn't have a  
stated preference between them, and they are equally acceptable; the  
server is free to choose between them.


> 2) multiple instances of an accept value
>
> Is this Accept-Language OK:
> Accept-Language: da, da
>
> How about this one?
> Accept-Language: da;q=0.8, de, fr, da, es
>
> If the latter is OK, what's the precedence? How is it (supposed to  
> be) parsed?


Again IMO: I don't think this is specified, and I don't know it should  
be (see the duplicate header issue #93).

Cheers,



--
Mark Nottingham     http://www.mnot.net/

Received on Wednesday, 13 February 2008 05:09:23 UTC