Re: I-D for WebDAV methods - APPEND and PATCH

Hi Suma,

--On August 1, 2006 2:05:55 PM -0700 suma@soe.ucsc.edu wrote:

> My name is Suma Potluri, a graduate student at UCSC. I am working with Jim
> Whitehead to define the WebDAV methods - APPEND and PATCH. We've
> submitted an Internet-Draft and would like to solicit your comments on it.
>
> Here is the URL for this I-D:
>
> http://www.ietf.org/internet-drafts/draft-suma-append-patch-00.txt
>
> These two methods would be very useful for WebDAV clients for efficiently
> transferring partial contents of a file. And since earlier efforts to
> define such methods have been unsuccessful, I think it is worth
> considering these new methods and hopefully get something useful out of
> it.

Some initial comments:

1) You should define how this interacts with WebDAV ACL. The obvious 
solution to that is to say that APPEND and PATCH are controlled in the same 
way as PUT via ACL (i.e. write-content privilege is needed).

2) You might want to (informatively) reference 
<http://www.ietf.org/internet-drafts/draft-ietf-simple-xml-patch-ops-02.txt> 
as way of doing XML diffs.

3) Which 'format' of a resource is being patched? With the Accept header a 
client can get resource data from the server in several different formats 
if supported (e.g. text/plain or text/html). It needs to be clear that 
APPEND and PATCH are operating on the 'native' content type of the resource 
(i.e. the one indicated by the 'getcontenttype' WebDAV property) and not on 
one of the 'derived' types that the client may have retrieved.

4) Also please explain any differences from 
<http://greenbytes.de/tech/webdav/draft-dusseault-http-patch-06.html>.

5) You should defined some pre/post condition error codes for each method. 
One error to include in there is that APPEND and PATCH cannot be applied to 
a collection.

6) Should Patch-Type values be registered (IANA)?

7) BTW Is APPEND really needed? Surely a PATCH can do the same thing 
(except that PATCH cannot create a new resource)?

8) Mention that ETag/If-Match/If-None-Match can be used to prevent 
'lost-updates'.

9) Discuss interaction with LOCK.

10) Its worth pointing out somewhere that the PATCH body can in some cases 
be larger than the entire modified resource, so in that case a PUT is 
better than PATCH. i.e. a client should be smart enough to figure out which 
is better and use that.

-- 
Cyrus Daboo

Received on Tuesday, 1 August 2006 21:47:28 UTC