Re: Summary of ETag related issues in RFC2518bis

On Tue, 20 Dec 2005, Stefan Eissing wrote:

> Mathematically speaking if PUT(x) is the function in the server that takes 
> the client input and modifies it, so that a subsequent GET(PUT(x)) defines 
> the content a client gets back. We are talking about the situation where    x 
> != GET(PUT(x)) because the other case is trivial.
>
> So, the discussion is about: when is it safe for the client to continue 
> editing x and when should it really be editing GET(PUT(x)) and what is the 
> role of the ETAG in all of this.
>
> So, let edit(x, z) be the content after an edit z of x, then we have 
> basically two  cases:
>
>  a) GET(PUT(edit(x,z)) == GET(PUT(edit(GET(PUT(x)),z))
>     Read: the result of putting the edit of the original x and the putting 
> of the edit of GET(PUT(x)) is the same. Keyword substitutions fall in this 
> category. It is safe to submit old values since they are always overwritten 
> by the new ones on PUT. Not a problem.
>
>  b) GET(PUT(edit(x,z)) != GET(PUT(edit(GET(PUT(x)),z))
>     In this case the server modifies the content of a PUT in a way which 
> somewhat random or for example counting the number of modifications inside 
> the content.

If the server marginally modified the resource (like adding a cvs commit
timestamp), editing the current "x" copy should not generate errors (case 
a).
If changes may be more drastic in the document after the PUT so that
continuing to edit "x" client side is an issue, then it would be safe for
the server to reply to the PUT(x) with the HTTP status code 205 (Reset
Content), even if "The server has fulfilled the request and the user agent
SHOULD reset the document view which caused the request to be sent." could
be clarified in this case as "the client should issue a GET to retreive
the latest version fo the document to edit"

In any case, I don't see what's preventing the server to generate the ETag 
of the document you might get... with a GET (so, not the ETag of what has 
been put)

-- 
Yves Lafon - W3C
"Baroula que barouleras, au tiéu toujou t'entourneras."

Received on Tuesday, 20 December 2005 17:22:48 UTC