order of Accept-* and Server-Driven negotiation

Hello,

In one of our current projects, dealing with some language- 
negotiation, we ran into some cases on which the HTTP specs appears  
underspecified.

Apologies if I've missed the relevant part of the spec - a pointer  
would be appreciated -, and if not, please consider this a request to  
add the clarifications in the upcoming HTTPbis spec.


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.


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?

Thanks!
olivier

-- 
olivier Thereaux - W3C - http://www.w3.org/People/olivier/
W3C Open Source Software: http://www.w3.org/Status

Received on Wednesday, 13 February 2008 04:21:30 UTC