Overview: What is WebDAV?
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. This blog post will introduce you to the basic functions of WebDAV, its similarities and differences with FTP and other file transfer protocols, and a few examples showing what you can do with it.
Brief history and basic properties
In the earlier days of the Web, people could only read/view Web content. Of course, someone had to write/create the content offline and then upload it later on. But it wasn't possible to connect to a Web server, open a document, and then edit it online a la Google Drive or Office 365.
Realizing the potential of the Web for remote collaboration activities like distributed authoring, wherein several authors could collaborate on the same document even while working from different parts of the world, an IETF working group was formed to develop extensions to HTTP (Hypertext Transfer Protocol) that would enable such activities.
As an extension of HTTP, WebDAV is typically served through port 80 for HTTP connections or port 443 for HTTPS connections. WebDAV HTTPS connections are encrypted by SSL (Secure Sockets Layer), making them suitable for confidential documents.
Connecting to a WebDAV server
To connect to a WebDAV service, you would need a WebDAV client.
This could be:
- a file transfer client like AnyClient,
- a file manager like Dolphin or Nemo in Linux, Finder in Mac OS X, or File Explorer in Windows,
- a browser capable of running a Java applet, or
- any WebDAV-enabled client
AnyClient (a free WebDAV client)
Linux KDE Dolphin connecting to a WebDAV server
Linux Mint Cinnamon's Nemo connecting to a WebDAV server
Mac Finder connecting to a WebDAV server
As you can see from the screenshots above, the WebDAV URL syntax can vary from one client to another. Some variations of the URL include:
- https://[hostname or IP address]/[path]/
- webdav://[username]@[hostname or IP address]/[path]/
- dav://[hostname or IP address]/[path]/
Make sure you know exactly which URL is used by your WebDAV client. Otherwise, you'll have trouble connecting.
Once you've connected to a WebDAV server, you can do several things, like:
- Create a new file,
- Edit an existing file,
- Copy or Move files between a local folder and a remote folder on the server,
- Delete a file,
- Create a folder,
- and many others
Here are some screenshots depicting some of the operations I just mentioned:
Creating a new document on the WebDAV server
Copying or moving a file from a local directory to a directory on the server
(Yes. drag-and-drop works)
Editing an existing file on the WebDAV server
Comparing WebDAV vs. FTP
WebDAV has many similarities with FTP. Operations like copying and moving files or creating and deleting directories can also be performed through FTP (as well as other file transfer protocols like FTPS and SFTP). But in addtion to file transfer operations, WebDAV can also do so much more.
For instance, if you want to edit a file stored on a WebDAV server, there's no need to download it first (which is what you'd normally do in FTP). To edit a file (as is being done in that last screenshot above), you simply double-click it. This will cause the file to load using the local application associated with it. You can then edit the file from there. Once you're done, you simply save the file and all changes you made will then be automatically committed to the file on the server.
The ability to edit a file in place (i.e. on the server) has some significant benefits. Perhaps the most important is that it helps ensure that the most current version can be found in one place.
Please note that not all WebDAV clients will allow you to drag and drop files or even open the files in response to a double-click. Those operations shown on the screenshots were carried out on Nemo, running on Linux Mint 17 Cinnamon 64-bit. I tried doing this on Linux Mint 14 but things didn't work out as smoothly.
Still, this is just the tip of the iceberg.
WebDAV allows multiple users to edit the same file remotely. This is very suitable for collaborative endeavors, which was really one of the main motivations for creating WebDAV. Here's a screenshot showing what happens when a user attempts to save a file that's also being edited by another user (presumably from another geographical location). This helps users avoid accidental overwrites.
Some WebDAV servers even prohibit other users from editing a file that's already being edited by locking it through WebDAV's built-in document locking feature.
Another advantage of WebDAV over FTP is that, because it runs over HTTP, it's firewall-friendly. To allow access, you simply open either port 80 or port 443. With FTP, you sometimes need to understand the inner workings of active and passive modes of FTP in order to configure your firewalls correctly. There are several advantages but it might be a good idea to discuss those on a separate post.
Liked this post? You might find these interesting as well:
How about giving WebDAV a try? You can download the free, fully-functional evaluation edition of JSCAPE MFT Server, a managed file transfer server that will allow you to set up a WebDAV service. You can then access that service using AnyClient, a free multi-protocol file transfer client.