issue & resolution: ETAG_CLARITY

Some private discussion, including a lengthy one during today's
editorial-group teleconference, has resulted in this proposed
change to the language in section 14.19 (ETag).  We believe that
this is really just a clarification, rather than a substantive
change to the specification:

(1) Change

	The ETag entity-header field defines the entity tag for the
	associated entity. The headers used with entity tags are
	described in sections 14.19, 14.25, 14.26 and 14.44. The entity
	tag may be used for comparison with other entities from the
	same resource (see section 13.2.3).

To

	The ETag response-header field provides the current value of
	the entity tag for the requested variant. The headers used with
	entity tags are described in sections 14.25, 14.26 and 14.44.
	The entity tag may be used for comparison with other entities
	from the same resource (see section 13.2.3).

Rationale: ETag is only meaningful in a response, because it's not
possible for a client to tell a server what ETag to assign to a
resource or variant  Also, the entity-tag in an ETag header refers to
the requested resource or variant, not necessarily the contents
(message-body) of the response.  This allows (for example) a server
responding to PUT to provide the current entity-tag value for the
resource (or variant) affected by the PUT, which allows the client to
know if its cache entry for that resource is still valid.

The cross-reference to section 14.19 was superfluous in 14.19,
and is deleted.

*** The rest of these changes are a consequence of making ETag
*** a response-header field, rather than an entity-header field.

(2) In section 7.1 (Entity Header Fields), remove

                      | ETag                     ; Section 14.19

from the BNF for entity-header.

(3) In section 6.2 (Response Header Fields), add

                      | ETag                     ; Section 14.19

to the BNF for response-header.

(4) In 13.3.2 (Entity Tag Cache Validators), change

	The ETag entity-header field value, an entity tag, provides
	for an "opaque" cache validator.

To

	The ETag response-header field value, an entity tag, provides
	for an "opaque" cache validator.

(5) In section 14.26 (If-None-Match), change

    Instead, if the request method was GET or HEAD, the server SHOULD
    respond with a 304 (Not Modified) response, including the
    cache-related entity-header fields (particularly ETag) of one of
    the entities that matched. For all other request methods, the
    server MUST respond with a status of 412 (Precondition Failed).

To

    Instead, if the request method was GET or HEAD, the server SHOULD
    respond with a 304 (Not Modified) response, including the
    cache-related header fields (particularly ETag) of one of the
    entities that matched. For all other request methods, the server
    MUST respond with a status of 412 (Precondition Failed).

-Jeff

Received on Tuesday, 10 March 1998 11:37:48 UTC