Re: #306: does etag value really use quoted-string

On 2011-08-30 13:35, Mark Nottingham wrote:
> <http://trac.tools.ietf.org/wg/httpbis/trac/ticket/306>
>
> IIRC we checked various implementations and found that many don't handle ETags as a quoted-string; therefore, the safe/sensible thing to do is to re-define ETag as a something else; i.e., something with the same syntax, but without any special semantic for backslashes.
>
> We might also caution against including backslashes in them in prose, since it isn't interoperable.
>
> Thoughts / objections?
>
> --
> Mark Nottingham   http://www.mnot.net/

Proposed patch: 
<http://trac.tools.ietf.org/wg/httpbis/trac/attachment/ticket/306/306.diff>

The definition would then read:

2.3.  ETag

    The ETag header field provides the current entity-tag for the
    selected representation.  An entity-tag is an opaque validator for
    differentiating between multiple representations of the same
    resource, regardless of whether those multiple representations are
    due to resource state changes over time, content negotiation
    resulting in multiple representations being valid at the same time,
    or both.  An entity-tag consists of an opaque quoted string, possibly
    prefixed by a weakness indicator.

      ETag       = entity-tag

      entity-tag = [ weak ] opaque-tag
      weak       = %x57.2F ; "W/", case-sensitive
      opaque-tag = DQUOTE *etagc DQUOTE
      etagc      = %x21 / %x23-7E / obs-text
                 ; VCHAR except double quotes, plus obs-text

       Note: Previously, opaque-tag was defined to be a quoted-string
       ([RFC2616], Section 3.11), thus some recipients might perform
       backslash unescaping.  Servers therefore ought to avoid backslash
       characters in entity tags.

       ...

Best regards, Julian

Received on Thursday, 1 September 2011 19:00:33 UTC