Re: [Technical Errata Reported] RFC7230 (4667)

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

Received on Wednesday, 13 April 2016 16:37:01 UTC