WebDAV
Web Distributed Authoring and Versioning is an extension of the Hypertext Transfer Protocol that allows clients to perform remote Web content authoring operations. WebDAV is defined in by a working group of the Internet Engineering Task Force.
The WebDAV1 protocol provides a framework for users to create, change and move documents on a server. The most important features of the WebDAV protocol include the maintenance of properties about an author or modification date, namespace management, collections, and overwrite protection. Maintenance of properties includes such things as the creation, removal, and querying of file information. Namespace management deals with the ability to copy and move web pages within a server's namespace. Collections deal with the creation, removal, and listing of various resources. Lastly, overwrite protection handles aspects related to locking of files.
Many modern operating systems provide built-in client-side support for WebDAV.
History
WebDAV began in 1996 when Jim Whitehead, a PhD graduate from UC Irvine, worked with the World Wide Web Consortium to host two meetings to discuss the problem of distributed authoring on the World Wide Web with interested people.Tim Berners-Lee's original vision of the Web involved a medium for both reading and writing. In fact, Berners-Lee's first web browser, called WorldWideWeb, could both view and edit web pages; but, as the Web grew, it became a read-only medium for most users. Whitehead and other like-minded people wanted to transcend that limitation.
The meetings resulted in the formation of an IETF working group, because the new effort would lead to extensions to HTTP, which the IETF had started to standardize.
As work began on the protocol, it became clear that handling both distributed authoring and versioning together would involve 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.
The WebDAV working group concluded its work in March 2007, after the Internet Engineering Steering Group accepted an incremental update to. Other extensions left unfinished at that time, such as the BIND method, have been finished by their individual authors, independent of the formal working group.
Implementation
WebDAV extends the set of standard HTTP verbs and headers allowed for request methods. The added verbs include:; COPY
; LOCK
; MKCOL
; MOVE
; PROPFIND
; PROPPATCH
; UNLOCK
Server support
- Apache HTTP Server provides WebDAV modules based on both davfs and Apache Subversion.
- Caddy has an optional WebDAV module
- lighttpd has an optional WebDAV module
- Mailfence offers WebDAV support through a virtual drive+ you can connect exterrnal drives to Mailfence Documents
- Microsoft's IIS has a WebDAV module.
- MyWorkDrive Server supports WebDAV for accessing files via IIS module.
- Nextcloud is a fork of ownCloud, and therefore also offers full WebDAV support and a third-party module
- Nginx has a very limited optional WebDAV module
- ownCloud is a cloud storage PHP application which offers full WebDAV support
- SabreDAV is a PHP application that can be used on Apache or Nginx in lieu of their bundled modules
Client support
- Git supports writing to HTTP remotes, although the "smart" Git protocol for HTTP requiring special server support was made the preferred protocol over WebDAV
- Linux via GVfs, including GNOME Files and via KIO, including Konqueror and Dolphin
- macOS, including native support for CalDAV and CardDAV, the design of which is based on WebDAV
- Microsoft Windows, including native support in Explorer
- Microsoft Office
Documents produced by the working group
- a requirements document: "Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web", issued February 1998
- a base protocol document : "HTTP Extensions for Web Distributed Authoring and Versioning ", issued June 2007
- the ordered collections protocol: "Web Distributed Authoring and Versioning Ordered Collections Protocol", issued December 2003
- the access control protocol: "Web Distributed Authoring and Versioning Access Control Protocol", issued May 2004
- a quota specification: "Quota and Size Properties for Distributed Authoring and Versioning Collections", issued February 2006
- a redirect specification: "Web Distributed Authoring and Versioning Redirect Reference Resources", issued March 2006
Other documents published through IETF
- the versioning protocol: "Versioning Extensions to WebDAV "
- a specification of WebDAV property datatypes: "Datatypes for Web Distributed Authoring and Versioning Properties"
- a document defining how to initiate mounting of a WebDAV resource: "Mounting Web Distributed Authoring and Versioning Servers"
- a calendar access protocol: "Calendaring Extensions to WebDAV "
- a query protocol: "Web Distributed Authoring and Versioning SEARCH"
- an extension to the WebDAV ACL specification: "WebDAV Current Principal Extension"
- an extension to the WebDAV MKCOL method: "Extended MKCOL for Web Distributed Authoring and Versioning "
- an extension of the collection model, defining creation and discovery of additional bindings to a resource: "Binding Extensions to Web Distributed Authoring and Versioning "
- an application of POST to WebDAV collections: "Using POST to Add Members to Web Distributed Authoring and Versioning Collections"
- an extension which allows synchronizing large collections efficiently: "Collection Synchronization for Web Distributed Authoring and Versioning "
Extensions and derivatives
For searching and locating, the DAV Searching and Locating 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. The WebDAV Search specification attempts to pick up where the working group left off, and was published as 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 MS Exchange interoperability, WebDAV can be used for reading/updating/deleting items in a mailbox or public folder. WebDAV for Exchange has been extended by Microsoft to accommodate working with messaging data. Exchange Server version 2000, 2003, and 2007 support WebDAV. However, WebDAV support has been discontinued in Exchange 2010 in favor of Exchange Web Services, a SOAP/XML based API.
Additional Windows-specific extensions
As part of the Windows Server Protocols documentation set, Microsoft published the following protocol documents detailing extensions to WebDAV:- : Web Distributed Authoring and Versioning Protocol: Microsoft Extensions. These extensions include a new verb and new headers, and properties that enable previously unmanageable file types and optimize protocol interactions for file system clients. These extensions introduce new functionality into WebDAV, optimize processing, and eliminate the need for special-case processing.
- : Web Distributed Authoring and Versioning Protocol: Client Extensions. The client extensions in this specification extend the WebDAV Protocol by introducing new headers that both enable the file types that are not currently manageable and optimize protocol interactions for file system clients. These extensions do not introduce new functionality into the WebDAV Protocol, but instead optimize processing and eliminate the need for special-case processing.
- : Web Distributed Authoring and Versioning Protocol: Server Extensions. The server extensions in this specification extend WebDAV by introducing new HTTP request and response headers that both enable the file types that are not currently manageable and optimize protocol interactions for file system clients. This specification also introduces a new WebDAV method that is used to send search queries to disparate search providers.
- : Web Distributed Authoring and Versioning Error Extensions Protocol Specification. This SharePoint Front-End Protocol describes extended error codes and extended error handling mechanism specified in to enable compliant servers to report error condition details on a server response.
Alternatives to WebDAV
- File Transfer Protocol, a simple network protocol based on IP, allows users to transfer files between network hosts. FTPS extends FTP for secure traffic.
- SSH File Transfer Protocol, an extension of the Secure Shell protocol version 2.0, provides secure file-transfer capability ; and scp, a form of SFTP that runs as a single command similar to a regular cp command in the shell.
- Rsync, a protocol and a command similar to scp, that can also skip rewriting identical files and portions of files, or skip newer files, etc.
- A distributed file system such as the Server Message Block protocol allows Microsoft Windows and open-source Samba clients to access and manage files and folders remotely on a suitable file server
- AtomPub, an HTTP-based protocol for creating and updating web resources, can be used for some of the use cases of WebDAV. It is based on standard HTTP verbs with standardized collection resources that behave somewhat like the WebDAV model of directories.
- CMIS, a standard consisting of a set of Web services for sharing information among disparate content repositories, seeks to ensure interoperability for people and applications using multiple content repositories; it has both SOAP- and AtomPub-based interfaces
- Wiki software, such as MediaWiki.
- Linked Data Platform, a Linked Data specification defining a set of integration patterns for building RESTful HTTP services that are capable of read-write of RDF data.
- Object storage such as OpenStack Swift or Amazon S3