WebDAV
Communication protocol | |
OSI layer | Application |
---|---|
Port(s) | 80, 443 |
RFC(s) | RFC2518,RFC4918 |
Website | www |
WebDAV(Web Distributed Authoring and Versioning) is a set of extensions to theHypertext Transfer Protocol(HTTP), which allowsuser agentsto collaboratively author contentsdirectlyin anHTTP web serverby providing facilities forconcurrency controlandnamespace operations,thus allowingWebto be viewed as awriteable, collaborative mediumand not just a read-only medium.[1]WebDAV is defined inRFC4918by aworking groupof theInternet Engineering Task Force(IETF).[2]
The WebDAV protocol provides a framework for users to create, change and move documents on aserver.The most important features include the maintenance of properties about an author or modification date,namespacemanagement, 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 the locking of files. It takes advantage of existing technologies such asTransport Layer Security,digest access authenticationorXMLto satisfy those requirements.[3]
Many modernoperating systemsprovide built-inclient-sidesupport for WebDAV.
History
[edit]WebDAV began in 1996 whenJim Whiteheadworked with theWorld Wide Web Consortium(W3C) to host two meetings to discuss the problem ofdistributed authoringon theWorld Wide Webwith interested people.[4][5]Tim Berners-Lee's original vision of the Web involved amediumfor both reading and writing. In fact, Berners-Lee's firstweb browser,calledWorldWideWeb,could both view and editweb 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.[6][7]
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 andversioningtogether 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. (TheDelta-V extensionadded versioning later – see the Extensions section below.)
The WebDAVworking groupconcluded its work in March 2007, after theInternet Engineering Steering Group(IESG) accepted an incremental update toRFC2518.Other extensions left unfinished at that time, such as theBIND method,have been finished by their individual authors, independent of the formal working group.[8]
Implementation
[edit]WebDAV extends the set of standard HTTP verbs and headers allowed forrequest methods.The added verbs include:
Verb | Action |
---|---|
COPY | copy a resource from oneuniform resource identifier(URI) to another |
LOCK | put alockon a resource. WebDAV supports both shared and exclusive locks. |
MKCOL | create collections (also known as adirectory) |
MOVE | move a resource from one URI to another |
PROPFIND | retrieve properties, stored asXML,from aweb resource.It is alsooverloadedto allow one to retrieve the collection structure (also known as directory hierarchy) of a remote system. |
PROPPATCH | change and delete multiple properties on a resource in a singleatomic act |
UNLOCK | remove a lock from a resource |
Properties
[edit]The properties of WebDAV protocol arename–value pair,in which a "name" is aUniform Resource Identifier(URI) and the "values" are expressed through XML elements. Furthermore, themethodsto handle the properties arePROPFINDandPROPPATCH.[9]
Documents produced by the working group
[edit]The WebDAV working group produced several works:
- a requirements document: "Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web"RFC2291,issued February 1998
- a base protocol document (excluding versioning, despite its title): "HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)"RFC4918,issued June 2007 (which updates and supersedes "HTTP Extensions for Distributed Authoring – WebDAV"RFC2518,issued February 1999)
- the ordered collections protocol: "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol"RFC3648,issued December 2003
- the access control protocol: "Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol"RFC3744,issued May 2004
- a quota specification: "Quota and Size Properties for Distributed Authoring and Versioning (DAV) Collections"RFC4331,issued February 2006
- a redirect specification: "Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources"RFC4437,issued March 2006
Other documents published through IETF
[edit]- the versioning protocol: "Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)"RFC3253(created by the Delta-V working group)
- a specification of WebDAV property datatypes: "Datatypes for Web Distributed Authoring and Versioning (WebDAV) Properties"RFC4316
- a document defining how to initiate mounting of a WebDAV resource: "Mounting Web Distributed Authoring and Versioning (WebDAV) Servers"RFC4709
- a calendar access protocol: "Calendaring Extensions to WebDAV (CalDAV) "RFC4791
- a query protocol: "Web Distributed Authoring and Versioning (WebDAV) SEARCH"RFC5323
- an extension to the WebDAV ACL specification: "WebDAV Current Principal Extension"RFC5397
- an extension to the WebDAV MKCOL method: "Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)"RFC5689
- an extension of the collection model, defining creation and discovery of additional bindings to a resource: "Binding Extensions to Web Distributed Authoring and Versioning (WebDAV)"RFC5842
- an application of POST to WebDAV collections: "Using POST to Add Members to Web Distributed Authoring and Versioning (WebDAV) Collections"RFC5995
- an extension which allows synchronizing large collections efficiently: "Collection Synchronization for Web Distributed Authoring and Versioning (WebDAV)"RFC6578
Extensions and derivatives
[edit]For versioning, the Delta-V protocol under the Web Versioning and Configuration Management working group adds resource revision tracking, published inRFC3253.
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.[10]The WebDAV Search specification attempts to pick up where the working group left off, and was published asRFC5323in November 2008.[11]
For calendaring,CalDAVis a protocol allowing calendar access via WebDAV. CalDAV models calendar events as HTTP resources iniCalendarformat, and models calendars containing events as WebDAV collections.
For groupware, GroupDAV is a variant of WebDAV which allows client/servergroupwaresystems 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[12]in favor of Exchange Web Services (EWS), aSOAP/XMLbasedAPI.
Additional Windows-specific extensions
[edit]As part of the Windows Server Protocols (WSPP) documentation set,[13]Microsoft published the following protocol documents detailing extensions to WebDAV:
- [MS-WDVME]: Web Distributed Authoring and Versioning (WebDAV) Protocol: Microsoft Extensions.[14]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.
- [MS-WDV]: Web Distributed Authoring and Versioning (WebDAV) Protocol: Client Extensions.[15]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.
- [MS-WDVSE]: Web Distributed Authoring and Versioning (WebDAV) Protocol: Server Extensions.[16]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.
- [MS-WEBDAVE]: Web Distributed Authoring and Versioning Error Extensions Protocol Specification.[17]This SharePoint Front-End Protocol describes extended error codes and extended error handling mechanism specified in [MS-WDV] to enable compliant servers to report error condition details on a server response.
WebDAV clients
[edit]Client | Creator | Operating system support | License | Interface |
---|---|---|---|---|
Cyberduck | David V. Kocher | Windows,macOS | GPL | GUI |
davfs2 | GNOME team | FUSE | GPL | VFS |
davix | CERN | Windows, Linux,macOS | LGPL | CLI |
EasySync | Samuel CHEMLA | Android | MIT | service |
GVfs | GNOME team | GNOME | GPL | VFS |
KIO | KDE team | KDE | GPL | VFS |
Konqueror | KDE team | KDE | GPL | GUI |
GNOME Files | GNOME team | GNOME | GPL | GUI |
SmartFTP | SmartSoft Ltd | Windows | Proprietary | GUI |
WebDrive | South River Technologies | Windows,macOS,iOS, Android | Proprietary | VFS |
WinSCP | Martin Přikryl | Windows | GPL | CLIandGUI |
WebClient (Deprecated)[18] | Microsoft | Windows | Same as Windows | service |
WebDAV libraries
[edit]Libraries | Creator | Operating system or platform | License | Language |
---|---|---|---|---|
Apache Wink | Apache Software foundation | JVM | Java | |
Apache Tomcat | Apache Software foundation | JVM | Java | |
Apache Jackrabbit | Apache Software foundation | JVM | ASF | Java |
sabre/dav | fruux | Windows, Linux, macOS | New BSD | PHP |
Alternatives to WebDAV
[edit]- File Transfer Protocol(FTP), a simple and widely adopted network protocol based onIP,allows users to transfer files between network hosts.FTPSextends FTP for secure traffic.
- SSH File Transfer Protocol(SFTP), an extension of the Secure Shell protocol (SSH) 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 (copy) 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.
- Adistributed file systemsuch as theServer Message Block(SMB) protocol allowsMicrosoft Windowsand open-sourceSambaclients to access and manage files and folders remotely on a suitablefile server.Commonly used for multimedia streaming overEthernetand widely supported bySmart TVs.[19]
- 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 bothSOAP- and AtomPub-based interfaces
- Wiki software,such asMediaWiki.
- Linked Data Platform(LDP), 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 storagesuch asOpenStack SwiftorAmazon S3
See also
[edit]- CalDAV
- CardDAV
- GroupDAV
- Content management
- Comparison of WebDAV software
- Distributed file system
- Filing OSID
- ICE
- Data portability
References
[edit]- ^Whitehead & Goland 1999,p. 293.
- ^Whitehead 1998,p. 34.
- ^Whitehead & Goland 1999,p. 294.
- ^"Proposed agenda for San Mateo Meeting".1996.
- ^"Brief mtg. summary".1996.
- ^"Re: Updated agenda".
- ^Whitehead 1998,p. 40.
- ^Whitehead 1998,p. 39-40.
- ^Whitehead & Goland 1999,p. 299.
- ^DASLArchived2004-06-03 at theWayback Machine
- ^WebDav SEARCH
- ^Discontinued Features: Exchange 2010 SP1 HelpMicrosoft TechNet
- ^"WSPP – Windows Server Protocols documentation".2011.
- ^"MS-WDVME – Web Distributed Authoring and Versioning (WebDAV) Protocol: Microsoft Extensions".2014.
- ^"MS-WDV – Web Distributed Authoring and Versioning (WebDAV) Protocol: Client Extensions".2011.
- ^"MS-WDVSE – Web Distributed Authoring and Versioning (WebDAV) Protocol: Server Extensions".2011.
- ^"MS-WEBDAVE – Web Distributed Authoring and Versioning Error Extensions Protocol Specification".2011.
- ^"Deprecated features for Windows client".What's new in Windows.Microsoft.Retrieved4 November2023– via Microsoft Learn.
- ^Rau, Thomas (19 October 2017)."Filme, Musik & Bilder im Heimnetzwerk streamen".PC-WELT(in German).Retrieved5 November2020.
- Whitehead, E. James; Goland, Yaron Y. (1999). "WebDAV".Ecscw' 99.Neatherlands:Springer Science+Business Media.pp. 291–310.doi:10.1007/978-94-011-4441-4_16.ISBN978-94-011-4441-4.
- Whitehead, E.J (1998)."WebDAV: IEFT standard for collaborative authoring on the Web".IEEE Internet Computing.2(5): 34–40.doi:10.1109/4236.722228.ISSN1941-0131.Retrieved12 October2021.
External links
[edit]- Official WebDAV site
- Awesome WebDAVA curated list of awesome apps that support WebDAV and tools related to it.
- Davfs2 project
- Fusedav project
- WebDAV Apache modules