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