Subject: Re: [Technical Errata Reported] RFC7230 (4667)

From: Alex Rousskov <[email-masked]>
Date: Wed, 17 Aug 2016 17:43:15 -0600

On 04/19/2016 12:18 AM, Mark Nottingham wrote:

> I *think* we've come to a place where there's agreement on accepting
> the errata, but with BWS replacing OWS throughout; i.e.:

> chunk-ext      = *( BWS  ";" BWS chunk-ext-name [ BWS  "=" BWS chunk-ext-val ] )

> Everyone OK with that?

There were no objections and two OKs (including mine).

> If so -- Alexey, can we just annotate the errata with that when it's
> accepted, or should this one be rejected and a new (smaller and
> correct from the start) one be filed?

It looks like this thread got stuck after that question and the errata
entry is still in the "Reported" state. I have just witnessed a yet
another developer being confused by this invisible syntax change. Mark,
could you please push this fix forward somehow?

Thank you,

Alex.

---

From: Alexey Melnikov <[email-masked]>
Date: Thu, 18 Aug 2016 10:19:22 +0100

Hi,

> On 18 Aug 2016, at 00:43, Alex Rousskov <[email-masked]> wrote:
> 

Can you please send me how you would like the erratum to look like, containing 3 parts: old text, new text and comments? Then I will get it fixed.

Thank you,
Alexey

---

From: Alex Rousskov <[email-masked]>
Date: Thu, 18 Aug 2016 09:22:41 -0600

On 08/18/2016 03:19 AM, Alexey Melnikov wrote:

> Can you please send me how you would like the erratum to look like,
> containing 3 parts: old text, new text and comments? Then I will get
> it fixed.

Here are the three requested parts:

Section: 4.1.1

Original Text
-------------

chunk-ext      = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )

Corrected Text
--------------
chunk-ext      = *( BWS ";" BWS chunk-ext-name [ BWS "=" BWS
chunk-ext-val ] )

Notes
-----

The infamous "implicit *LWS" syntax rule in RFC 2616 allowed whitespace
between chunk-ext parts. Some HTTP agents generate that whitespace. In
my experience, HTTP agents that can parse chunk extensions usually can
handle that whitespace. Moreover, ICAP, which utilizes HTTP/1 chunked
encoding, uses that whitespace when defining the "ieof" chunk extension
in RFC 3507 Section 4.5:

      \r\n
      0; ieof\r\n\r\n

HTTPbis RFCs already allow BWS around "=" for transfer-parameter and
auth-param that have similar syntax. HTTPbis RFCs already allow OWS
around ";" in transfer-extension, accept-ext, t-ranking, media-type, and
other constructs with similar syntax.

For consistency and backward compatibility reasons, RFC 7230 should
allow BWS between chunk-ext parts. IMHO, RFC 7230 should allow OWS
around ";" instead, but I failed to convince the HTTP WG that OWS is
better than BWS there.