[Ietf-caldav] [Fwd: draft-reschke-http-addmember-00]
Cyrus Daboo
daboo at isamet.com
Tue Feb 15 07:50:20 PST 2005
Hi Julian,
--On February 15, 2005 1:00:02 PM +0100 Julian Reschke
<julian.reschke at gmx.de> wrote:
> recently different communities (caldav/groupdav, atompup (protocol
> part)) have been discussing how to use HTTP to author new resources when
> the URL namespace is completely server-controlled, thus PUT just doesn't
> fit well.
>
> A simple approach would be to define a new HTTP method which is *almost*
> like PUT, except that the server chooses the URL to create (and returns
> it in the Location header).
>
> I've submitted a first draft as "draft-reschke-http-addmember-00". Note
> that it also contains an appendix covering possible alternative
> approaches.
>
> Feedback appreciated,
>
Do we anticipate that MKCOL will also have the same problem as PUT? i.e. do
we have to have an 'ADDCOLLECTION' method to take care of that case?
How is a client supposed to know to use ADDMEMBER as opposed to PUT? Does
it have to check OPTIONS each time before it creates a resource in a new
part of the URI hierarchy?
Is there any reason why we can't simply define a new status code for a PUT
(or MKCOL) that results in the resource being renamed by the server? e.g.:
PUT /calendar/evt1.ics HTTP/1.1
Host: localhost
...
HTTP/1.1 2xx Created and Moved
Location: /calendar/xyz123.ics
Yes, this would probably break existing http clients doing a PUT, but those
clients are going to have problems anyway since the server will rename the
resource from under them anyway. What it does do is provide a clear
indication for clients that can understand this behaviour. What is more
this response code can be used on any method that creates resources without
the need to have separate new methods for this. e.g. there are now a whole
host of MKxxxx methods that may need the same treatment as PUT. The same
probably applies to MOVE and COPY too.
--
Cyrus Daboo
More information about the Ietf-caldav
mailing list