draft-ietf-httpbis-p2-semantics section 3.1.3.1 confusion

Dave Thaler <dthaler@microsoft.com> Thu, 28 March 2013 18:29 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 52AAC21F90AC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 28 Mar 2013 11:29:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[AWL=4.000, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sgL0MQSzA64g for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 28 Mar 2013 11:29:14 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id C26F721F9027 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 28 Mar 2013 11:29:14 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ULHYZ-00083E-SG for ietf-http-wg-dist@listhub.w3.org; Thu, 28 Mar 2013 18:28:11 +0000
Resent-Date: Thu, 28 Mar 2013 18:28:11 +0000
Resent-Message-Id: <E1ULHYZ-00083E-SG@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <dthaler@microsoft.com>) id 1ULHYJ-00082R-TO for ietf-http-wg@listhub.w3.org; Thu, 28 Mar 2013 18:27:55 +0000
Received: from mail-bl2lp0203.outbound.protection.outlook.com ([207.46.163.203] helo=na01-bl2-obe.outbound.protection.outlook.com) by lisa.w3.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <dthaler@microsoft.com>) id 1ULHYI-0003iQ-Mn for ietf-http-wg@w3.org; Thu, 28 Mar 2013 18:27:55 +0000
Received: from BL2FFO11FD007.protection.gbl (10.1.15.203) by BY2FFO11HUB027.protection.gbl (10.1.14.113) with Microsoft SMTP Server (TLS) id 15.0.651.3; Thu, 28 Mar 2013 18:27:08 +0000
Received: from TK5EX14MLTC104.redmond.corp.microsoft.com (131.107.125.37) by BL2FFO11FD007.mail.protection.outlook.com (10.173.161.3) with Microsoft SMTP Server (TLS) id 15.0.651.3 via Frontend Transport; Thu, 28 Mar 2013 18:27:09 +0000
Received: from TK5EX14MBXC264.redmond.corp.microsoft.com ([169.254.1.147]) by TK5EX14MLTC104.redmond.corp.microsoft.com ([157.54.79.159]) with mapi id 14.02.0318.003; Thu, 28 Mar 2013 18:26:57 +0000
From: Dave Thaler <dthaler@microsoft.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Thread-Topic: draft-ietf-httpbis-p2-semantics section 3.1.3.1 confusion
Thread-Index: Ac4r4RyXcwa/OUNrRtKuLbYiDFp1QA==
Date: Thu, 28 Mar 2013 18:26:56 +0000
Message-ID: <44E744236D325141AE8DDC88A45908AD0C447C@TK5EX14MBXC264.redmond.corp.microsoft.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.71]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Forefront-Antispam-Report: CIP:131.107.125.37; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(189002)(199002)(51704002)(76482001)(54356001)(53806001)(59766001)(63696002)(54316002)(56816002)(77982001)(55846006)(65816001)(31966008)(44976002)(79102001)(16406001)(33656001)(15202345001)(5343655001)(74662001)(56776001)(23756002)(81342001)(66066001)(47976001)(50986001)(80022001)(69226001)(47776003)(50466001)(74502001)(20776003)(47446002)(4396001)(46102001)(47736001)(49866001)(51856001); DIR:OUT; SFP:; SCL:1; SRVR:BY2FFO11HUB027; H:TK5EX14MLTC104.redmond.corp.microsoft.com; RD:InfoDomainNonexistent; MX:1; A:1; LANG:en;
X-OriginatorOrg: microsoft.onmicrosoft.com
X-Forefront-PRVS: 0799B1B2D7
Received-SPF: pass client-ip=207.46.163.203; envelope-from=dthaler@microsoft.com; helo=na01-bl2-obe.outbound.protection.outlook.com
X-W3C-Hub-Spam-Status: No, score=-3.0
X-W3C-Hub-Spam-Report: AWL=-2.950, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1ULHYI-0003iQ-Mn 0d2a554a4ecea1b06e67d7c4e6206909
X-Original-To: ietf-http-wg@w3.org
Subject: draft-ietf-httpbis-p2-semantics section 3.1.3.1 confusion
Archived-At: <http://www.w3.org/mid/44E744236D325141AE8DDC88A45908AD0C447C@TK5EX14MBXC264.redmond.corp.microsoft.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17165
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

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