Changeset 370 for draft-ietf-httpbis


Ignore:
Timestamp:
Nov 13, 2008, 12:18:58 PM (11 years ago)
Author:
julian.reschke@…
Message:

Rewrite header ABNFs to spell out whitespace rules, factor out value format definitions. (related to #36)

Location:
draft-ietf-httpbis/latest
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p2-semantics.html

    r366 r370  
    672672      </p>
    673673      <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;<a id="notation" href="#notation">Notational Conventions and Generic Grammar</a></h1>
    674       <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="ABNF Extensions">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
     674      <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="ABNF Extension: #rule">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
    675675      </p>
    676676      <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#notation" class="smpl">DIGIT</a>         = &lt;DIGIT, defined in <a href="#Part1" id="rfc.xref.Part1.4"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>&gt;
     
    15991599      </p>
    16001600      <div id="rfc.figure.u.26"></div><pre class="inline"><span id="rfc.iref.g.27"></span><span id="rfc.iref.g.28"></span>  <a href="#header.server" class="smpl">Server</a>         = "Server" ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.server" class="smpl">Server-v</a>
    1601   <a href="#header.server" class="smpl">Server-v</a>       = 1*( <a href="#abnf.dependencies" class="smpl">product</a> / <a href="#notation" class="smpl">comment</a> )
     1601  <a href="#header.server" class="smpl">Server-v</a>       = <a href="#abnf.dependencies" class="smpl">product</a>
     1602                   *( <a href="#notation" class="smpl">RWS</a> ( <a href="#abnf.dependencies" class="smpl">product</a> / <a href="#notation" class="smpl">comment</a> ) )
    16021603</pre><p id="rfc.section.10.8.p.3">Example:</p>
    16031604      <div id="rfc.figure.u.27"></div><pre class="text">  Server: CERN/3.0 libwww/2.17
     
    16191620      </p>
    16201621      <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.29"></span><span id="rfc.iref.g.30"></span>  <a href="#header.user-agent" class="smpl">User-Agent</a>     = "User-Agent" ":" <a href="#notation" class="smpl">OWS</a> <a href="#header.user-agent" class="smpl">User-Agent-v</a>
    1621   <a href="#header.user-agent" class="smpl">User-Agent-v</a>   = 1*( <a href="#abnf.dependencies" class="smpl">product</a> / <a href="#notation" class="smpl">comment</a> )
     1622  <a href="#header.user-agent" class="smpl">User-Agent-v</a>   = <a href="#abnf.dependencies" class="smpl">product</a>
     1623                   *( <a href="#notation" class="smpl">RWS</a> ( <a href="#abnf.dependencies" class="smpl">product</a> / <a href="#notation" class="smpl">comment</a> ) )
    16221624</pre><p id="rfc.section.10.9.p.3">Example:</p>
    16231625      <div id="rfc.figure.u.29"></div><pre class="text">  User-Agent: CERN-LineMode/2.15 libwww/2.17b3
  • draft-ietf-httpbis/latest/p2-semantics.xml

    r366 r370  
    21002100<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Server"/><iref primary="true" item="Grammar" subitem="Server-v"/>
    21012101  <x:ref>Server</x:ref>         = "Server" ":" <x:ref>OWS</x:ref> <x:ref>Server-v</x:ref>
    2102   <x:ref>Server-v</x:ref>       = 1*( <x:ref>product</x:ref> / <x:ref>comment</x:ref> )
     2102  <x:ref>Server-v</x:ref>       = <x:ref>product</x:ref>
     2103                   *( <x:ref>RWS</x:ref> ( <x:ref>product</x:ref> / <x:ref>comment</x:ref> ) )
    21032104</artwork></figure>
    21042105<t>
     
    21412142<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="User-Agent"/><iref primary="true" item="Grammar" subitem="User-Agent-v"/>
    21422143  <x:ref>User-Agent</x:ref>     = "User-Agent" ":" <x:ref>OWS</x:ref> <x:ref>User-Agent-v</x:ref>
    2143   <x:ref>User-Agent-v</x:ref>   = 1*( <x:ref>product</x:ref> / <x:ref>comment</x:ref> )
     2144  <x:ref>User-Agent-v</x:ref>   = <x:ref>product</x:ref>
     2145                   *( <x:ref>RWS</x:ref> ( <x:ref>product</x:ref> / <x:ref>comment</x:ref> ) )
    21442146</artwork></figure>
    21452147<t>
  • draft-ietf-httpbis/latest/p3-payload.html

    r366 r370  
    631631      </p>
    632632      <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;<a id="notation" href="#notation">Notational Conventions and Generic Grammar</a></h1>
    633       <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="ABNF Extensions">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
     633      <p id="rfc.section.2.p.1">This specification uses the ABNF syntax defined in <a href="p1-messaging.html#notation.abnf" title="ABNF Extension: #rule">Section 2.1</a> of <a href="#Part1" id="rfc.xref.Part1.1"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a> and the core rules defined in <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a> of <a href="#Part1" id="rfc.xref.Part1.2"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>: <span class="comment">[abnf.dep: ABNF syntax and basic rules will be adopted from RFC 5234, see &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/36">http://tools.ietf.org/wg/httpbis/trac/ticket/36</a>&gt;.]</span>
    634634      </p>
    635635      <div id="rfc.figure.u.1"></div><pre class="inline">  <a href="#notation" class="smpl">ALPHA</a>          = &lt;ALPHA, defined in <a href="#Part1" id="rfc.xref.Part1.3"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#basic.rules" title="Basic Rules">Section 2.2</a>&gt;
     
    750750  <a href="#rule.parameter" class="smpl">value</a>          = <a href="#notation" class="smpl">token</a> / <a href="#notation" class="smpl">quoted-string</a>
    751751</pre><p id="rfc.section.3.3.p.5">The type, subtype, and parameter attribute names are case-insensitive. Parameter values might or might not be case-sensitive,
    752          depending on the semantics of the parameter name. Linear white space (LWS) <em class="bcp14">MUST NOT</em> be used between the type and subtype, nor between an attribute and its value. The presence or absence of a parameter might
    753          be significant to the processing of a media-type, depending on its definition within the media type registry.
     752         depending on the semantics of the parameter name. The presence or absence of a parameter might be significant to the processing
     753         of a media-type, depending on its definition within the media type registry.
    754754      </p>
    755755      <p id="rfc.section.3.3.p.6">A parameter value that matches the <a href="#notation" class="smpl">token</a> production may be transmitted as either a token or within a quoted-string. The quoted and unquoted values are equivalent.
     
    969969                   / ( <a href="#media.types" class="smpl">type</a> "/" "*" )
    970970                   / ( <a href="#media.types" class="smpl">type</a> "/" <a href="#media.types" class="smpl">subtype</a> )
    971                    ) *( ";" <a href="#rule.parameter" class="smpl">parameter</a> )
    972   <a href="#header.accept" class="smpl">accept-params</a>  = ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> *( <a href="#header.accept" class="smpl">accept-extension</a> )
    973   <a href="#header.accept" class="smpl">accept-extension</a> = ";" <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> / <a href="#notation" class="smpl">quoted-string</a> ) ]
     971                   ) *( <a href="#notation" class="smpl">OWS</a> ";" <a href="#notation" class="smpl">OWS</a> <a href="#rule.parameter" class="smpl">parameter</a> )
     972  <a href="#header.accept" class="smpl">accept-params</a>  = <a href="#notation" class="smpl">OWS</a> ";" <a href="#notation" class="smpl">OWS</a> "q=" <a href="#quality.values" class="smpl">qvalue</a> *( <a href="#header.accept" class="smpl">accept-ext</a> )
     973  <a href="#header.accept" class="smpl">accept-ext</a>     = <a href="#notation" class="smpl">OWS</a> ";" <a href="#notation" class="smpl">OWS</a> <a href="#notation" class="smpl">token</a> [ "=" ( <a href="#notation" class="smpl">token</a> / <a href="#notation" class="smpl">quoted-string</a> ) ]
    974974</pre><p id="rfc.section.6.1.p.3">The asterisk "*" character is used to group media types into ranges, with "*/*" indicating all media types and "type/*" indicating
    975975         all subtypes of that type. The media-range <em class="bcp14">MAY</em> include media type parameters that are applicable to that range.
     
    10341034      <div id="rfc.figure.u.24"></div><pre class="inline"><span id="rfc.iref.g.22"></span><span id="rfc.iref.g.23"></span>  <a href="#header.accept-charset" class="smpl">Accept-Charset</a>   = "Accept-Charset" ":" <a href="#notation" class="smpl">OWS</a>
    10351035          <a href="#header.accept-charset" class="smpl">Accept-Charset-v</a>
    1036   <a href="#header.accept-charset" class="smpl">Accept-Charset-v</a> = 1#( ( <a href="#rule.charset" class="smpl">charset</a> / "*" ) [ ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> ] )
     1036  <a href="#header.accept-charset" class="smpl">Accept-Charset-v</a> = 1#( ( <a href="#rule.charset" class="smpl">charset</a> / "*" ) [ <a href="#notation" class="smpl">OWS</a> ";" <a href="#notation" class="smpl">OWS</a> "q=" <a href="#quality.values" class="smpl">qvalue</a> ] )
    10371037</pre><p id="rfc.section.6.2.p.3">Character set values are described in <a href="#character.sets" title="Character Sets">Section&nbsp;3.1</a>. Each charset <em class="bcp14">MAY</em> be given an associated quality value which represents the user's preference for that charset. The default value is q=1. An
    10381038         example is
     
    10551055                     <a href="#header.accept-encoding" class="smpl">Accept-Encoding-v</a>
    10561056  <a href="#header.accept-encoding" class="smpl">Accept-Encoding-v</a>  =
    1057                      #( <a href="#header.accept-encoding" class="smpl">codings</a> [ ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> ] )
     1057                     #( <a href="#header.accept-encoding" class="smpl">codings</a> [ <a href="#notation" class="smpl">OWS</a> ";" <a href="#notation" class="smpl">OWS</a> "q=" <a href="#quality.values" class="smpl">qvalue</a> ] )
    10581058  <a href="#header.accept-encoding" class="smpl">codings</a>            = ( <a href="#content.codings" class="smpl">content-coding</a> / "*" )
    10591059</pre><p id="rfc.section.6.3.p.3">Each codings value <em class="bcp14">MAY</em> be given an associated quality value which represents the preference for that encoding. The default value is q=1.
     
    11051105                    <a href="#header.accept-language" class="smpl">Accept-Language-v</a>
    11061106  <a href="#header.accept-language" class="smpl">Accept-Language-v</a> =
    1107                     1#( <a href="#header.accept-language" class="smpl">language-range</a> [ ";" "q" "=" <a href="#quality.values" class="smpl">qvalue</a> ] )
     1107                    1#( <a href="#header.accept-language" class="smpl">language-range</a> [ <a href="#notation" class="smpl">OWS</a> ";" <a href="#notation" class="smpl">OWS</a> "q=" <a href="#quality.values" class="smpl">qvalue</a> ] )
    11081108  <a href="#header.accept-language" class="smpl">language-range</a>    =
    11091109            &lt;language-range, defined in <a href="#RFC4647" id="rfc.xref.RFC4647.1"><cite title="Matching of Language Tags">[RFC4647]</cite></a>, <a href="http://tools.ietf.org/html/rfc4647#section-2.1">Section 2.1</a>&gt;
     
    16451645      <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.42"></span><span id="rfc.iref.g.43"></span><span id="rfc.iref.g.44"></span><span id="rfc.iref.g.45"></span><span id="rfc.iref.g.46"></span><span id="rfc.iref.g.47"></span><span id="rfc.iref.g.48"></span>  <a href="#content-disposition" class="smpl">content-disposition</a> = "Content-Disposition" ":" <a href="#notation" class="smpl">OWS</a>
    16461646                        <a href="#content-disposition" class="smpl">content-disposition-v</a>
    1647   <a href="#content-disposition" class="smpl">content-disposition-v</a> = <a href="#content-disposition" class="smpl">disposition-type</a> *( ";" <a href="#content-disposition" class="smpl">disposition-parm</a> )
     1647  <a href="#content-disposition" class="smpl">content-disposition-v</a> = <a href="#content-disposition" class="smpl">disposition-type</a> *( <a href="#notation" class="smpl">OWS</a> ";" <a href="#notation" class="smpl">OWS</a> <a href="#content-disposition" class="smpl">disposition-parm</a> )
    16481648  <a href="#content-disposition" class="smpl">disposition-type</a> = "attachment" / <a href="#content-disposition" class="smpl">disp-extension-token</a>
    16491649  <a href="#content-disposition" class="smpl">disposition-parm</a> = <a href="#content-disposition" class="smpl">filename-parm</a> / <a href="#content-disposition" class="smpl">disp-extension-parm</a>
     
    18311831                        <li class="indline1"><tt>Accept-Encoding</tt>&nbsp;&nbsp;<a class="iref" href="#rfc.iref.g.24"><b>6.3</b></a></li>
    18321832                        <li class="indline1"><tt>Accept-Encoding-v</tt>&nbsp;&nbsp;<a class="iref" href="#rfc.iref.g.25"><b>6.3</b></a></li>
    1833                         <li class="indline1"><tt>accept-extension</tt>&nbsp;&nbsp;<a class="iref" href="#rfc.iref.g.21"><b>6.1</b></a></li>
     1833                        <li class="indline1"><tt>accept-ext</tt>&nbsp;&nbsp;<a class="iref" href="#rfc.iref.g.21"><b>6.1</b></a></li>
    18341834                        <li class="indline1"><tt>Accept-Language</tt>&nbsp;&nbsp;<a class="iref" href="#rfc.iref.g.27"><b>6.4</b></a></li>
    18351835                        <li class="indline1"><tt>Accept-Language-v</tt>&nbsp;&nbsp;<a class="iref" href="#rfc.iref.g.28"><b>6.4</b></a></li>
  • draft-ietf-httpbis/latest/p3-payload.xml

    r366 r370  
    486486<t>
    487487   The type, subtype, and parameter attribute names are case-insensitive.
    488    Parameter values might or might not be case-sensitive,
    489    depending on the semantics of the parameter name. Linear white space
    490    (LWS) &MUST-NOT; be used between the type and subtype, nor between an
    491    attribute and its value. The presence or absence of a parameter might
     488   Parameter values might or might not be case-sensitive, depending on the
     489   semantics of the parameter name.  The presence or absence of a parameter might
    492490   be significant to the processing of a media-type, depending on its
    493491   definition within the media type registry.
     
    921919  <x:anchor-alias value="Accept"/>
    922920  <x:anchor-alias value="Accept-v"/>
    923   <x:anchor-alias value="accept-extension"/>
     921  <x:anchor-alias value="accept-ext"/>
    924922  <x:anchor-alias value="accept-params"/>
    925923  <x:anchor-alias value="media-range"/>
     
    931929   image.
    932930</t>
    933 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept"/><iref primary="true" item="Grammar" subitem="Accept-v"/><iref primary="true" item="Grammar" subitem="media-range"/><iref primary="true" item="Grammar" subitem="accept-params"/><iref primary="true" item="Grammar" subitem="accept-extension"/>
     931<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept"/><iref primary="true" item="Grammar" subitem="Accept-v"/><iref primary="true" item="Grammar" subitem="media-range"/><iref primary="true" item="Grammar" subitem="accept-params"/><iref primary="true" item="Grammar" subitem="accept-ext"/>
    934932  <x:ref>Accept</x:ref>   = "Accept" ":" <x:ref>OWS</x:ref> <x:ref>Accept-v</x:ref>
    935933  <x:ref>Accept-v</x:ref> = #( <x:ref>media-range</x:ref> [ <x:ref>accept-params</x:ref> ] )
     
    938936                   / ( <x:ref>type</x:ref> "/" "*" )
    939937                   / ( <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> )
    940                    ) *( ";" <x:ref>parameter</x:ref> )
    941   <x:ref>accept-params</x:ref>  = ";" "q" "=" <x:ref>qvalue</x:ref> *( <x:ref>accept-extension</x:ref> )
    942   <x:ref>accept-extension</x:ref> = ";" <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ]
     938                   ) *( <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>parameter</x:ref> )
     939  <x:ref>accept-params</x:ref>  = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> *( <x:ref>accept-ext</x:ref> )
     940  <x:ref>accept-ext</x:ref>     = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ]
    943941</artwork></figure>
    944942<t>
     
    10571055  <x:ref>Accept-Charset</x:ref>   = "Accept-Charset" ":" <x:ref>OWS</x:ref>
    10581056          <x:ref>Accept-Charset-v</x:ref>
    1059   <x:ref>Accept-Charset-v</x:ref> = 1#( ( <x:ref>charset</x:ref> / "*" ) [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
     1057  <x:ref>Accept-Charset-v</x:ref> = 1#( ( <x:ref>charset</x:ref> / "*" ) [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
    10601058</artwork></figure>
    10611059<t>
     
    11001098                     <x:ref>Accept-Encoding-v</x:ref>
    11011099  <x:ref>Accept-Encoding-v</x:ref>  =
    1102                      #( <x:ref>codings</x:ref> [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
     1100                     #( <x:ref>codings</x:ref> [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
    11031101  <x:ref>codings</x:ref>            = ( <x:ref>content-coding</x:ref> / "*" )
    11041102</artwork></figure>
     
    11851183                    <x:ref>Accept-Language-v</x:ref>
    11861184  <x:ref>Accept-Language-v</x:ref> =
    1187                     1#( <x:ref>language-range</x:ref> [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
     1185                    1#( <x:ref>language-range</x:ref> [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )
    11881186  <x:ref>language-range</x:ref>    =
    11891187            &lt;language-range, defined in <xref target="RFC4647" x:fmt="," x:sec="2.1"/>&gt;
     
    25202518  <x:ref>content-disposition</x:ref> = "Content-Disposition" ":" <x:ref>OWS</x:ref>
    25212519                        <x:ref>content-disposition-v</x:ref>
    2522   <x:ref>content-disposition-v</x:ref> = <x:ref>disposition-type</x:ref> *( ";" <x:ref>disposition-parm</x:ref> )
     2520  <x:ref>content-disposition-v</x:ref> = <x:ref>disposition-type</x:ref> *( <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>disposition-parm</x:ref> )
    25232521  <x:ref>disposition-type</x:ref> = "attachment" / <x:ref>disp-extension-token</x:ref>
    25242522  <x:ref>disposition-parm</x:ref> = <x:ref>filename-parm</x:ref> / <x:ref>disp-extension-parm</x:ref>
Note: See TracChangeset for help on using the changeset viewer.