Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are your experiences implementing/using WebDAV?

For a current project, I was thinking of implementing WebDAV to present a virtual file store that clients can access. I have only done Google research so far but it looks like I can get away with only implementing two methods:

GET, PROPFIND

I think that this is great. I was just curious though. If I wanted to implement file uploading via:

PUT

I haven't implemented it, but it seems simple enough. My only concern is whether a progress meter will be displayed for the user if they are using standard Vista Explorer or OSX Finder.

I guess I'm looking for some stories from people experienced with WebDAV.

like image 439
Frank Krueger Avatar asked Dec 11 '08 19:12

Frank Krueger


People also ask

What can you do with WebDAV?

In essence, WebDAV enables a web server to act as a file server, allowing authors to collaborate on web content. WebDAV enriches the standard set of HTTP headers and methods to let you create, move and edit files, as well as delete or copy files and folders.

Do people still use WebDAV?

In many of its use cases, WebDAV is being supplanted by more modern mechanisms. But it's still a reliable workhorse when the right servers and clients are matched, so it's still encountered in many different applications.

What is WebDAV application?

Web Distributed Authoring and Versioning or WebDAV is a protocol whose basic functionality includes enabling users to share, copy, move and edit files through a web server. It can also be used to support collaborative applications with features like file locking and revision tracking.


2 Answers

For many WebDAV clients and even for read only access, you will also need to support OPTIONS. If you want to support upload, PUT obviously is required, and some clients (MacOS X?) will require locking support.

(btw, RFC 4918 is the authorative source of information).

like image 136
Julian Reschke Avatar answered Oct 16 '22 12:10

Julian Reschke


I implemented most of the WebDAV protocol in about a day's work: http://github.com/nfarina/simpledav

I wrote it in Python to run on Google App Engine, and I expect any other language would be a similar effort. All in all, it's about two pages of code.

I implemented following methods: OPTIONS, PROPFIND, MKCOL, DELETE, MOVE, PUT, GET. So far I've tested Transmit and Cyberduck and both work great with it.

Hopefully this can provide some guidance for the next person out there interested in implementing a WebDAV server. It's not a difficult protocol, it's just very dense with abstracted language like 'depth' and 'collections' and blah.

Here's the spec: http://www.webdav.org/specs/rfc4918.html

But the best way to understand the protocol is to watch a client interacting with a working server. I used Transmit to connect to Box.net's WebDAV server and monitored traffic with Charles Proxy.

like image 42
Nick Farina Avatar answered Oct 16 '22 13:10

Nick Farina