- From: Amos Jeffries <squid3@treenet.co.nz>
- Date: Thu, 18 Aug 2011 15:16:38 +1200
- To: <ietf-http-wg@w3.org>
On Wed, 17 Aug 2011 19:58:21 +0200, Frank Mertens wrote: > Hi, > > I played around with the ABNF published by this WG and stumbled > over some rough edges. > > Current rules: > > OWS = *( [ obs-fold ] WSP ) > header-field = field-name ":" OWS [ field-value ] OWS > field-value = *( field-content / OWS ) > field-content = *( WSP / VCHAR / obs-text ) > > Problems: > > - field-value and field-content match the empty symbol, > which requires searching for the longest match, which is costly > (and confusing for the human reader) > - because field-value matches the empty symbol claiming it optional > in header-field allows ambiguous productions of same length > (with or without field-value of zero length?) > > Suggested improvement: > > field-value = 1*( field-content OWS ) > field-content = 1*( VCHAR / WSP / obs-text ) > > Best Regards, > Frank Mertens. The OWS on header-field remains ambiguous as well. Also, with WSP being in field-content there is the possibility of header-field matching: field-name ":" [ obs-fold ] 1*( WSP OWS ) OWS Nasty. But section 3.2 comes to the rescue: "The field value does not include any leading or trailing white space" and "HTTP/1.1 senders MUST NOT produce messages that include line folding" So OWS in the field-value ABNF appears to be invalid in several ways going by the text. Perhapse this would be better: header-field = field-name ":" [ WSP ] BWS [ field-value ] field-value = 1*( field-content BWS ) field-content = 1*( VCHAR / WSP / obs-text ) Nit: section 1.2.2 currently says: "Multiple OWS octets that occur within field-content SHOULD be replaced with a single SP before interpreting the field value or forwarding the message downstream." ... "Multiple RWS octets that occur within field-content SHOULD be replaced with a single SP before interpreting the field value or forwarding the message downstream. " When there is no OWS or RWS in the field-content ABNF. I think both should say header-field instead of field-content. Or maybe drop the "within field-content" condition to make it general. AYJ
Received on Thursday, 18 August 2011 03:17:15 UTC