Re: [Technical Errata Reported] RFC7230 (4667)
Alex Rousskov <rousskov@measurement-factory.com> Fri, 15 April 2016 16:25 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 C5BDC12D9C9 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 15 Apr 2016 09:25:12 -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 otba7BwBCIsw for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 15 Apr 2016 09:25:11 -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 2350812D854 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 15 Apr 2016 09:25:10 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ar6UB-0002bS-Qz for ietf-http-wg-dist@listhub.w3.org; Fri, 15 Apr 2016 16:20:47 +0000
Resent-Date: Fri, 15 Apr 2016 16:20:47 +0000
Resent-Message-Id: <E1ar6UB-0002bS-Qz@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 <rousskov@measurement-factory.com>) id 1ar6U6-0002ah-97 for ietf-http-wg@listhub.w3.org; Fri, 15 Apr 2016 16:20:42 +0000
Received: from mail.measurement-factory.com ([104.237.131.42]) by maggie.w3.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from <rousskov@measurement-factory.com>) id 1ar6U4-0004vK-8n for ietf-http-wg@w3.org; Fri, 15 Apr 2016 16:20:41 +0000
Received: from [65.102.233.169] (unknown [65.102.233.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.measurement-factory.com (Postfix) with ESMTPSA id 3FEEBE076; Fri, 15 Apr 2016 16:20:16 +0000 (UTC)
To: Willy Tarreau <w@1wt.eu>
References: <20160413160504.63AB6180006@rfc-editor.org> <20160413163615.GE3262@1wt.eu> <7D00E3E0-6502-4A53-BEA1-FF36E8AB3857@mnot.net> <FAF05BB6-A4DA-400E-9F92-550E215BC637@gbiv.com> <5710127C.1080007@measurement-factory.com> <38684D79-ED03-462E-8923-040EDD233F71@gbiv.com> <57103AE3.2090003@measurement-factory.com> <20160415044924.GF6355@1wt.eu>
Cc: "Roy T. Fielding" <fielding@gbiv.com>, RFC Errata System <rfc-editor@rfc-editor.org>, HTTP Working Group <ietf-http-wg@w3.org>
From: Alex Rousskov <rousskov@measurement-factory.com>
Message-ID: <5711149C.9070000@measurement-factory.com>
Date: Fri, 15 Apr 2016 10:19:40 -0600
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
MIME-Version: 1.0
In-Reply-To: <20160415044924.GF6355@1wt.eu>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=104.237.131.42; envelope-from=rousskov@measurement-factory.com; helo=mail.measurement-factory.com
X-W3C-Hub-Spam-Status: No, score=-5.9
X-W3C-Hub-Spam-Report: AWL=-1.002, BAYES_00=-1.9, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1ar6U4-0004vK-8n ec551a5e74ef3ad7dc9a08afcfd88a72
X-Original-To: ietf-http-wg@w3.org
Subject: Re: [Technical Errata Reported] RFC7230 (4667)
Archived-At: <http://www.w3.org/mid/5711149C.9070000@measurement-factory.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31475
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>
On 04/14/2016 10:49 PM, Willy Tarreau wrote: > On Thu, Apr 14, 2016 at 06:50:43PM -0600, Alex Rousskov wrote: >> On 04/14/2016 04:39 PM, Roy T. Fielding wrote: >> >>> Don't confuse the various lenient ways in which implementations parse >>> HTTP with the requirements on generating HTTP messages that are >>> defined by the ABNF. The ABNF is intended to be more restrictive. >> >> I fully agree, but we are not discussing ABNF creation IMO. We are >> discussing a syntax change by an HTTPbis RFC. To change HTTP/1 syntax >> that has been in use for many years, the "Founders Intent" alone is not >> enough IMHO. There must be other compelling reasons. The only other >> reason given so far was "lack of known examples", followed by your >> discussion of "space padding" as a known usage example. I expect the bar >> for HTTP/1 syntax change to be significantly higher. > Alex, it's not that black or white. I wonder which part of my argument you consider to be "black or white". > We focused on maximized interoperability, > so you need to understand that when some people report that product X,Y or Z > doesn't even support chunk extensions, that other products are simply broken > regarding this and we realize that nobody produces them, it's natural to > deprecate them. Agreed. However, we are not discussing deprecation (that did not happen) but the syntax change (that did). Those two issues are completely different IMO. > They were apparently re-added in a stricter way based on > identified implementations to optimize the intersection between producers > and consumers. "Stricter way" does not automatically "optimize the intersection between producers and consumers". Please re-read the history summary by Roy: The WG removed whitespace because it was deemed "unnecessary", not because there were any known implementations that did not support whitespace. There is a big difference between "removing something that does not break any known implementation" and "removing something that breaks known implementations". I understand that the WG did not know about implementations using whitespace. However, using prior lack of knowledge to _justify_ leaving a mistake in a *bis RFC seems strange. > I do think that adding the BWS back could be enough. And maybe even adding > the only one ICAP uses. The following two changes would be enough to cover _known_ use cases: 1. BWS after ";" to accommodate the widely used ieof extension. 2. BWS after chunk-size to accommodate space padding. > After all it already took something like 5 years > for someone to notice this change, maybe ICAP is the only exception to the > rule and is sufficient to address without further breaking existing > implementations. For the record, I noticed the syntax change because of a incompatibility bug report against the new Squid _HTTP_ parser. I discovered the fact that it also breaks the extension used by ICAP while writing the errata. I am saddened by your audacity to use the "5 years" argument to prove correctness of a subtle syntax change in a *bis* RFC that was published less than 2 years ago and that is not even applicable the latest protocol version. >>> And, no, it is NEVER a good idea for new IETF protocols to >>> effectively alias other IETF protocols. >> >> AFAICT, ICAP does not alias HTTP. It uses RFC 2616 to define HTTP >> messages. This is similar to RFC 7230 using URI definitions from RFC >> 3986. When URIbis obsoletes RFC 3986, I expect the authors to be very >> careful not to accidentally invalidate HTTP/1 messages. IMHO, HTTPbis >> should offer the same courtesy to ICAP. > > Not exactly in fact, RFC3507 says this : > > ICAP is a request/response protocol similar in semantics and usage to > HTTP/1.1 [4]. Despite the similarity, ICAP is not HTTP, nor is it an > application protocol that runs over HTTP. (...) ICAP uses TCP/IP as a > transport protocol. > > So in short it allows implementers to save time by reusing their HTTP > parsers but does not expect to be strictly compatible. IMO, the above RFC 3507 text matches what I said and does not imply any allowance for incompatibility with HTTP chunked encoding syntax. ICAP is not HTTP but ICAP message bodies use HTTP chunked encoding. > There are even > some intended differences, such as : > > Note in particular that the "Transfer-Encoding" option is not > allowed. (...) Encapsulated bodies MUST be transferred using the > "chunked" transfer-coding described in Section 3.6.1 of [4]. > However, encapsulated headers MUST NOT be chunked. > > These ones alone prevent reliable forwarding over HTTP gateways. I am sorry, but I believe you misunderstand what ICAP is and, hence, misinterpret its specs. ICAP does not use HTTP as transport and does not work with HTTP agents. ICAP uses HTTP chunked _encoding_ for sending HTTP message bodies over TCP connections between ICAP agents. The syntax change in HTTPbis breaks ICAP use of HTTP chunked encoding. > But I > do agree that if we don't break anything by adding the BWS back it > would be better, at least because we're now pretty sure that people > who need to adapt their HTTP parsers to also support ICAP will support > it anyway. And we also know that HTTP agents use that whitespace for padding. Alex.
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- Re: [Technical Errata Reported] RFC7230 (4667) Alexey Melnikov
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- [Technical Errata Reported] RFC7230 (4667) RFC Errata System
- Re: [Technical Errata Reported] RFC7230 (4667) Willy Tarreau
- Re: [Technical Errata Reported] RFC7230 (4667) Mark Nottingham
- Re: [Technical Errata Reported] RFC7230 (4667) Willy Tarreau
- Re: [Technical Errata Reported] RFC7230 (4667) Roy T. Fielding
- Re: [Technical Errata Reported] RFC7230 (4667) Willy Tarreau
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- Re: [Technical Errata Reported] RFC7230 (4667) Roy T. Fielding
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- Re: [Technical Errata Reported] RFC7230 (4667) Willy Tarreau
- Re: [Technical Errata Reported] RFC7230 (4667) Amos Jeffries
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- Re: [Technical Errata Reported] RFC7230 (4667) Willy Tarreau
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- Re: [Technical Errata Reported] RFC7230 (4667) Mark Nottingham
- Re: [Technical Errata Reported] RFC7230 (4667) Alex Rousskov
- Re: [Technical Errata Reported] RFC7230 (4667) Willy Tarreau
- [Errata Verified] RFC7230 (4667) RFC Errata System