Web-based Distributed Authoring and Versioning (WebDAV)

April 18, 1999

Sami Itkonen
Department of Technical Physics
Helsinki University of Technology

Abstract

WebDAV is a set of extensions to HTTP/1.1 that allows clients to perform remove web authoring operations [3]. Of these extensions overwrite protection by locking, name-space management and properties (metadata) are fully implemented. Other proposed extensions include version management, advanced collections and access control with HTTP Digest Authentication. XML is used to encode method parameters and responses.

Table of Contents

1 Introduction

2 Evolution of HTTP and Remote Authoring

3 WebDAV Overview

4 WebDAV Status

5 The Future

6 Conclusion

References

Additional Information


1 Introduction

Although Tim Berners-Lee developed the first prototype browser with read/write capabilities in 1990, most early Web browsers were read-only [15]. This disparity was further emphasized by the enormous success of the world wide web. The HTTP protocol had a method for transferring data from the client to the server, but there existed no unified way for a server to handle the data - the required authentication, locking and version management procedures were implemented differently on each server and site. Because of this, distributed authoring on the Web has remained in its infancy. WebDAV is an ambitious effort to create a standard for collaborative authoring that includes locks and authentication.

2 Evolution of HTTP and Remote Authoring

2.1 HTTP/0.9

The first implementation of HTTP is now known as HTTP/0.9 [7]. This very simple protocol envisioned by Tim Berners-Lee included only one method: GET. A client would send the line
GET document.html CRLF
to the server to fetch the required document. There was no method for the client to submit information to the server.

2.2 HTTP/1.0

HTTP/1.0 developed from the need to exchange more than simple text information. It became a way to build a distributed hypermedia information system adapted to many needs and purposes. From 1994 to 1997, the Web developed from a forum in which computer science departments could showcase their research into a center where everyone has a Web page. [7]

Although no formal RFC existed for HTTP until 1996, the protocol evolved based on what the servers and clients did. HTTP/1.0 included many enhancements over the older version of protocol; the server could now send additional meta-information to the client in preceding headers and the client was allowed to perform multi-line requests. Like other text-based internet protocols (SMTP, FTP, NNTP etc), the HTTP server could also respond to a client's request with a status code.

Along with GET, a new method was devised that would allow the transfer of arbitrary data from the client to the server: POST. With the support for forms in Web browsers, real interactivity was now possible for the users.

2.3 HTTP/1.1

While HTTP/1.1 was approved as a standard in January 1997, there are few, if any, products that implement it fully. In addition to some new features like server-side cache control, digest authentication, persistent connections and content negotiation, several new methods were defined. Of these methods, PUT and DELETE are the most relevant in concern to remote authoring. These methods, like their counterparts in the FTP protocol, store and remove resources on the server.

The difference between POST and PUT is that the URI in POST method request identifies the resource that will handle the data (typically a CGI script or equivalent), while the functionality of PUT is opposite to that of GET: it identifies the resource where the data must be stored to. For example, the request

PUT /files/document.html HTTP/1.1
< .. headers .. > CRLF
< .. message .. > CRLF
will store the enclosed data that is supplied after the method under the URI /files/document.html. This difference in crucial to the operation of remote Web publishing tools. [1,7]

3 WebDAV Overview

3.1 Background

While the new methods of HTTP/1.1 - PUT and DELETE - were necessary to accomplish this, they were by no means sufficient. Remote authoring tools that can exploit the HTTP protocol to publish documents have existed for several years. Since there was no standard for remote publishing, each tool either had to extend the HTTP protocol in its incompatible way or give up on distributed authoring [12,15].

The stated goal of the WebDAV working group was (from the charter) to "define the HTTP extensions necessary to enable distributed web authoring tools to be broadly interoperable, while supporting user needs", and in this respect DAV is completing the original vision of the Web as a writeable, collaborative medium [13].

3.2 Features

A number of features have been defined for WebDAV. The first three have been fully specified.

3.2.1 Properties

It should be possible to create, modify and delete arbitrary properties delete arbitrary properties (metadata) on resources of any media type [12]. Properties are defined as name - value pairs, where the name is the URL and the value is a sequence of well-formed XML-encoded data. Because of the extensibility of XML, properties can be added and deleted flexibly.

3.2.2 Locking

To prevent the so-called "lost update problem" when a document has multiple authors, WebDAV provides an exclusive write lock, so that so that only person at a time can modify a resource. Shared write locks are also supported, because experience has shown exclusive locks to be inflexible.

Since no read lock has traditionally been required to read a Web page, a write lock is the only type of lock specified. The specification does not rule out the creation of locks of other types later, though. To maintain backwards compatibility with traditional HTTP clients, a WebDAV-compliant server is not required to support locking. [5,15]

The duration of a lock is independent of any individual network connection [13]. It is also possible to lock multiple resources at the same time and to lock a resource without actually retrieving it [12].

3.2.3 Name-space Management and Collections

A collection is defined as a resource that can contain other resources. An appropriate analogy in the case of a normal file system would be directories and files, which makes sense especially in Web servers that map file systems into URLs. Collections can be listed and removed, and it is possible to add and remove resources from them. It is also possible to rename, copy and delete resources in the name-space of the server - not unlike in a traditional file system.

3.2.4 Versioning and Configuration Management

The versioning draft includes support for both basic versioning for WebDAV-compliant clients and automatic versioning for clients that can only understand basic HTTP/1.1. Operations found in traditional versioning systems (RCS, SCCS, CVS) - like file check-in and check-out and parallel development through file branching - are defined. Configuration management layer, which is built on top of the versioning layer, provides support for workspaces and versioned collections. [8,12,13]

3.2.5 Access Control

WebDAV access control provide support for fine-grained support for adding and removing people for the access control list of resources. Some access control rights are predefined; these include rights to read, write and delete to and from resources. Other rights can be defined depending on the type of the resource. Authentication is handled with HTTP Digest Authentication, which is a cryptographic authentication scheme that uses a digest checksum (typically MD5) computed from several variables. A WebDAV-compliant client is expected to support this scheme. [4,9,15]

3.2.6 Advanced Collections

Advanced collections add support for referential members and ordered collections, where the server maintains a single persistent ordering of the URLs in a collection [13]. Referential resources act like symbolic links in a file system, allowing the resource to be reused in multiple collections [15].

3.2.7 DAV Searching and Locating

The DAV Searching and Locationg (DASL) extension is an application of HTTP/1.1 forming a lightweight search protocol to transport queries and result sets and allows clients to make use of server-side search facilities [10]. DASL defines a new method, SEARCH, to perform the search. The value of properties is increased as DASL provides an efficient an convenient method for searching resources based on their properties.

3.3 New Methods

Method Description
LOCK This method locks a resource. Using this method does guarantee that no-one except the holder of the lock will be able to modify the resource, as the specification does not require a WebDAV compliant server to use mandatory locks. If used on collections, a Depth header may be used to recursively lock all the members in the collection.
UNLOCK Unlock a resource. Any WebDAV compliant server which implements the LOCK is required to support UNLOCK too. All general notes for LOCK apply to UNLOCK as well.
PROPFIND Retrieve the properties of the resource as identifed in the request. A recursive listing is also possible if the resource is a collection itself.
PROPPATCH Modifies the properties of the resource as identifed in the request. As the name suggests, this method does not replace all the properties, but it "patches" the properties by setting/removing individual property elements.
COPY This method duplicates the source resource identified in the request to the destination as specified by the Destination header. No guarantee is made that the resource or properties can be copied identically; the server will make a "best effort".

If COPY is applied to collections, a Depth header with value "infinite " is assumed to be present and so the copy operation will be recursive.

MOVE This method consist of atomically processed operation a logical equivalent of COPY followed by a consistensy check and the removal of the source. All general notes for COPY apply to MOVE as well.
MKCOL MKCOL creates a collection. No recursive operation is supported by this method, that is, the parent collection of the new collection to be created must already exist.
Refinements for methods defined by HTTP/1.1
PUT As defined in HTTP/1.1 the PUT method will replace the resource if it already exists. The method is not defined for the creation of collections; MKCOL is recommended to be used instead.
GET and HEAD The semantics of GET are unchanged when applied to a collection, since GET is defined as, "retrieve whatever information (in the form of an entity) is identified by the Request-URI" [3,5]. For this reason, the actual operation that happens in this case is undefined. Likewise HEAD in not affected since it is defined as GET without a message body.
POST As the operation performed by POST depends on the server, no meaningful behavior can be defined for this method either when applied to collections.
DELETE If DELETE is applied for collections, a Depth header with value "infinite " is assumed to be present and so the delete operation will be recursive.

4 WebDAV Status

4.1 Standards

The properties, name-space management and locking extensions have been fully specified in the IETF-approved WebDAV RFC [5]. Versioning extensions [8], access control lists [9], DAV searching and locating [10] and advanced collections [11] are in the state of drafts and they are expected to be completed by the end of 1999. Additional drafts are also in the works [16].

4.2 Software

4.2.1 Clients

There a number of web authoring tools that support distributed authoring, either by proprietary server extensions or by using the PUT method described in HTTP/1.1. These include Microsoft Frontpage, AOLPress and Netscape Communicator. Few products are WebDAV-compliant yet, clients that support WebDAV now or in the future include Microsoft Internet Explorer 5, NetObjects Fusion and Microsoft Office 2000. A number of Open Source solutions also exist. [2,15,16]

4.2.2 Web Servers

Zope is an Open Source Web server which supports WebDAV Class 1 as defined in the specification. The coming version Microsoft Internet Information Server 5 will also support WebDAV. [2,16]

Apache, the most popular Web server, does not fully support HTTP/1.1 and contains no support for WebDAV. Two modules exist that can add distributed authoring support to Apache: mod_put and mod_dav. The former only implements PUT and DELETE, so that HTTP/1.1-aware Web clients can be used for authoring, while the latter is aimed to provide full WebDAV compliance for Apache. [1,14]

5 The Future

5.1 Advantages

The biggest advantages of WebDAV come from the fact that the protocol is based on HTTP that already has widely deployed infrastructure. It means that any application built on top of WebDAV can use cryptographically strong authentication, proxying, caching and encryption with SSL, if so desired. The protocol has been developed in co-operation with the major vendors of web publishing tools, which promises a good level of compatibility with existing products. [4,13]

Another advantage is that WebDAV uses XML, which means that the protocol itself can be extended without fragmenting it (like it happened to HTML). Part of their success of the Web is because the underlying protocols, HTML and HTTP, are simple and yet powerful - and they are based on text, which made them easier to adopt.

5.2 Disadvantages

The number of drafts and specifications for WebDAV suggests that it is not a simple protocol. Instead of using one method for one function, WebDAV essentially re-invented the HTTP request/response format in XML so it could glue a bunch of requests together [6]. Because of this the protocol is complex and bloated, and middleware and application-level support is also required.

5.3 Replacement for Older Technologies ?

5.3.1 FTP

The one advantage that FTP has - file upload - will be taken away by WebDAV. On the other hand, given the infrastructure FTP already has, it is not going to go away anytime soon. Should WebDAV replace FTP, it is expected that existing FTP clients would support both old FTP and newer WebDAV-based file transfer. Of course, the clients that most benefit from WebDAV are the new ones that can take full advantage of the features of HTTP.

5.3.2 CVS and Other Versioning Systems

Given the current status of versioning extension draft, it is unlikely that the capabilities of WebDAV can match those of CVS anytime soon. It is more likely that CVS and other existing versioning and configuration management systems will integrate WebDAV support in them in some form, which would allow applications to reap the benefits of HTTP/1.1 while retaining the old interface.

5.3.3 NFS and Samba

As the WebDAV collection hierarchy and methods have largely been modelled after file systems, it is not surprising to think that it could used for a networked file system. The header and XML overhead of the requests and responses would probably make a deployment of WebDAV as a direct replacement for the above technologies unworthwhile.

5.4 An Integrated Solution ?

WebDAV offers an integrated solution to replace all the older technologies. This may of may not be preferable depending on the situation. In the hardware arena there are examples of both integrated and dedicated approaches - PC motherboards in the other end and dedicated routers and web servers in the other. Current servers aim to provide full support for WebDAV including all the usual bells and whistles, but it is also be possible to create a minimalistic server that, for example, only provides a FTP-like file transfer service (with all the usual HTTP/1.1 benefits, of course).

6 Conclusion

The Web has mainly been a read-only medium, with the primary methods for publishing being editing the files in place or transferring them to the server via FTP. WebDAV will to change that picture and make distributed publishing an integral part of any authoring tool. As for beyond simple web page publishing, WebDAV can create a base for distributed engineering and simplify collaborating in different projects. [13,15]

Whether WebDAV will have an obsoleting impact on the currently dominating technologies like FTP and CVS (like it had on gopher, for example) or if it's just another case of reinventing the wheel remains to be seen. The usual dogma applied for situations like this is "don't fix it if it isn't broken" - WebDAV shouldn't be used if the old technology already works well. However, as there is lot to gain from WebDAV, it will certainly be the main focus of new developments related any kind of distributed computing.

References

[1] Anon, Apache Week, Publishing Pages with PUT, April 4 1997 [referred April 18, 1999]
< http://www.apacheweek.com/features/put >
[2] Best, Michael, WebDAV Projects, April 12, 1999 [referred April 18, 1999]
< http://www.webdav.org/projects/ >
[3] Fielding, et al, RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1, January 1997 [referred April 18, 1999]
< ftp://ftp.funet.fi/pub/standards/RFC/rfc2068.txt >
[4] Franks, et al, RFC 2069: An Extension to HTTP : Digest Access Authentication, January 1997 [referred April 18, 1999]
< ftp://ftp.funet.fi/pub/standards/RFC/rfc2069.txt >
[5] Goland, et al, RFC 2518: HTTP Extensions for Distributed Authoring -- WEBDAV, February 1999 [referred April 18, 1999]
< ftp://ftp.funet.fi/pub/standards/RFC/rfc2518.txt >
[6] Goland, HTTP Design Issues, lessons from WebDAV's Property and Depth head er experiences, December 24, 1998 [referred April 18, 1999]
< http://lists.w3.org/Archives/Public/w3c-dist-auth/1998OctDec/0303.html >
[7] Hethmon, Paul S, Illustrated Guide to HTTP: Chapter 2, 1997 [referred April 18, 1999]
< http://www.manning.com/Hethmon/Chapter2.html >
[8] Kaler, et al, IETF Draft: Versioning Extensions to WebDAV, January 20, 1999 [referred April 18, 1999]
< http://www.ics.uci.edu/pub/ietf/webdav/versioning/draft-ietf-webdav-versioning-01.txt >
[9] Leach, Goland, IETF Draft: WebDAV ACL Protocol, November 10, 1997 [referred April 18, 1999]
< http://www.ics.uci.edu/pub/ietf/webdav/acl/draft-ietf-webdav-acl-00.txt >
[10] Reddy, et al, IETF Draft: DAV Searching & Locating, November 18, 1998 [referred April 18, 1999]
< http://www.ietf.org/internet-drafts/draft-reddy-dasl-protocol-04.txt >
[11] Slein et al, IETF Draft: WebDAV Advanced Collections Protocol, February 26, 1999 [referred April 18, 1999]
< http://www.ics.uci.edu/pub/ietf/webdav/collection/draft-ietf-webdav-collection-protocol-03.txt >
[12] Slein, et al, RFC 2291:Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web, February 1998 [referred April 18, 1999]
< ftp://ftp.funet.fi/pub/standards/RFC/rfc2291.txt >
[13] Stein, Greg, DAV Frequently Asked Questions, February 23, 1999 [referred April 18, 1999]
< http://www.webdav.org/other/faq.html >
[14] Stein, Greg, mod_dav: a DAV module for Apache, April 7, 1999 [referred April 18, 1999]
< http://www.webdav.org/mod_dav/ >
[15] Whitehead, Jim and Higgins, Meredith, WEBDAV: IETF Standard for Collaborative Authoring on the Web, September/October, 1998 issue of IEEE Internet Computing, pages 34-40 [referred April 18, 1999]
< http://www.ics.uci.edu/pub/ietf/webdav/intro/webdav_intro.pdf >
[16] Whitehead, Jim, IETF WEBDAV Working Group, April 7, 1999 [referred April 18, 1999]
< http://www.ics.uci.edu/pub/ietf/webdav/ >

Additional Information

The WebDAV Book of Why
A number of mailing list messages explaining the design principles behind WebDAV from the primary designer of WebDAV
WebDAV Papers
A number of WebDAV white papers
WebDAV Resources
WebDAV resource index
IETF press release
A press release by IETF announcing the approval of the WebDAV standard
Zope builds on its success
An article about the Zope server supporting WebDAV
Collaborative Authoring on the Web: Introducing WebDAV
An introductory article about WebDAV
DAV and CVS
Some consideration about mixing DAV and CVS
XML FAQ
Frequently Asked Questions about the Extensible Markup Language
The SGML/XML Web Page
An extensive list of XML resources

Valid HTML © 1999 Sami Itkonen <si@iki.fi>
Last Updated: Apr 19 1999