Re: [Technical Errata Reported] RFC7230 (4667)

Mark Nottingham <mnot@mnot.net> Thu, 14 April 2016 01:40 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@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 EEC2612D758 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 13 Apr 2016 18:40:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.917
X-Spam-Level:
X-Spam-Status: No, score=-7.917 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8QHUQZ3Opyry for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 13 Apr 2016 18:40:34 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B40B12D6B5 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 13 Apr 2016 18:40:33 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1aqWC5-0002CY-TY for ietf-http-wg-dist@listhub.w3.org; Thu, 14 Apr 2016 01:35:41 +0000
Resent-Date: Thu, 14 Apr 2016 01:35:41 +0000
Resent-Message-Id: <E1aqWC5-0002CY-TY@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <mnot@mnot.net>) id 1aqWC2-0002Bn-3M for ietf-http-wg@listhub.w3.org; Thu, 14 Apr 2016 01:35:38 +0000
Received: from mxout-07.mxes.net ([216.86.168.182]) by maggie.w3.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from <mnot@mnot.net>) id 1aqWBt-0005OD-Vg for ietf-http-wg@w3.org; Thu, 14 Apr 2016 01:35:37 +0000
Received: from [192.168.1.101] (unknown [120.149.194.112]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 7668822E256; Wed, 13 Apr 2016 21:34:59 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <20160413163615.GE3262@1wt.eu>
Date: Thu, 14 Apr 2016 11:34:57 +1000
Cc: RFC Errata System <rfc-editor@rfc-editor.org>, Roy Fielding <fielding@gbiv.com>, "Julian F. Reschke" <julian.reschke@greenbytes.de>, Ben Campbell <ben@nostrum.com>, Alissa Cooper <alissa@cooperw.in>, Alexey Melnikov <aamelnikov@fastmail.fm>, Alex Rousskov <rousskov@measurement-factory.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <7D00E3E0-6502-4A53-BEA1-FF36E8AB3857@mnot.net>
References: <20160413160504.63AB6180006@rfc-editor.org> <20160413163615.GE3262@1wt.eu>
To: Willy Tarreau <w@1wt.eu>, Roy Fielding <fielding@gbiv.com>
X-Mailer: Apple Mail (2.3124)
Received-SPF: pass client-ip=216.86.168.182; envelope-from=mnot@mnot.net; helo=mxout-07.mxes.net
X-W3C-Hub-Spam-Status: No, score=-8.3
X-W3C-Hub-Spam-Report: AWL=1.277, BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_IRR=-3, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1aqWBt-0005OD-Vg c423830cfbf4d376ee4df4a0fe83d799
X-Original-To: ietf-http-wg@w3.org
Subject: Re: [Technical Errata Reported] RFC7230 (4667)
Archived-At: <http://www.w3.org/mid/7D00E3E0-6502-4A53-BEA1-FF36E8AB3857@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31446
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>

Digging into the history of this a bit, I see that the implied WSP was made explicit as of draft -16:
  https://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-16#section-6.2.1
... and subsequently, Julian started to convert it to OWS.

However, Roy took it out with this commit:
  https://github.com/httpwg/http11bis/commit/9ff47b1d187bbf2a#diff-48ead163ebcead27fb688b09acb76a43L2282

There doesn't seem to have been any discussion of that change on the list or the issue that the commit was linked to, and no one seems to have noticed until now.

Roy, any additional context here?



> On 14 Apr 2016, at 2:36 AM, Willy Tarreau <w@1wt.eu> wrote:
> 
> On Wed, Apr 13, 2016 at 09:05:04AM -0700, RFC Errata System wrote:
>> The following errata report has been submitted for RFC7230,
>> "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing".
>> 
>> --------------------------------------
>> You may review the report below and at:
>> http://www.rfc-editor.org/errata_search.php?rfc=7230&eid=4667
>> 
>> --------------------------------------
>> Type: Technical
>> Reported by: Alex Rousskov <rousskov@measurement-factory.com>
>> 
>> Section: 4.1.1
>> 
>> Original Text
>> -------------
>> chunk-ext      = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
>> 
>> 
>> Corrected Text
>> --------------
>> chunk-ext      = *( ";" OWS chunk-ext-name [ "=" chunk-ext-val ] )
>> 
>> Notes
>> -----
>> The infamous "implicit *LWS" syntax rule in RFC 2616 allowed whitespace between ";" and chunk-ext-name in chunk-ext. Some HTTP agents generate that whitespace. In my experience, HTTP agents that can parse chunk extensions usually can handle that whitespace. Moreover, ICAP, which generally relies on HTTP/1 for its message syntax, uses that whitespace when defining the "ieof" chunk extension in RFC 3507 Section 4.5:
>> 
>>      \r\n
>>      0; ieof\r\n\r\n
>> 
>> IMHO, RFC 7230 should either allow OWS before chunk-ext-name or at the very least explicitly document the HTTP/1 syntax change and its effect on parsers used for both ICAP and HTTP/1 messages (a very common case for ICAP-supporting HTTP intermediaries and ICAP services).
>> 
>> I also recommend adding BWS around "=", for consistency and RFC 2616 backward compatibility reasons. HTTPbis RFCs already do that for transfer-parameter and auth-param that have similar syntax.
>> 
>> Please also consider adding OWS _before_ ";" for consistency and RFC 2616 backward compatibility reasons. HTTPbis RFCs already do that for transfer-extension, accept-ext,  t-ranking, and other constructs with similar syntax.
>> 
>> If all of the above suggestions are applied, the final syntax becomes:
>> 
>> chunk-ext      = *( OWS  ";" OWS chunk-ext-name [ BWS  "=" BWS chunk-ext-val ] )
>> 
>> Instructions:
>> -------------
>> This erratum is currently posted as "Reported". If necessary, please
>> use "Reply All" to discuss whether it should be verified or
>> rejected. When a decision is reached, the verifying party (IESG)
>> can log in to change the status and edit the report, if necessary. 
>> 
>> --------------------------------------
>> RFC7230 (draft-ietf-httpbis-p1-messaging-26)
>> --------------------------------------
>> Title               : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
>> Publication Date    : June 2014
>> Author(s)           : R. Fielding, Ed., J. Reschke, Ed.
>> Category            : PROPOSED STANDARD
>> Source              : Hypertext Transfer Protocol Bis APP
>> Area                : Applications
>> Stream              : IETF
>> Verifying Party     : IESG
>> 
> 
> I think Alex is prefectly right here. I remember we spent less time on
> chunk extensions by lack of clearly identified users, so it's very likely
> that some corner cases slipped through the cracks. 
> 
> FWIW, haproxy does indeed accept spaces above as Alex suggests them.
> 
> Regards,
> Willy
> 
> 

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