All WebDAV clients fall into one of three
categories–standalone applications, file-explorer
extensions, or filesystem implementations. These categories
broadly define the types of WebDAV functionality available to
users. Table C.1, “Common WebDAV Clients” gives our
categorization and a quick description of some common pieces of
WebDAV-enabled software. More details about these software
offerings, as well as their general category, can be found in
the sections that follow.
Table C.1. Common WebDAV Clients
Software
Type
Windows
Mac
Linux
Description
Adobe Photoshop
Standalone WebDAV application
X
Image editing software, allowing direct opening
from, and writing to, WebDAV URLs
Cadaver
Standalone WebDAV application
X
X
Command-line WebDAV client supporting file
transfer, tree, and locking operations
DAV Explorer
Standalone WebDAV application
X
X
X
Java GUI tool for exploring WebDAV shares
Macromedia Dreamweaver
Standalone WebDAV application
X
Web production software able to directly read from
and write to WebDAV URLs
Microsoft Office
Standalone WebDAV application
X
Office productivity suite with several components
able to directly read from and write to WebDAV
URLs
Microsoft Web Folders
File-explorer WebDAV extension
X
GUI file explorer program able to perform tree
operations on a WebDAV share
GNOME Nautilus
File-explorer WebDAV extension
X
GUI file explorer able to perform tree
operations on a WebDAV share
KDE Konqueror
File-explorer WebDAV extension
X
GUI file explorer able to perform tree
operations on a WebDAV share
Mac OS X
WebDAV filesystem implementation
X
Operating system has built-in support for mounting
WebDAV shares.
Novell NetDrive
WebDAV filesystem implementation
X
Drive-mapping program for assigning Windows drive
letters to a mounted remote WebDAV share
SRT WebDrive
WebDAV filesystem implementation
X
File transfer software which, among other things,
allows the assignment of Windows drive letters to a
mounted remote WebDAV share
davfs2
WebDAV filesystem implementation
X
Linux file system driver that allows you to mount a
WebDAV share
Standalone WebDAV applications
A WebDAV application is a program which speakes WebDAV
protocols with a WebDAV server. We'll cover some of the most
popular programs with this kind of WebDAV support.
Microsoft Office, Dreamweaver, Photoshop
On Windows, there are several well-known applications
that contain integrated WebDAV client functionality, such as
Microsoft's Office,
[63]
Adobe's Photoshop, and Macromedia's Dreamweaver programs.
They're able to directly open and save to URLs, and tend to
make heavy use of WebDAV locks when editing a file.
Note that while many of these programs also exist for
the Mac OS X, they do not appear to support WebDAV directly
on that platform. In fact, on Mac OS X, the
File->Open dialog box doesn't allow
one to type a path or URL at all. It's likely that the
WebDAV features were deliberately left out of Macintosh
versions of these programs, since OS X already provides such
excellent low-level filesystem support for WebDAV.
Cadaver, DAV Explorer
Cadaver is a bare-bones Unix commandline program for
browsing and changing WebDAV shares. Like the Subversion
client, it uses the neon HTTP library–not
surprisingly, since both neon and cadaver are written by the
same author. Cadaver is free software (GPL license) and is
available at
http://www.webdav.org/cadaver/.
Using cadaver is similar to using a commandline FTP
program, and thus it's extremely useful for basic WebDAV
debugging. It can be used to upload or download files in a
pinch, and also to examine properties, and to copy, move,
lock or unlock files:
$ cadaver http://host/repos
dav:/repos/> ls
Listing collection `/repos/': succeeded.
Coll: > foobar 0 May 10 16:19
> playwright.el 2864 May 4 16:18
> proofbypoem.txt 1461 May 5 15:09
> westcoast.jpg 66737 May 5 15:09
dav:/repos/> put README
Uploading README to `/repos/README':
Progress: [=============================>] 100.0% of 357 bytes succeeded.
dav:/repos/> get proofbypoem.txt
Downloading `/repos/proofbypoem.txt' to proofbypoem.txt:
Progress: [=============================>] 100.0% of 1461 bytes succeeded.
DAV Explorer is another standalone WebDAV client, written
in Java. It's under a free Apache-like license and is
available at http://www.ics.uci.edu/~webdav/.
DAV Explorer does everything cadaver does, but has the
advantages of being portable and being a more user-friendly GUI
application. It's also one of the first clients to support
the new WebDAV Access Control Protocol (RFC 3744).
Of course, DAV Explorer's ACL support is useless in this
case, since mod_dav_svn doesn't support
it. The fact that both Cadaver and DAV Explorer support
some limited DeltaV commands isn't particularly useful
either, since they don't allow MKACTIVITY
requests. But it's not relevant anyway; we're assuming all
of these clients are operating against an autoversioning
repository.
File-explorer WebDAV extensions
Some popular file explorer GUI programs support WebDAV
extensions which allow a user to browse a DAV share as if it
was just another directory on the local computer, and to
perform basic tree editing operations on the items in that
share. For example, Windows Explorer is able to browse a
WebDAV server as a “network place”. Users can
drag files to and from the desktop, or can rename, copy, or
delete files in the usual way. But because it's only a
feature of the file-explorer, the DAV share isn't visible to
ordinary applications. All DAV interaction must happen
through the explorer interface.
Microsoft Web Folders
Microsoft was one of the original backers of the WebDAV
specification, and first started shipping a client in Windows
98, known as “Web Folders”. This client was also
shipped in Windows NT4 and 2000.
The original Web Folders client was an extension to
Explorer, the main GUI program used to browse filesystems. It
works well enough. In Windows 98, the feature might need to
be explicitly installed if Web Folders aren't already visible
inside “My Computer”. In Windows 2000, simply
add a new “network place”, enter the URL, and the
WebDAV share will pop up for browsing.
With the release of Windows XP, Microsoft started shipping
a new implementation of Web Folders, known as the “WebDAV
mini-redirector”. The new implementation is a
filesystem-level client, allowing WebDAV shares to be mounted
as drive letters. Unfortunately, this implementation is
incredibly buggy. The client usually tries to convert http
URLs (http://host/repos) into UNC share
notation (\\host\repos); it also often
tries to use Windows Domain authentication to respond to
basic-auth HTTP challenges, sending usernames as
HOST\username. These interoperability
problems are severe and documented in numerous places around
the web, to the frustration of many users. Even Greg Stein,
the original author of Apache's WebDAV module, recommends
against trying to use XP Web Folders against an Apache
server.
It turns out that the original
“Explorer-only” Web Folders implementation isn't
dead in XP, it's just buried. It's still possible to find it
by using this technique:
Go to 'Network Places'.
Add a new network place.
When prompted, enter the URL of the repository, but
include a port number in the URL.
For example, http://host/repos would be
entered as http://host:80/repos instead.
Respond to any authentication prompts.
There are a number of other rumored workarounds to the
problems, but none of them seem to work on all versions and
patchlevels of Windows XP. In our tests, only the previous
algorithm seems to work consistently on every system. The
general consensus of the WebDAV community is that you should
avoid the new Web Folders implementation and use the old one
instead, and that if you need a real filesystem-level
client for Windows XP, then use a third-party program like
WebDrive or NetDrive.
A final tip: if you're attempting to use XP Web Folders,
make sure you have the absolute latest version from
Microsoft. For example, Microsoft released a bug-fixed
version in January 2005, available at
http://support.microsoft.com/?kbid=892211.
In particular, this release is known to fix a bug whereby
browsing a DAV share shows an unexpected infinite
recursion.
Nautilus, Konqueror
Nautilus is the official file manager/browser for the
GNOME desktop (http://www.gnome.org), and
Konqueror is the manager/browser for the KDE desktop (http://www.kde.org). Both of these applications have
an explorer-level WebDAV client built-in, and operate just
fine against an autoversioning repository.
In GNOME's Nautilus, from the File
menu, select Open
location and enter the URL. The repository
should then be displayed like any other filesystem.
In KDE's Konqueror, you need to use the
webdav:// scheme when entering the URL in
the location bar. If you enter
an http:// URL, Konqueror will behave
like an ordinary web browser. You'll likely see the generic
HTML directory listing produced
by mod_dav_svn. By entering
webdav://host/repos instead of
http://host/repos, Konqueror becomes a
WebDAV client and displays the repository as a
filesystem.
WebDAV filesystem implementation
The WebDAV filesystem implementation is arguably the best
sort of WebDAV client. It's implemented as a low-level
filesystem module, typically within the operating system's
kernel. This means that the DAV share is mounted like any
other network filesystem, similar to mounting an NFS share on
Unix, or attaching an SMB share as drive letter in Windows.
As a result, this sort of client provides completely
transparent read/write WebDAV access to all programs.
Applications aren't even aware that WebDAV requests are
happening.
WebDrive, NetDrive
Both WebDrive and NetDrive are excellent commercial
products which allow a WebDAV share to be attached as drive
letters in Windows. We've had nothing but success with
these products. At the time of writing, WebDrive can be
purchased from South River Technologies (http://www.southrivertech.com). NetDrive ships with
Netware, is free of charge, and can be found by searching
the web for “netdrive.exe”. Though it is
freely available online, users are required to have a
Netware license. (If any of that sounds odd to you, you're
not alone. See this page on Novell's website: http://www.novell.com/coolsolutions/qna/999.html)
Mac OS X
Apple's OS X operating system has an integrated
filesystem-level WebDAV client. From the Finder, select the
Connect to Server item from the
Go menu. Enter a WebDAV URL, and it
appears as a disk on the desktop, just like any other
mounted volume. You can also mount a WebDAV share from the
Darwin terminal by using the webdav
filesystem type with the mount command:
$ mount -t webdav http://svn.example.com/repos/project /some/mountpoint
$
Note that if your mod_dav_svn is
older than version 1.2, OS X will refuse to mount the share
as read-write; it will appear as read-only. This is because
OS X insists on locking support for read-write shares, and
the ability to lock files first appeared in Subversion
1.2.
One more word of warning: OS X's WebDAV client can
sometimes be overly sensitive to HTTP redirects. If OS X is
unable to mount the repository at all, you may need to enable
the BrowserMatch directive in the Apache server's
httpd.conf:
Linux davfs2 is a filesystem module for the Linux kernel,
whose development is located at http://dav.sourceforge.net/. Once installed, a WebDAV
network share can be mounted with the usual Linux mount
command:
$ mount.davfs http://host/repos /mnt/dav
[63] WebDAV support was removed from Microsoft Access for
some reason, but exists in the rest of the Office
suite.