RE: i37: Vary and non-existant headers

Julian Reschke wrote:
> ""When a cache receives a request that can be satisfied by a stored
> response that includes a Vary header field (Section 3.5), it MUST NOT
> use that response unless all of the selecting request-headers nominated
> by the *stored* Vary header match in both the original request
> associated with the stored response, and the presented request, *or
> after validating with the origin server*".

Section 2.2 already says this (almost), much more clearly. How about this:

  - Use of server-driven content negotiation (Section 4.1 of [Part3])
  - alters the conditions under which a cache can use the response for
  - subsequent requests. [ed: completely untrue]
  - 
  - When a cache receives a request that can be satisfied by a stored
  - response that includes a Vary header field (Section 3.5), it MUST NOT
  - use that response unless all of the selecting request-headers in the
  - presented request match the corresponding stored request-headers from
  - the original request. [ed: redundant with 2.2]

    The selecting request-headers from two requests are defined to match
    if and only if the selecting request-headers in the first request can
    be transformed to the selecting request-headers in the second request
    by adding or removing linear white space [[anchor11&anchor12]].
  + Any selecting request-headers absent from the first request must 
  + be absent from the second request. [ed: Mark's suggestion,
  + reworded to match the terminology from the first sentence.]

The first sentence in Section 2.2 needs to be changed:

  - For a presented request, a cache MUST NOT return a stored
  - response, unless:
  + A cache MUST NOT return a stored response without
  + validating it, unless:

The last bullet point in Section 2.2 needs to be changed:

  -  o the stored response is either:
  -
  -     *  fresh (see Section 2.3), or
  -
  -     *  allowed to be served stale (see Section 2.3.3), or
  -
  -     *  successfully validated (see Section 2.4).
  +  o the stored response is fresh (see Section 2.3) or allowed
  +    to be served stale (see Section 2.3.3).

Regards,
Brian

Received on Friday, 8 May 2009 00:35:21 UTC