RE: i107

On Thu, 2008-03-13 at 21:09 -0700, Brian Smith wrote:

> If the purpose is to allow the client to verify that none of the
> entities it has are current (conversely, at least one of its
> currently-held entities are current), then the server must consider all
> entities for the resource, not just the ones that would bet returned by
> a similar GET.

Current for that request only.

> Also, the name itself, If-*None*-Match, indicates that it isn't supposed
> to be matched against multiple entities, not just against a singular
> "selected representation".

It's a match to a singular selected server representation. Why it's a
list in the request is due to Vary processing, where the client may have
multiple entities cached under the resource URI of which at most one is
the current one for this request.

Example sequence:

GET /object HTTP/1.1
A: a

HTTP/1.0 200 OK
Vary: A
ETag: "one"

GET /object HTTP/1.1
A: b
If-None-Match: "one"

HTTP/1.0 200 OK
Vary: A
ETag: "two"

GET /object HTTP/1.1
A: a2
If-None-Match: "one", "two"

HTTP/1.1 304 Not Modified
Vary: A
ETag: "one"

Regards
Henrik

Received on Friday, 14 March 2008 12:42:32 UTC