WebDAV
From Wikipedia, the free encyclopedia
HTTP |
Persistence · Compression · SSL |
Headers |
ETag · Cookie · Referrer |
Status codes |
301 Moved permanently |
302 Found |
303 See Other |
403 Forbidden |
404 Not Found |
Web-based Distributed Authoring and Versioning, or WebDAV, is a set of extensions to the Hypertext Transfer Protocol (HTTP) that allows users to collaboratively edit and manage files on remote World Wide Web servers. The group of developers responsible for these extensions was also known by the same name and was a working group of the Internet Engineering Task Force (IETF).
The WebDAV protocol allows "Intercreativity," making the Web a readable and writable medium, in line with Tim Berners-Lee's original vision.[1] It allows users to create, change and move documents on a remote server (typically a web server or "web share"). This is useful for authoring the documents that a web server serves, but it can also be used for storing files on the web, so that the files can be accessed from anywhere. The most important features of the WebDAV protocol are: locking ("overwrite prevention"); properties (creation, removal, and querying of information about author, modified date, etc.); name space management (ability to copy and move Web pages within a server's namespace); and collections (creation, removal, and listing of resources). Most modern operating systems provide built-in support for WebDAV[citation needed]. With a fast network and the right client, it is almost as easy to use files on a WebDAV server as those stored in local directories.
The WebDAV working group concluded its work in March 2007, after an incremental update to RFC 2518 was accepted by the Internet Engineering Steering Group (IESG). Other extensions that were unfinished at that time, such as the BIND method, will be finished by their individual authors, independent of the formal working group.
Contents |
[edit] History
WebDAV began in 1996 when Jim Whitehead worked with the World Wide Web Consortium (W3C) to host two meetings to discuss the problem of distributed authoring on the World Wide Web with interested people.[2][3] The original vision of the Web as expounded by Tim Berners-Lee was a both readable and writable medium. In fact Berners-Lee's first web browser, called WorldWideWeb, was able to both view and edit web pages; but, as the Web grew, it became, for most users, a read-only medium. Whitehead and other like-minded people wanted to fix that limitation.[4]
At the W3C meeting, it was decided that the best way to proceed was to form an IETF working group, because the new effort would lead to extensions to HTTP, which was being standardized at the IETF.
As work began on the protocol, it became clear that handling both distributed authoring and versioning was too much work and that the tasks would have to be separated. The WebDAV group focused on distributed authoring, and left versioning for the future. Versioning was added later by the Delta-V extension — see the Extensions section below.
The protocol consists of a set of new methods and headers for use in HTTP and is almost certainly the first protocol ever to use XML[citation needed]. The added methods include:
- PROPFIND — Used to retrieve properties, stored as XML, from a resource. It is also overloaded to allow one to retrieve the collection structure (a.k.a. directory hierarchy) of a remote system.
- PROPPATCH — Used to change and delete multiple properties on a resource in a single atomic act.
- MKCOL — Used to create collections (a.k.a. directory).
- COPY — Used to copy a resource from one URI to another.
- MOVE — Used to move a resource from one URI to another.
- LOCK — Used to put a lock on a resource. WebDAV supports both shared and exclusive locks.
- UNLOCK — To remove a lock from a resource.
[edit] Implementations
[edit] Microsoft Windows
Microsoft introduced WebDAV client support in Microsoft Windows 98 with a feature called "Web folders". This client was simply an extension to Windows Explorer (the desktop/file manager) and was later included in Windows 2000. In Windows XP, Microsoft changed the client to the "WebDAV mini-redirector". This newer client works at the file-system level, allowing WebDAV shares to be assigned to a drive letter and used by any software. However, most versions of the redirector have serious bugs.[5] It has been known to try to convert HTTP URLs to UNC paths e.g. http://host/path/ is erroneously converted to \\host\path\. Furthermore, it often incorrectly uses Windows Domain authentication when answering HTTP basic-auth challenges. Some workarounds are:
- To work around the first problem explicitly specify a port number in the URL e.g. http://host:80/path/
- Use a fully qualified domain name: NET USE Z: http://drive.example.org/drive
- Specify the user in the URL http://user@host.tld/path/. This reportedly forces the use of the old "Web folders" client.[6] In addition, WebDAV over HTTPS works only if KB892211-version files or newer are installed on the computer. Otherwise Windows displays "The folder you entered does not appear to be valid. Please choose another" when adding a network resource.
In Windows Vista, only the WebDAV redirector is present; the original "Web folders" client has been removed. The "Web folders" client is only present if the Microsoft Update for Web Folders is installed. This will only work on the 32bit version of Vista.[7]
[edit] Mac OS X
WebDAV shares have been supported natively as a type of filesystem since Mac OS X version 10.0. The system can mount WebDAV-enabled server directories to the filesystem using the traditional BSD mounting mechanism. Mac OS X version 10.1.1 introduced support for HTTP Digest Access authentication. Mac OS X 10.4 (Tiger) extended WebDAV interoperability to include support for the https scheme, proxies, and additional methods of authentication.[8]
The Finder presents a WebDAV share as an external disk, allowing users to interact with WebDAV just like they would any other filesystem. Apple's iDisk uses WebDAV for file access.[9]
[edit] Linux
WebDAV shares can be mounted in Linux using davfs2 or fusedav which mount them as coda or FUSE filesystems. Konqueror[10] and Nautilus[11] have WebDAV support built in. A WebDAV command line client for Unix with an FTP-like command set called Cadaver[12] is included in many Linux distributions.
[edit] Current alternatives to WebDAV
Most of the work was put into developing the WebDAV specifications and recommendations in the late 1990s and since that time many other approaches to solving the same and similar problems have developed. WebDAV is an approach to what would now be called 'content management'.
Many content management systems now exist (CMS), with either proprietary or open on-line APIs that provide similar functionality to WebDAV.
Remote content can still be managed by the traditional methods based on FTP and its derivatives.[13] Versioning and file-locking is also available as part of most revision control systems such as CVS and Subversion (SVN) (which happens to use WebDAV as one of its transports).
The SMB protocol allows Microsoft Windows and open-source Samba clients to access and manage files and folders remotely on a suitable file server. More recently, Microsoft introduced and developed a range of SharePoint server products that also allow remote authors to manage lists and folders of remote, shared files.
The HTTP, web service APIs of CMS, Wiki, blog, revision control and other modern, remote, collaborative authoring and versioning systems may be based on XML SOAP, which uses the HTTP 'POST' and 'GET' verbs almost exclusively. Alternatively, they may use RESTful techniques, so that in addition to 'GET' and 'POST', other HTTP verbs such as 'PUT' and 'DELETE' also get used meaningfully, in ways that are comparable to WebDAV. Note that WebDAV also specifies more specialised verbs such as 'COPY', 'MOVE', 'LOCK' etc., as described above.
[edit] Documents produced by the working group
The WebDAV working group produced several works:
- a requirements document: "Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web" RFC 2291, issued February 1998,
- a base protocol document (excluding versioning, despite its title): "HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)" RFC 4918, issued June 2007 (which updates and supersedes "HTTP Extensions for Distributed Authoring — WebDAV" RFC 2518, issued February 1999),
- the ordered collections protocol: "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol" RFC 3648, issued December 2003,
- the access control protocol: "Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol" RFC 3744, issued May 2004,
- a quota specification: "Quota and Size Properties for Distributed Authoring and Versioning (DAV) Collections" RFC 4331, issued February 2006,
- a redirect specification: "Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources" RFC 4437, issued March 2006.
[edit] Other documents published through IETF
- the versioning protocol: "Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)" RFC 3253 (created by the Delta-V working group),
- a specification of WebDAV property datatypes: "Datatypes for Web Distributed Authoring and Versioning (WebDAV) Properties" RFC 4316,
- a document defining how to initiate mounting of a WebDAV resource: "Mounting Web Distributed Authoring and Versioning (WebDAV) Servers" RFC 4709, and
- a calendar access protocol: "Calendaring Extensions to WebDAV (CalDAV)" RFC 4791, and
- a query protocol: "Web Distributed Authoring and Versioning (WebDAV) SEARCH" RFC 5323, and
- an extension to the WebDAV ACL specification: "WebDAV Current Principal Extension" RFC 5397.
[edit] Extensions and derivatives
- For versioning, the Delta-V protocol under the Web Versioning and Configuration Management working group adds resource revision tracking, published in RFC 3253.
- For searching and locating, the DAV Searching and Locating (DASL) working group never produced any official standard although there are a number of implementations of its last draft (work continued as non-working-group activity, see DASL). However another, WebDav SEARCH attempts to pick up where it left off, and was published as RFC 5323 in November 2008.
- For calendaring, CalDAV is a protocol allowing calendar access via WebDAV. CalDAV models calendar events as HTTP resources in iCalendar format, and models calendars containing events as WebDAV collections.
- For groupware, GroupDAV is a variant of WebDAV which allows client/server groupware systems to store and fetch objects such as calendar items and address book entries instead of web pages.
- For Exchange interoperability, WebDAV can be used for reading/updating/deleting items in a mailbox or public folder. WebDAV for Exchange has been extended to accommodate working with messaging data. Exchange Server version 2000, 2003 and 2007 support WebDAV. Here is a training paper on WebDAV for Exchange (it also covers WebDAV usage overall and includes samples), WebDAV 101 Training. This blog covers WebDAV development WebDAV 101.
[edit] See also
[edit] External links
[edit] References
- ^ "Realising the Full Potential of the Web". http://www.w3.org/1998/02/Potential.html.
- ^ "Proposed agenda for San Mateo Meeting". 1996. http://lists.w3.org/Archives/Public/w3c-dist-auth/1996AprJun/0002.html.
- ^ "Brief mtg. summary". 1996. http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0095.html.
- ^ "Re: Updated agenda". http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0001.html.
- ^ WebDAV Mini-Redirector (MRXDAV.SYS) Versions and Issues List
- ^ WebDAV client interoperability
- ^ Windows Vista Client Setup Instructions
- ^ Mac OS X Man Page for mount_webdav(8)
- ^ Overview of Mac OS X File Systems
- ^ http://manual.intl.indoglobal.com/apbs02.html
- ^ http://www.webdavsystem.com/server/access/gnome_nautilus
- ^ http://www.webdav.org/cadaver/
- ^ WebDAV based Open Source Collaborative Development Environment