Re: #428 Accept-Language ordering for identical qvalues

"Martin J. Dürst" <> Fri, 25 January 2013 05:32 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0C8941F0CF6 for <>; Thu, 24 Jan 2013 21:32:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -5.044
X-Spam-Status: No, score=-5.044 tagged_above=-999 required=5 tests=[AWL=5.255, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id h6hecldEJgmC for <>; Thu, 24 Jan 2013 21:32:48 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 2387C1F0C3E for <>; Thu, 24 Jan 2013 21:32:45 -0800 (PST)
Received: from lists by with local (Exim 4.72) (envelope-from <>) id 1TybtH-0007hx-4a for; Fri, 25 Jan 2013 05:31:51 +0000
Resent-Date: Fri, 25 Jan 2013 05:31:51 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtp (Exim 4.72) (envelope-from <>) id 1Tybt6-0007gp-6E for; Fri, 25 Jan 2013 05:31:40 +0000
Received: from ([]) by with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <>) id 1Tybt3-0006rw-R2 for; Fri, 25 Jan 2013 05:31:40 +0000
Received: from ([]) by (secret/secret) with SMTP id r0P5V8A2028008 for <>; Fri, 25 Jan 2013 14:31:08 +0900
Received: from (unknown []) by with smtp id 1fed_8c57_6c0d417c_66b0_11e2_8778_001d096c566a; Fri, 25 Jan 2013 14:31:07 +0900
Received: from [IPv6:::1] ([]:44670) by with [XMail 1.22 ESMTP Server] id <S162E7D1> for <> from <>; Fri, 25 Jan 2013 14:31:10 +0900
Message-ID: <>
Date: Fri, 25 Jan 2013 14:31:07 +0900
From: =?UTF-8?B?Ik1hcnRpbiBKLiBEw7xyc3Qi?= <>
Organization: Aoyama Gakuin University
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv: Gecko/20100722 Eudora/3.0.4
MIME-Version: 1.0
To: Mark Nottingham <>
CC: Julian Reschke <>, "Roy T. Fielding" <>, HTTP Working Group <>
References: <> <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: none client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-4.6
X-W3C-Hub-Spam-Report: AWL=-2.263, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001
X-W3C-Scan-Sig: 1Tybt3-0006rw-R2 dfdd3f861b0978b7e2efe7af4cfca541
Subject: Re: #428 Accept-Language ordering for identical qvalues
Archived-At: <>
X-Mailing-List: <> archive/latest/16208
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On 2013/01/25 8:37, Mark Nottingham wrote:
> Removing the text does seem like the most expedient path forward.
> That said, I don't find it particularly satisfying; our job is to improve interop, and when there are latent semantics that aren't documented, we have to consider whether we're doing it well.
> I propose:
> """
> Note that some recipients treat language tags that have the same quality values (including when they are both missing) to be listed in descending order of priority. However, this behaviour cannot be relied upon, and if their relative priority is important, it ought to be communicated by using different quality values.
> """
> ... because I think it best captures where we're at.

Maybe I'm getting this wrong, but it sounds to me that Julian is 
insisting that it's okay to send arbitrary replies (e.g. once French, 
once English at random) if there are no q-values. It has been very 
clearly explained that this is highly confusing (in other words, bad for 
interoperability). Even if the current spec allows this, it would be 
good to have some text in the new spec that says that's a bad idea.

Otherwise, I'm fine with the above Note, except for a small nit:
Please change "including when they are both missing" to "including when 
they are missing", because there may be more than two missing (or equal) 

Regards,   Martin.

> Roy and Julian? And, especially, anyone else?
> On 25/01/2013, at 1:50 AM, Julian Reschke<>  wrote:
>> On 2013-01-24 06:40, Roy T. Fielding wrote:
>>> On Jan 23, 2013, at 5:17 PM, Mark Nottingham wrote:
>>>> So, does anyone have an issue with making ordering significant when there's no qvalue for *all* headers that use qvalues?
>>>> Roy, I'm interpreting your answer as "we don't do anything with this information today," but as per below I don't think this stops us from defining it that way.
>>> Sorry, I wasn't clear.  There is no code out there today that would
>>> correspond to such a change.  I don't like making changes to HTTP
>>> just for the sake of imaginary consistency of definitions.
>>> Making them for the sake of consistency with implementations is fine.
>>> If it is a choice, I'd rather remove the line from Accept-Language
>>> than introduce new (unproven) things to Accept.
>>> ...
>> +1
>> In the meantime I had another look at RFC 4647:
>>> 2.3. The Language Priority List
>>>    A user's language preferences will often need to specify more than
>>>    one language range, and thus users often need to specify a
>>>    prioritized list of language ranges in order to best reflect their
>>>    language preferences.  This is especially true for speakers of
>>>    minority languages.  A speaker of Breton in France, for example, can
>>>    specify "br" followed by "fr", meaning that if Breton is available,
>>>    it is preferred, but otherwise French is the best alternative.  It
>>>    can get more complex: a different user might want to fall back from
>>>    Skolt Sami to Northern Sami to Finnish.
>>>    A "language priority list" is a prioritized or weighted list of
>>>    language ranges.  One well-known example of such a list is the
>>>    "Accept-Language" header defined in RFC 2616 [RFC2616] (see Section
>>>    14.4) and RFC 3282 [RFC3282].
>>>    The various matching operations described in this document include
>>>    considerations for using a language priority list.  This document
>>>    does not define the syntax for a language priority list; defining
>>>    such a syntax is the responsibility of the protocol, application, or
>>>    specification that uses it.  When given as examples in this document,
>>>    language priority lists will be shown as a quoted sequence of ranges
>>>    separated by commas, like this: "en, fr, zh-Hant" (which is read
>>>    "English before French before Chinese as written in the Traditional
>>>    script").
>>>    A simple list of ranges is considered to be in descending order of
>>>    priority.  Other language priority lists provide "quality weights"
>>>    for the language ranges in order to specify the relative priority of
>>>    the user's language preferences.  An example of this is the use of
>>>    "q" values in the syntax of the "Accept-Language" header (defined in
>>>    [RFC2616], Section 14.4, and [RFC3282]).
>> So in fact what the spec used to say is indeed consistent with 4647; there is no consistency problem that needs to be solved.
>> Best regards, Julian
> --
> Mark Nottingham