W3C home > Mailing lists > Public > ietf-http-wg@w3.org > July to September 2011

Re: line folding - ABNF vs prose

From: Willy Tarreau <w@1wt.eu>
Date: Wed, 27 Jul 2011 16:07:44 +0200
To: Julian Reschke <julian.reschke@gmx.de>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Message-ID: <20110727140744.GC7225@1wt.eu>
Hi Julian,

On Wed, Jul 27, 2011 at 03:49:35PM +0200, Julian Reschke wrote:
> <http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p1-messaging-15.html#rfc.section.3.2.p.8> 
> says:
> 
> "Historically, HTTP header field values could be extended over multiple 
> lines by preceding each extra line with at least one space or horizontal 
> tab octet (line folding). This specification deprecates such line 
> folding except within the message/http media type (Section 10.3.1). 
> HTTP/1.1 senders MUST NOT produce messages that include line folding 
> (i.e., that contain any field-content that matches the obs-fold rule) 
> unless the message is intended for packaging within the message/http 
> media type. HTTP/1.1 recipients SHOULD accept line folding and replace 
> any embedded obs-fold whitespace with a single SP prior to interpreting 
> the field value or forwarding the message downstream."
> 
> I think we have mismatch between ABNF and prose here. Consider
> 
> "HTTP/1.1 senders MUST NOT produce messages that include line folding 
> (i.e., that contain any field-content that matches the obs-fold rule)...."
> 
> ..but..
> 
>   OWS            = *( [ obs-fold ] WSP )
>                  ; "optional" whitespace
>   obs-fold       = CRLF
> 
> ...which is ok-ish, because the only way to get obs-fold into the field 
> is to have trailing WSP.
> 
> But...
> 
> "HTTP/1.1 recipients SHOULD accept line folding and replace any embedded 
> obs-fold whitespace with a single SP..."
> 
> indicates that a sequence of
> 
>   obs-fold WSP
> 
> should be replaced by
> 
>   SP WSP
> 
> Wasn't the intention to replace the sequence by a single SP?

Replacing with a single SP is harder than replacing with any number of
spaces. For instance, haproxy replaces the CRLF with a comma followed
by a space so that the line is folded without moving a memory block,
and it works quite well.

Maybe the intention was to replace with a single SP but the result is
still valid with multiple spaces, so maybe we should explicitly allow
them ? Anyway good catch on this impact on the ABNF !

Regards,
Willy
Received on Wednesday, 27 July 2011 14:08:25 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 06:51:46 GMT