Ignore:
Timestamp:
Nov 13, 2008, 10:17:06 AM (11 years ago)
Author:
julian.reschke@…
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p6-cache.xml

    r345 r364  
    431431  <x:anchor-alias value="SP"/>
    432432  <x:anchor-alias value="token"/>
     433  <x:anchor-alias value="BWS"/>
     434  <x:anchor-alias value="OWS"/>
     435  <x:anchor-alias value="RWS"/>
    433436<t>
    434437  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    445448  <x:ref>quoted-string</x:ref> = &lt;quoted-string, defined in &basic-rules;&gt;
    446449  <x:ref>token</x:ref>         = &lt;token, defined in &basic-rules;&gt;
     450  <x:ref>BWS</x:ref>           = &lt;BWS, defined in &basic-rules;&gt;
     451  <x:ref>OWS</x:ref>           = &lt;OWS, defined in &basic-rules;&gt;
     452  <x:ref>RWS</x:ref>           = &lt;RWS, defined in &basic-rules;&gt;
    447453</artwork></figure>
    448454<t anchor="abnf.dependencies">
     
    15011507  <iref primary="true" item="Headers" subitem="Age" x:for-anchor=""/>
    15021508  <x:anchor-alias value="Age"/>
     1509  <x:anchor-alias value="Age-v"/>
    15031510  <x:anchor-alias value="age-value"/>
    15041511<t>
    1505       The Age response-header field conveys the sender's estimate of the
     1512      The response-header field "Age" conveys the sender's estimate of the
    15061513      amount of time since the response (or its revalidation) was
    15071514      generated at the origin server. A cached response is "fresh" if
     
    15091516      calculated as specified in <xref target="age.calculations"/>.
    15101517</t>
    1511 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Age"/><iref primary="true" item="Grammar" subitem="age-value"/>
    1512   <x:ref>Age</x:ref> = "Age" ":" <x:ref>age-value</x:ref>
    1513   <x:ref>age-value</x:ref> = <x:ref>delta-seconds</x:ref>
     1518<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Age"/><iref primary="true" item="Grammar" subitem="Age-v"/>
     1519  <x:ref>Age</x:ref>   = "Age" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Age-v</x:ref>
     1520  <x:ref>Age-v</x:ref> = <x:ref>delta-seconds</x:ref>
    15141521</artwork></figure>
    15151522<t anchor="rule.delta-seconds">
     
    15361543  <iref primary="true" item="Headers" subitem="Cache-Control" x:for-anchor=""/>
    15371544  <x:anchor-alias value="Cache-Control"/>
     1545  <x:anchor-alias value="Cache-Control-v"/>
    15381546  <x:anchor-alias value="cache-directive"/>
    15391547  <x:anchor-alias value="cache-extension"/>
     
    15411549  <x:anchor-alias value="cache-response-directive"/>
    15421550<t>
    1543    The Cache-Control general-header field is used to specify directives
     1551   The general-header field "Cache-Control" is used to specify directives
    15441552   that &MUST; be obeyed by all caching mechanisms along the
    15451553   request/response chain. The directives specify behavior intended to
     
    15611569   for a specific cache.
    15621570</t>
    1563 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="cache-directive"/><iref primary="true" item="Grammar" subitem="cache-request-directive"/><iref primary="true" item="Grammar" subitem="cache-response-directive"/><iref primary="true" item="Grammar" subitem="cache-extension"/>
    1564   <x:ref>Cache-Control</x:ref>   = "Cache-Control" ":" 1#<x:ref>cache-directive</x:ref>
     1571<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Cache-Control"/><iref primary="true" item="Grammar" subitem="Cache-Control-v"/><iref primary="true" item="Grammar" subitem="cache-directive"/><iref primary="true" item="Grammar" subitem="cache-request-directive"/><iref primary="true" item="Grammar" subitem="cache-response-directive"/><iref primary="true" item="Grammar" subitem="cache-extension"/>
     1572  <x:ref>Cache-Control</x:ref>   = "Cache-Control" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Cache-Control-v</x:ref>
     1573  <x:ref>Cache-Control-v</x:ref> = 1#<x:ref>cache-directive</x:ref>
    15651574
    15661575  <x:ref>cache-directive</x:ref> = <x:ref>cache-request-directive</x:ref>
     
    20852094  <iref primary="true" item="Headers" subitem="Expires" x:for-anchor=""/>
    20862095  <x:anchor-alias value="Expires"/>
     2096  <x:anchor-alias value="Expires-v"/>
    20872097<t>
    20882098   The Expires entity-header field gives the date/time after which the
     
    21022112   &full-date;; it &MUST; be sent in rfc1123-date format.
    21032113</t>
    2104 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expires"/>
    2105   <x:ref>Expires</x:ref> = "Expires" ":" <x:ref>HTTP-date</x:ref>
     2114<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expires"/><iref primary="true" item="Grammar" subitem="Expires-v"/>
     2115  <x:ref>Expires</x:ref>   = "Expires" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Expires-v</x:ref>
     2116  <x:ref>Expires-v</x:ref> = <x:ref>HTTP-date</x:ref>
    21062117</artwork></figure>
    21072118<t>
     
    21092120</t>
    21102121<figure><artwork type="example">
    2111    Expires: Thu, 01 Dec 1994 16:00:00 GMT
     2122  Expires: Thu, 01 Dec 1994 16:00:00 GMT
    21122123</artwork></figure>
    21132124<t>
     
    21472158  <x:anchor-alias value="extension-pragma"/>
    21482159  <x:anchor-alias value="Pragma"/>
     2160  <x:anchor-alias value="Pragma-v"/>
    21492161  <x:anchor-alias value="pragma-directive"/>
    21502162<t>
    2151    The Pragma general-header field is used to include implementation-specific
     2163   The general-header field "Pragma" is used to include implementation-specific
    21522164   directives that might apply to any recipient along the
    21532165   request/response chain. All pragma directives specify optional
     
    21552167   &MAY; require that behavior be consistent with the directives.
    21562168</t>
    2157 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Pragma"/><iref primary="true" item="Grammar" subitem="pragma-directive"/><iref primary="true" item="Grammar" subitem="extension-pragma"/>
    2158   <x:ref>Pragma</x:ref>            = "Pragma" ":" 1#<x:ref>pragma-directive</x:ref>
     2169<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Pragma"/><iref primary="true" item="Grammar" subitem="Pragma-v"/><iref primary="true" item="Grammar" subitem="pragma-directive"/><iref primary="true" item="Grammar" subitem="extension-pragma"/>
     2170  <x:ref>Pragma</x:ref>            = "Pragma" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Pragma-v</x:ref>
     2171  <x:ref>Pragma-v</x:ref>          = 1#<x:ref>pragma-directive</x:ref>
    21592172  <x:ref>pragma-directive</x:ref>  = "no-cache" / <x:ref>extension-pragma</x:ref>
    21602173  <x:ref>extension-pragma</x:ref>  = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> ) ]
     
    21932206  <iref primary="true" item="Headers" subitem="Vary" x:for-anchor=""/>
    21942207  <x:anchor-alias value="Vary"/>
    2195 <t>
    2196    The Vary response-header field's value indicates the set of request-header
     2208  <x:anchor-alias value="Vary-v"/>
     2209<t>
     2210   The "Vary" response-header field's value indicates the set of request-header
    21972211   fields that fully determines, while the response is fresh, whether a cache
    21982212   is permitted to use the response to reply to a subsequent request
     
    22042218   <xref target="caching.negotiated.responses"/> for use of the Vary header field by caches.
    22052219</t>
    2206 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Vary"/>
    2207   <x:ref>Vary</x:ref>  = "Vary" ":" ( "*" / 1#<x:ref>field-name</x:ref> )
     2220<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Vary"/><iref primary="true" item="Grammar" subitem="Vary-v"/>
     2221  <x:ref>Vary</x:ref>   = "Vary" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Vary-v</x:ref>
     2222  <x:ref>Vary-v</x:ref> = "*" / 1#<x:ref>field-name</x:ref>
    22082223</artwork></figure>
    22092224<t>
     
    22452260  <iref primary="true" item="Headers" subitem="Warning" x:for-anchor=""/>
    22462261  <x:anchor-alias value="Warning"/>
     2262  <x:anchor-alias value="Warning-v"/>
    22472263  <x:anchor-alias value="warning-value"/>
    22482264  <x:anchor-alias value="warn-agent"/>
     
    22512267  <x:anchor-alias value="warn-text"/>
    22522268<t>
    2253    The Warning general-header field is used to carry additional
     2269   The general-header field "Warning" is used to carry additional
    22542270   information about the status or transformation of a message which
    22552271   might not be reflected in the message. This information is typically
     
    22612277   Warning headers are sent with responses using:
    22622278</t>
    2263 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Warning"/><iref primary="true" item="Grammar" subitem="warning-value"/><iref primary="true" item="Grammar" subitem="warn-code"/><iref primary="true" item="Grammar" subitem="warn-agent"/><iref primary="true" item="Grammar" subitem="warn-text"/><iref primary="true" item="Grammar" subitem="warn-date"/>
    2264   <x:ref>Warning</x:ref>    = "Warning" ":" 1#<x:ref>warning-value</x:ref>
     2279<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Warning"/><iref primary="true" item="Grammar" subitem="Warning-v"/><iref primary="true" item="Grammar" subitem="warning-value"/><iref primary="true" item="Grammar" subitem="warn-code"/><iref primary="true" item="Grammar" subitem="warn-agent"/><iref primary="true" item="Grammar" subitem="warn-text"/><iref primary="true" item="Grammar" subitem="warn-date"/>
     2280  <x:ref>Warning</x:ref>    = "Warning" <x:ref>BWS</x:ref> ":" <x:ref>OWS</x:ref> <x:ref>Warning-v</x:ref>
     2281  <x:ref>Warning-v</x:ref>  = 1#<x:ref>warning-value</x:ref>
    22652282 
    22662283  <x:ref>warning-value</x:ref> = <x:ref>warn-code</x:ref> <x:ref>SP</x:ref> <x:ref>warn-agent</x:ref> <x:ref>SP</x:ref> <x:ref>warn-text</x:ref>
     
    30333050      Use "/" instead of "|" for alternatives.
    30343051    </t>
     3052    <t>
     3053      Introduce new ABNF rules for "bad" whitespace ("BWS"), optional
     3054      whitespace ("OWS") and required whitespace ("RWS").
     3055    </t>
     3056    <t>
     3057      Rewrite ABNFs to spell out whitespace rules, factor out
     3058      header value format definitions.
     3059    </t>
    30353060  </list>
    30363061</t>
Note: See TracChangeset for help on using the changeset viewer.