Subject: Re: draft-ietf-httpbis-p2-semantics section 3.1.3.1 confusion

From: Mark Nottingham <[email-masked]>
Date: Mon, 22 Apr 2013 14:10:56 +1000

Hi Dave,

Recorded as Editorial:
  http://trac.tools.ietf.org/wg/httpbis/trac/ticket/456

Cheers,

On 29/03/2013, at 5:26 AM, Dave Thaler <[email-masked]> wrote:

> http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-22#section-3.1.3.1 says:
>>  HTTP uses language tags within the Accept-Language and Content-Language fields.
>> 
>>    language-tag = <Language-Tag, defined in [RFC5646], Section 2.1>
> 
> Section 3.1.3.1 defines a language tag by reference to RFC5646 section 2.1.
> 
> Per http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-22#section-5.3.5 
> the Accept-Language header, however, uses a language-range not a language-tag:
> 
>      Accept-Language = 1#( language-range [ weight ] )
>      language-range  =
>                <language-range, defined in [RFC4647], Section 2.1>
> 
> Note the different reference, and following that reference we find the explicit statement that:
>    A basic language range differs from the language tags defined in
>    [RFC4646] only in that there is no requirement that it be "well-
>    formed" or be validated against the IANA Language Subtag Registry.
> 
> And of course RFC5646 obsoletes RFC4646 but doesn't change the relevant ABNF.
> 
> So the Accept-Language tag does not use the language-tag production, 
> it uses the looser language-range definition).
> 
> The text in section 3.1.3.1 is confusing because it can be misread to imply
> that Accept-Language uses the language-tag production.
> 
> Suggest:
>>  HTTP uses language tags within the Accept-Language and Content-Language fields.
>>  The Accept-Language field uses the looser language-range production defined in Section 5.2.5,
>>  whereas the Content-Language field uses the stricter language-tag production defined below.
>> 
>>    language-tag = <Language-Tag, defined in [RFC5646], Section 2.1>
> 
> -Dave
> 
> 

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