- From: Henrik Nordstrom <hno@squid-cache.org>
- Date: Wed, 03 Jan 2007 15:16:36 +0100
- To: Julian Reschke <julian.reschke@gmx.de>
- Cc: ietf-http-wg@w3.org
- Message-Id: <1167833796.2283.48.camel@henriknordstrom.net>
ons 2007-01-03 klockan 11:08 +0100 skrev Julian Reschke: > (see <http://www.w3.org/Protocols/HTTP/1.1/rfc2616bis/issues/#i27>) > > This topic was just discussed over on rest-discuss, and I think the > recommendation is to relax/rephrase the definition of idempotency. > > See: <http://tech.groups.yahoo.com/group/rest-discuss/message/7387> Hmm.. PUT indeed is a odd beast in this discussion. 2616 in this quite clearly does not consider much servers using revision control or similar where each executed PUT has irreversible and unique sideeffects (i.e. new revision created), only focusing on blind store of PUT entities. It can be argued that such applications of HTTP should also use 'If-Match: "OldEtag"' on update, and 'If-None-Match: *' on create to guard themselves if those side-effects is important to the application. But this scheme fails is the server application can not use strong ETag:s. It's unfortunately hard to get this down into good writing, as to many applications those side-effects is of no importance at all. I.e. consider a revision controlled server used as dumb file storage by the clients. To the clients the PUT requests is probably idempotent as it does not matter that multiple revisions of the same content got created on the server so adding restrictions on when PUT is idempotent based on conditionals like above is not quite appropriate. Maybe rewriting 9.1.2 to read "the <ins>significant</ins> side-effects of N > 0 ..." would do? Leaving it up to each application to define whats 'significant'. Regards Henrik
Received on Wednesday, 3 January 2007 14:17:01 UTC