Ignore:
Timestamp:
Aug 31, 2011, 6:23:29 PM (8 years ago)
Author:
fielding@…
Message:

Fix incorrect definition of line folding (obs-fold) from [351].
Remove optional WSP from chunked encoding grammar added in [353].
Do not use WSP anywhere (it is misleading because it dosn't match the real
definition of whitespace).

Related to #36

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p1-messaging.xml

    r1424 r1425  
    324324<iref primary="true" item="Grammar" subitem="DQUOTE"/>
    325325<iref primary="true" item="Grammar" subitem="HEXDIG"/>
     326<iref primary="true" item="Grammar" subitem="HTAB"/>
    326327<iref primary="true" item="Grammar" subitem="LF"/>
    327328<iref primary="true" item="Grammar" subitem="OCTET"/>
    328329<iref primary="true" item="Grammar" subitem="SP"/>
    329330<iref primary="true" item="Grammar" subitem="VCHAR"/>
    330 <iref primary="true" item="Grammar" subitem="WSP"/>
    331331<t>
    332332   This specification uses the Augmented Backus-Naur Form (ABNF) notation
     
    341341  <x:anchor-alias value="DQUOTE"/>
    342342  <x:anchor-alias value="HEXDIG"/>
     343  <x:anchor-alias value="HTAB"/>
    343344  <x:anchor-alias value="LF"/>
    344345  <x:anchor-alias value="OCTET"/>
    345346  <x:anchor-alias value="SP"/>
    346347  <x:anchor-alias value="VCHAR"/>
    347   <x:anchor-alias value="WSP"/>
    348348   The following core rules are included by
    349349   reference, as defined in <xref target="RFC5234" x:fmt="," x:sec="B.1"/>:
    350350   ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls),
    351351   DIGIT (decimal 0-9), DQUOTE (double quote),
    352    HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed),
    353    OCTET (any 8-bit sequence of data), SP (space),
    354    VCHAR (any visible <xref target="USASCII"/> character),
    355    and WSP (whitespace).
     352   HEXDIG (hexadecimal 0-9/A-F/a-f), HTAB (horizontal tab), LF (line feed),
     353   OCTET (any 8-bit sequence of data), SP (space), and
     354   VCHAR (any visible <xref target="USASCII"/> character).
    356355</t>
    357356<t>
     
    441440   appear. OWS &SHOULD; either not be produced or be produced as a single
    442441   SP. Multiple OWS octets that occur within field-content &SHOULD; either
    443    be replaced with a single SP or transformed to all SP octets (each WSP
     442   be replaced with a single SP or transformed to all SP octets (each
    444443   octet other than SP replaced with SP) before interpreting the field value
    445444   or forwarding the message downstream.
     
    465464</t>
    466465<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OWS"/><iref primary="true" item="Grammar" subitem="RWS"/><iref primary="true" item="Grammar" subitem="BWS"/>
    467   <x:ref>OWS</x:ref>            = *( [ obs-fold ] <x:ref>WSP</x:ref> )
     466  <x:ref>OWS</x:ref>            = *( <x:ref>SP</x:ref> / <x:ref>HTAB</x:ref> / obs-fold )
    468467                 ; "optional" whitespace
    469   <x:ref>RWS</x:ref>            = 1*( [ obs-fold ] <x:ref>WSP</x:ref> )
     468  <x:ref>RWS</x:ref>            = 1*( <x:ref>SP</x:ref> / <x:ref>HTAB</x:ref> / obs-fold )
    470469                 ; "required" whitespace
    471470  <x:ref>BWS</x:ref>            = <x:ref>OWS</x:ref>
    472471                 ; "bad" whitespace
    473   <x:ref>obs-fold</x:ref>       = <x:ref>CRLF</x:ref>
    474                  ; see <xref target="header.fields"/>
     472  <x:ref>obs-fold</x:ref>       = <x:ref>CRLF</x:ref> ( <x:ref>SP</x:ref> / <x:ref>HTAB</x:ref> )
     473                 ; obsolete line folding
     474                 ; see <xref target="field.parsing"/>
    475475</artwork></figure>
    476476</section>
     
    12251225</t>
    12261226<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="header-field"/><iref primary="true" item="Grammar" subitem="field-name"/><iref primary="true" item="Grammar" subitem="field-value"/><iref primary="true" item="Grammar" subitem="field-content"/>
    1227   <x:ref>header-field</x:ref>   = <x:ref>field-name</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>field-value</x:ref> <x:ref>OWS</x:ref>
     1227  <x:ref>header-field</x:ref>   = <x:ref>field-name</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>field-value</x:ref> <x:ref>BWS</x:ref>
    12281228  <x:ref>field-name</x:ref>     = <x:ref>token</x:ref>
    1229   <x:ref>field-value</x:ref>    = *( <x:ref>field-content</x:ref> / <x:ref>OWS</x:ref> )
    1230   <x:ref>field-content</x:ref>  = *( <x:ref>WSP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
     1229  <x:ref>field-value</x:ref>    = *( <x:ref>field-content</x:ref> / <x:ref>obs-fold</x:ref> )
     1230  <x:ref>field-content</x:ref>  = *( <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
    12311231</artwork></figure>
    12321232<t>
     
    13101310   Historically, HTTP header field values could be extended over multiple
    13111311   lines by preceding each extra line with at least one space or horizontal
    1312    tab octet (line folding). This specification deprecates such line
     1312   tab (obs-fold). This specification deprecates such line
    13131313   folding except within the message/http media type
    13141314   (<xref target="internet.media.type.message.http"/>).
     
    13971397</t>
    13981398<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-pair"/>
    1399   <x:ref>quoted-pair</x:ref>    = "\" ( <x:ref>WSP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
     1399  <x:ref>quoted-pair</x:ref>    = "\" ( <x:ref>HTAB</x:ref> /<x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
    14001400</artwork></figure>
    14011401<t>
     
    14241424</t>
    14251425<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-cpair"/>
    1426   <x:ref>quoted-cpair</x:ref>    = "\" ( <x:ref>WSP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
     1426  <x:ref>quoted-cpair</x:ref>    = "\" ( <x:ref>HTAB</x:ref> /<x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
    14271427</artwork></figure>
    14281428<t>
     
    20442044<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/>
    20452045  <x:ref>Status-Code</x:ref>    = 3<x:ref>DIGIT</x:ref>
    2046   <x:ref>Reason-Phrase</x:ref>  = *( <x:ref>WSP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
     2046  <x:ref>Reason-Phrase</x:ref>  = *( <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )
    20472047</artwork></figure>
    20482048</section>
     
    22802280                   <x:ref>CRLF</x:ref>
    22812281 
    2282   <x:ref>chunk</x:ref>          = <x:ref>chunk-size</x:ref> *WSP [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref>
     2282  <x:ref>chunk</x:ref>          = <x:ref>chunk-size</x:ref> [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref>
    22832283                   <x:ref>chunk-data</x:ref> <x:ref>CRLF</x:ref>
    22842284  <x:ref>chunk-size</x:ref>     = 1*<x:ref>HEXDIG</x:ref>
    2285   <x:ref>last-chunk</x:ref>     = 1*("0") *WSP [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref>
     2285  <x:ref>last-chunk</x:ref>     = 1*("0") [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref>
    22862286 
    2287   <x:ref>chunk-ext</x:ref>      = *( ";" *WSP <x:ref>chunk-ext-name</x:ref>
    2288                       [ "=" <x:ref>chunk-ext-val</x:ref> ] *WSP )
     2287  <x:ref>chunk-ext</x:ref>      = *( ";" <x:ref>chunk-ext-name</x:ref>
     2288                      [ "=" <x:ref>chunk-ext-val</x:ref> ] )
    22892289  <x:ref>chunk-ext-name</x:ref> = <x:ref>token</x:ref>
    22902290  <x:ref>chunk-ext-val</x:ref>  = <x:ref>token</x:ref> / <x:ref>quoted-str-nf</x:ref>
     
    22942294  <x:ref>quoted-str-nf</x:ref>  = <x:ref>DQUOTE</x:ref> *( <x:ref>qdtext-nf</x:ref> / <x:ref>quoted-pair</x:ref> ) <x:ref>DQUOTE</x:ref>
    22952295                 ; like <x:ref>quoted-string</x:ref>, but disallowing line folding
    2296   <x:ref>qdtext-nf</x:ref>      = <x:ref>WSP</x:ref> / %x21 / %x23-5B / %x5D-7E / <x:ref>obs-text</x:ref>
    2297                  ; <x:ref>WSP</x:ref> / &lt;<x:ref>VCHAR</x:ref> except <x:ref>DQUOTE</x:ref> and "\"&gt; / <x:ref>obs-text</x:ref>
     2296  <x:ref>qdtext-nf</x:ref>      = <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / %x21 / %x23-5B / %x5D-7E / <x:ref>obs-text</x:ref>
    22982297</artwork></figure>
    22992298<t>
     
    53075306<x:ref>Method</x:ref> = token
    53085307
    5309 <x:ref>OWS</x:ref> = *( [ obs-fold ] WSP )
    5310 
    5311 <x:ref>RWS</x:ref> = 1*( [ obs-fold ] WSP )
    5312 <x:ref>Reason-Phrase</x:ref> = *( WSP / VCHAR / obs-text )
     5308<x:ref>OWS</x:ref> = *( SP / HTAB / obs-fold )
     5309
     5310<x:ref>RWS</x:ref> = 1*( SP / HTAB / obs-fold )
     5311<x:ref>Reason-Phrase</x:ref> = *( HTAB / SP / VCHAR / obs-text )
    53135312<x:ref>Request</x:ref> = Request-Line *( header-field CRLF ) CRLF [ message-body ]
    53145313<x:ref>Request-Line</x:ref> = Method SP request-target SP HTTP-Version CRLF
     
    53355334<x:ref>authority</x:ref> = &lt;authority, defined in [RFC3986], Section 3.2&gt;
    53365335
    5337 <x:ref>chunk</x:ref> = chunk-size *WSP [ chunk-ext ] CRLF chunk-data CRLF
     5336<x:ref>chunk</x:ref> = chunk-size [ chunk-ext ] CRLF chunk-data CRLF
    53385337<x:ref>chunk-data</x:ref> = 1*OCTET
    5339 <x:ref>chunk-ext</x:ref> = *( ";" *WSP chunk-ext-name [ "=" chunk-ext-val ] *WSP )
     5338<x:ref>chunk-ext</x:ref> = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
    53405339<x:ref>chunk-ext-name</x:ref> = token
    53415340<x:ref>chunk-ext-val</x:ref> = token / quoted-str-nf
     
    53675366 / %x53.75.6E.64.61.79 ; Sunday
    53685367
    5369 <x:ref>field-content</x:ref> = *( WSP / VCHAR / obs-text )
     5368<x:ref>field-content</x:ref> = *( HTAB / SP / VCHAR / obs-text )
    53705369<x:ref>field-name</x:ref> = token
    5371 <x:ref>field-value</x:ref> = *( field-content / OWS )
    5372 
    5373 <x:ref>header-field</x:ref> = field-name ":" OWS field-value OWS
     5370<x:ref>field-value</x:ref> = *( field-content / obs-fold )
     5371
     5372<x:ref>header-field</x:ref> = field-name ":" OWS field-value BWS
    53745373<x:ref>hour</x:ref> = 2DIGIT
    53755374<x:ref>http-URI</x:ref> = "http://" authority path-abempty [ "?" query ]
    53765375<x:ref>https-URI</x:ref> = "https://" authority path-abempty [ "?" query ]
    53775376
    5378 <x:ref>last-chunk</x:ref> = 1*"0" *WSP [ chunk-ext ] CRLF
     5377<x:ref>last-chunk</x:ref> = 1*"0" [ chunk-ext ] CRLF
    53795378
    53805379<x:ref>message-body</x:ref> = *OCTET
     
    53945393
    53955394<x:ref>obs-date</x:ref> = rfc850-date / asctime-date
    5396 <x:ref>obs-fold</x:ref> = CRLF
     5395<x:ref>obs-fold</x:ref> = CRLF ( SP / HTAB )
    53975396<x:ref>obs-text</x:ref> = %x80-FF
    53985397
     
    54105409 / %x5D-7E ; ']'-'~'
    54115410 / obs-text
    5412 <x:ref>qdtext-nf</x:ref> = WSP / "!" / %x23-5B ; '#'-'['
     5411<x:ref>qdtext-nf</x:ref> = HTAB / SP / "!" / %x23-5B ; '#'-'['
    54135412 / %x5D-7E ; ']'-'~'
    54145413 / obs-text
    54155414<x:ref>query</x:ref> = &lt;query, defined in [RFC3986], Section 3.4&gt;
    5416 <x:ref>quoted-cpair</x:ref> = "\" ( WSP / VCHAR / obs-text )
    5417 <x:ref>quoted-pair</x:ref> = "\" ( WSP / VCHAR / obs-text )
     5415<x:ref>quoted-cpair</x:ref> = "\" ( HTAB / SP / VCHAR / obs-text )
     5416<x:ref>quoted-pair</x:ref> = "\" ( HTAB / SP / VCHAR / obs-text )
    54185417<x:ref>quoted-str-nf</x:ref> = DQUOTE *( qdtext-nf / quoted-pair ) DQUOTE
    54195418<x:ref>quoted-string</x:ref> = DQUOTE *( qdtext / quoted-pair ) DQUOTE
     
    55825581    </t>
    55835582    <t>
    5584       Use names of RFC4234 core rules DQUOTE and WSP,
     5583      Use names of RFC4234 core rules DQUOTE and HTAB,
    55855584      fix broken ABNF for chunk-data
    55865585      (work in progress on <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>)
Note: See TracChangeset for help on using the changeset viewer.