Ignore:
Timestamp:
Nov 2, 2011, 5:33:39 AM (8 years ago)
Author:
julian.reschke@…
Message:

Change ETag header field ABNF not to use quoted-string, thus avoiding escaping issues (see #306).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p4-conditional.xml

    r1469 r1470  
    293293  <x:anchor-alias value="CR"/>
    294294  <x:anchor-alias value="DIGIT"/>
     295  <x:anchor-alias value="DQUOTE"/>
    295296  <x:anchor-alias value="LF"/>
    296297  <x:anchor-alias value="OCTET"/>
    297298  <x:anchor-alias value="VCHAR"/>
    298299  <x:anchor-alias value="core.rules"/>
    299   <x:anchor-alias value="quoted-string"/>
     300  <x:anchor-alias value="obs-text"/>
    300301  <x:anchor-alias value="OWS"/>
    301302  <x:anchor-alias value="HTTP-date"/>
     
    321322<figure><artwork type="abnf2616">
    322323  <x:ref>OWS</x:ref>           = &lt;OWS, defined in &basic-rules;&gt;
    323   <x:ref>quoted-string</x:ref> = &lt;quoted-string, defined in &field-rules;&gt;
     324  <x:ref>obs-text</x:ref>      = &lt;obs-text, defined in &field-rules;&gt;
    324325  <x:ref>HTTP-date</x:ref>     = &lt;HTTP-date, defined in &http-date;&gt;
    325326</artwork></figure>
     
    548549  <x:anchor-alias value="opaque-tag"/>
    549550  <x:anchor-alias value="weak"/>
     551  <x:anchor-alias value="etagc"/>
    550552<t>
    551553   The ETag header field provides the current entity-tag for the
     
    558560   quoted string, possibly prefixed by a weakness indicator.
    559561</t>
    560 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="ETag"/><iref primary="true" item="Grammar" subitem="entity-tag"/><iref primary="true" item="Grammar" subitem="weak"/><iref primary="true" item="Grammar" subitem="opaque-tag"/>
     562<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="ETag"/><iref primary="true" item="Grammar" subitem="entity-tag"/><iref primary="true" item="Grammar" subitem="weak"/><iref primary="true" item="Grammar" subitem="opaque-tag"/><iref primary="true" item="Grammar" subitem="etagc"/>
    561563  <x:ref>ETag</x:ref>       = <x:ref>entity-tag</x:ref>
    562564
    563565  <x:ref>entity-tag</x:ref> = [ <x:ref>weak</x:ref> ] <x:ref>opaque-tag</x:ref>
    564566  <x:ref>weak</x:ref>       = <x:abnf-char-sequence>"W/"</x:abnf-char-sequence> ; "W/", case-sensitive
    565   <x:ref>opaque-tag</x:ref> = <x:ref>quoted-string</x:ref>
     567  <x:ref>opaque-tag</x:ref> = <x:ref>DQUOTE</x:ref> *<x:ref>etagc</x:ref> <x:ref>DQUOTE</x:ref>
     568  <x:ref>etagc</x:ref>      = %x21 / %x23-7E / <x:ref>obs-text</x:ref>
     569             ; <xref>VCHAR</xref> except double quotes, plus obs-text
    566570</artwork></figure>
     571<x:note>
     572  <t>
     573    <x:h>Note:</x:h> Previously, opaque-tag was defined to be a quoted-string
     574    (<xref target="RFC2616" x:fmt="," x:sec="3.11"/>), thus some recipients
     575    might perform backslash unescaping. Servers therefore ought to avoid
     576    backslash characters in entity tags.
     577  </t>
     578</x:note>
    567579<t>
    568580   An entity-tag can be more reliable for validation than a modification
     
    15671579</t>
    15681580<t>
     1581  Change ETag header field ABNF not to use quoted-string, thus avoiding
     1582  escaping issues.
     1583  (<xref target="header.etag"/>)
     1584</t>
     1585<t>
    15691586  Change ABNF productions for header fields to only define the field value.
    15701587  (<xref target="header.field.definitions"/>)
     
    15921609
    15931610<x:ref>entity-tag</x:ref> = [ weak ] opaque-tag
    1594 
    1595 <x:ref>opaque-tag</x:ref> = quoted-string
    1596 
    1597 <x:ref>quoted-string</x:ref> = &lt;quoted-string, defined in [Part1], Section 3.2.3&gt;
     1611<x:ref>etagc</x:ref> = "!" / %x23-7E ; '#'-'~'
     1612 / obs-text
     1613
     1614<x:ref>obs-text</x:ref> = &lt;obs-text, defined in [Part1], Section 3.2.3&gt;
     1615<x:ref>opaque-tag</x:ref> = DQUOTE *etagc DQUOTE
    15981616
    15991617<x:ref>weak</x:ref> = %x57.2F ; W/
     
    18551873<section title="Since draft-ietf-httpbis-p4-conditional-17" anchor="changes.since.17">
    18561874<t>
    1857   No changes yet.
     1875  Closed issues:
     1876  <list style="symbols">
     1877    <t>
     1878      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/306"/>:
     1879      "does etag value really use quoted-string"
     1880    </t>
     1881  </list>
    18581882</t>
    18591883</section>
Note: See TracChangeset for help on using the changeset viewer.