[Ietf-caldav] Fwd: Summary of ETag related issues in RFC2518bis
Helge Hess
helge.hess at opengroupware.org
Thu Dec 22 02:58:30 PST 2005
On 22. Dez 2005, at 06:58 Uhr, Julian Reschke wrote:
>> Basically the transaction looks like:
>> 1-a) PUT /blah.ics
>> 1-b) 205, etag ABC
>> 2-a) GET /blah.ics, if-match: etag=ABC
>> 2-bx) new content
>> or
>> 2-by) 419 Conflict (etag changed, some other user/client/server
>> changed the
>> item)
> > ...
>
> Me confused. Shouldn't that be...:
>
> 1-a) PUT /blah.ics
> 1-b) 205, etag ABC
> 2-a) GET /blah.ics, if-none-match: etag=ABC
> 2-bx) new content (200, etag did change)
> or
> 2-by) 304 Not Modified (etag did not change)
> ?
No! :-)
The 1-b 205 says that the server changed the content and the etag
represents the state of this content which in turn is a result of 1-
a. What 2-a does is (_reliably_) fetching the result of 1-a which is
unknown to the client at this point.
If the if-match fails, the client knows that there is an actual
conflict (someone else wrote to the same resource in the meantime).
Your sequence is the one to be used for refreshes if the server does
not change the content, that is, if it returns a 201 or 200 in step 1-b.
Greets,
Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org
More information about the Ietf-caldav
mailing list