[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HTTP, WebDAV, and POST



On Mon, Jun 07, 2004 at 09:50:46AM -0700, Lisa Dusseault wrote:
> On Jun 6, 2004, at 1:09 PM, John Panzer wrote:
> >Ken MacLeod wrote:
> >>...
> >>
> >>* Although WebDAV does not use POST, there does not seem to be any
> >>  conflict in Atom specifying POST for creating server-located
> >>  resources and at some point using WebDAV actions on the resources
> >>  after they've been created.

[ and the part about PUT ]

+1

>...
> Microsoft's Exchange 2000 WebDAV engine combines these two in pretty 
> much the way you describe.  When the user is creating a new item in a 
> WebDAV-compliant collection and doesn't care what the URL is, as long 
> as it's unique, it uses POST with a request-URI of the target parent 
> collection. The server generates a unique URI inside the WebDAV 
> collection.  If the client wishes to choose the URL for a new resource, 
> or if the client wishes to overwrite an existing resource, the client 
> uses PUT instead.

Right.

Subversion needs to create unique (DeltaV) activity resources on the
server. It doesn't use POST, though. Instead, it generates a UUID and
forms a URL from that. That has worked really well for SVN.

Atom doesn't get to use that option, though, as it can be desirable to
have a resource name that somewhat corresponds to the content. For
example, most blog post URLs have generated named from the first N words
of the post. That is very nice for users, and (in the future) when
somebody is browsing a WebDAV-capable store of blog posts, it will be MUCH
nicer to have somewhat-recognizable resource names instead of UUIDs.

> This POST usage isn't canonicalized as part of the standard 
> capabilities of a standard WebDAV collection, but it's a simple 
> extension and one could easily imagine standardizing it.

While true, I'd prefer a new HTTP method. The problem comes up all over
the place (e.g. the activity creation mentioned above). Maybe a method
called NEWRESOURCE or somesuch. Throw it at a collection.

[ and I'll note that the Atom effort could very well be the WG to define
  this new method! ]

Cheers,
-g