Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
WebDAV
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|HTTP Extension for collaborative editing}} {{Multiple issues| {{Primary sources|date=September 2020}} {{External links|date=November 2024}} }} {{Infobox networking protocol | name = WebDAV | rfcs = {{IETF RFC|2518}}, {{IETF RFC|4918}} | ports = 80, 443 | osilayer = [[Application layer|Application]] }} '''WebDAV''' ('''Web Distributed Authoring and Versioning''') is a set of extensions to the [[Hypertext Transfer Protocol]] (HTTP), which allows [[user agent]]s to collaboratively author contents ''directly'' in an [[Web server|HTTP web server]] by providing facilities for [[concurrency control]] and [[Namespace|namespace operations]], thus allowing the [[World Wide Web|Web]] to be viewed as a ''writeable, collaborative medium'' and not just a read-only medium.{{sfn|Whitehead|Goland|1999|p=293}} WebDAV is defined in {{IETF RFC|4918}} by a [[working group]] of the [[Internet Engineering Task Force]] (IETF).{{sfn|Whitehead|1998|p=34}} The WebDAV protocol provides a framework for users to create, change and move documents on a [[Server (computing)|server]]. The most important features 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 the locking of files. It takes advantage of existing technologies such as [[Transport Layer Security]], [[digest access authentication]] or [[XML]] to satisfy those requirements.{{sfn|Whitehead|Goland|1999|p=294}} Many{{which|date=August 2024}} modern [[operating system]]s provide built-in [[client-side]] support for WebDAV.{{cn|date=August 2024}} == History == WebDAV began in 1996 when [[Jim Whitehead (professor)|Jim Whitehead]] worked with the [[World Wide Web Consortium]] (W3C) to host two meetings to discuss the problem of [[Collaborative editing|distributed authoring]] on the [[World Wide Web]] with interested people.<ref>{{cite web|url= http://lists.w3.org/Archives/Public/w3c-dist-auth/1996AprJun/0002.html|title= Proposed agenda for San Mateo Meeting|year= 1996}}</ref><ref>{{cite web|url= http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0095.html|title= Brief mtg. summary|year= 1996}}</ref> [[Tim Berners-Lee]]'s original vision of the Web involved a [[Data storage device|medium]] for both reading and writing. In fact, Berners-Lee's first [[web browser]], called [[WorldWideWeb]], could both view and edit [[web page]]s; 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.<ref>{{cite web |url= http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0001.html |title= Re: Updated agenda}} </ref>{{sfn|Whitehead|1998|p=40}} 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 [[revision control|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 [[#Extensions and derivatives|Delta-V extension]] added versioning later{{snd}} see the Extensions section below.) The WebDAV [[working group]] concluded its work in March 2007, after the [[Internet Engineering Steering Group]] (IESG) accepted an incremental update to {{IETF RFC|2518}}. 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.{{sfn|Whitehead|1998|p=39-40}} == Implementation == [[File:WebDAV collaborative authoring.png|thumb|500px|WebDAV [[Collaborative editing|collaborative authoring]] in a compatible HTTP server]] WebDAV extends the set of standard HTTP verbs and headers allowed for [[Hypertext Transfer Protocol#Request methods|request methods]]. The added verbs include: {{clear}} {| class="wikitable" ! Verb ! Action |- | '''COPY''' | copy a resource from one [[uniform resource identifier]] (URI) to another |- | '''LOCK''' | put a [[lock (computer science)|lock]] on a resource. WebDAV supports both shared and exclusive locks. |- | '''MKCOL''' | create collections (also known as a [[folder (computing)|directory]]) |- | '''MOVE''' | move a resource from one URI to another |- | '''PROPFIND''' | retrieve properties, stored as [[XML]], from a [[web resource]]. It is also [[method overloading|overloaded]] to 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 single [[atomic commit|atomic act]] |- | '''UNLOCK''' | remove a lock from a resource |} === Properties === The properties of WebDAV protocol are [[name–value pair]], in which a "name" is a [[Uniform Resource Identifier]] (URI) and the "values" are expressed through XML elements. Furthermore, the [[Hypertext Transfer Protocol#Request methods|methods]] to handle the properties are '''PROPFIND''' and '''PROPPATCH'''.{{sfn|Whitehead|Goland|1999|p=299}} == 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" {{IETF RFC|2291}}, issued February 1998 * a base protocol document (excluding versioning, despite its title): "HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)" {{IETF RFC|4918}}, issued June 2007 (which updates and supersedes "HTTP Extensions for Distributed Authoring{{snd}} WebDAV" {{IETF RFC|2518}}, issued February 1999) * the ordered collections protocol: "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol" {{IETF RFC|3648}}, issued December 2003 * the access control protocol: "Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol" {{IETF RFC|3744}}, issued May 2004 * a quota specification: "Quota and Size Properties for Distributed Authoring and Versioning (DAV) Collections" {{IETF RFC|4331}}, issued February 2006 * a redirect specification: "Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources" {{IETF RFC|4437}}, issued March 2006 == Other documents published through IETF == * the versioning protocol: "Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)" {{IETF RFC|3253}} (created by the Delta-V working group) * a specification of WebDAV property datatypes: "Datatypes for Web Distributed Authoring and Versioning (WebDAV) Properties" {{IETF RFC|4316}} * a document defining how to initiate mounting of a WebDAV resource: "Mounting Web Distributed Authoring and Versioning (WebDAV) Servers" {{IETF RFC|4709}} * a calendar access protocol: "Calendaring Extensions to WebDAV ([[CalDAV]])" {{IETF RFC|4791}} * a query protocol: "Web Distributed Authoring and Versioning (WebDAV) SEARCH" {{IETF RFC|5323}} * an extension to the WebDAV ACL specification: "WebDAV Current Principal Extension" {{IETF RFC|5397}} * an extension to the WebDAV MKCOL method: "Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)" {{IETF RFC|5689}} * 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)" {{IETF RFC|5842}} * an application of POST to WebDAV collections: "Using POST to Add Members to Web Distributed Authoring and Versioning (WebDAV) Collections" {{IETF RFC|5995}} * an extension which allows synchronizing large collections efficiently: "Collection Synchronization for Web Distributed Authoring and Versioning (WebDAV)" {{IETF RFC|6578}} == Extensions and derivatives == For versioning, the Delta-V protocol under the Web Versioning and Configuration Management working group adds resource revision tracking, published in {{IETF 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.<ref>[http://www.webdav.org/dasl DASL] {{webarchive|url=https://web.archive.org/web/20040603051812/http://www.webdav.org/dasl/ |date=2004-06-03 }}</ref> The WebDAV Search specification attempts to pick up where the working group left off, and was published as {{IETF RFC|5323}} in November 2008.<ref>[http://www.greenbytes.de/tech/webdav/draft-reschke-webdav-search-latest.html WebDav SEARCH]</ref> 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 [[Collaborative software|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<ref>[https://technet.microsoft.com/en-us/library/aa998911.aspx Discontinued Features: Exchange 2010 SP1 Help] Microsoft TechNet</ref> in favor of Exchange Web Services (EWS), a [[SOAP]]/[[XML]] based [[API]]. === Additional Windows-specific extensions === {{See also|Microsoft Open Specification Promise}} As part of the Windows Server Protocols (WSPP) documentation set,<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/cc964399.aspx|title=WSPP – Windows Server Protocols documentation|year=2011}}</ref> Microsoft published the following protocol documents detailing extensions to WebDAV: * [MS-WDVME]: Web Distributed Authoring and Versioning (WebDAV) Protocol: Microsoft Extensions.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/jj557055.aspx|title=MS-WDVME – Web Distributed Authoring and Versioning (WebDAV) Protocol: Microsoft Extensions|year=2014}}</ref> 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.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/cc250046.aspx|title=MS-WDV – Web Distributed Authoring and Versioning (WebDAV) Protocol: Client Extensions|year=2011}}</ref> 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.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/cc250200.aspx|title=MS-WDVSE – Web Distributed Authoring and Versioning (WebDAV) Protocol: Server Extensions|year=2011}}</ref> 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.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/cc313126.aspx|title=MS-WEBDAVE – Web Distributed Authoring and Versioning Error Extensions Protocol Specification|year=2011}}</ref> 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 == {| class="sortable wikitable" style="width: auto; table-layout: fixed; text-align: center;" ! Client ! Creator ! Operating system support ! License ! Interface |- ! scope="row" | [[Cyberduck]] | David V. Kocher | Windows, [[macOS]] | {{Free|[[GNU General Public License|GPL]]}} | [[Graphical user interface|GUI]] |- ! scope="row" | [[davfs2]] | GNOME team | FUSE | {{Free|[[GNU General Public License|GPL]]}} | [[Virtual file system|VFS]] |- ! scope="row" | [[davix]] | CERN | Windows, Linux, [[macOS]] | {{Free|[[GNU Lesser General Public License|LGPL]]}} | [[Command line interface|CLI]] |- ! [https://github.com/phpbg/easysync/ EasySync] | Samuel CHEMLA | Android | [[MIT License|MIT]] | Service |- ! [https://github.com/bitfireAT/davx5-ose DAVx⁵] | BitfireAT | Android | {{Free|[[GNU General Public License|GPL]]}} | Service |- ! [https://www.lonelycatgames.com/apps/xplore X-plore] | Lonely Cat Games | Android | {{Nonfree|Proprietary}} | [[GUI]] |- ! scope="row" | [[GVfs]] | GNOME team | GNOME | {{Free|[[GNU General Public License|GPL]]}} | [[Virtual file system|VFS]] |- ! scope="row" | [[KIO]] | KDE team | KDE | {{Free|[[GNU General Public License|GPL]]}} | [[Virtual file system|VFS]] |- ! scope="row" | [[Konqueror]] | KDE team | KDE | {{Free|[[GNU General Public License|GPL]]}} | [[Graphical user interface|GUI]] |- ! scope="row" | [[GNOME Files]] | GNOME team | GNOME | {{Free|[[GNU General Public License|GPL]]}} | [[GUI]] |- ! scope="row" | [[SmartFTP]] | SmartSoft Ltd | Windows | {{Nonfree|Proprietary}} | [[Graphical user interface|GUI]] |- ! scope="row" | [[WebDrive]] | South River Technologies | Windows, [[macOS]], iOS, Android | {{Nonfree|Proprietary}} | [[Virtual file system|VFS]] |- ! scope="row" | [[WinSCP]] | Martin Přikryl | Windows | {{Free|[[GNU General Public License|GPL]]}} | [[Command line interface|CLI]] and [[Graphical user interface|GUI]] |- ! scope="row" | WebClient (Deprecated)<ref>{{cite web |title=Deprecated features for Windows client |url=https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features |website=What's new in Windows |via=Microsoft Learn |publisher=Microsoft |access-date=4 November 2023}}</ref> | Microsoft | [[Windows]] | {{Nonfree|Same as Windows}} | [[Windows service|service]] |} == WebDAV libraries == {| class="sortable wikitable" style="width: auto; table-layout: fixed; text-align: center;" ! Libraries ! Creator ! Operating system or platform ! License ! Language |- ! scope="row" | [[Apache Wink]] |Apache Software foundation |JVM | |[[Java (programming language)|Java]] |- ! scope="row" | [[Apache Tomcat]] | Apache Software foundation | JVM | |[[Java (programming language)|Java]] |- ! scope="row" | [[Apache Jackrabbit]] | Apache Software foundation | JVM | [[Apache License|ASF]] | [[Java (programming language)|Java]] |- ! scope="row" | [[SabreDAV|sabre/dav]] | [[fruux]] | Windows, Linux, macOS | [[New BSD]] | [[PHP]] |} == Alternatives to WebDAV == * [[File Transfer Protocol]] (FTP), a simple and widely adopted network protocol based on [[Internet Protocol|IP]], allows users to transfer files between network hosts. [[FTPS]] extends 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. * A [[distributed file system]] such as the [[Server Message Block]] (SMB) protocol allows [[Microsoft Windows]] and open-source [[Samba (software)|Samba]] clients to access and manage files and folders remotely on a suitable [[file server]]. Commonly used for multimedia streaming over [[Ethernet]] and widely supported by [[Smart TV]]s.<ref>{{Cite web|last=Rau|first=Thomas|date=2017-10-19|title=Filme, Musik & Bilder im Heimnetzwerk streamen|url=https://www.pcwelt.de/ratgeber/Media-Streaming-im-Heimnetz-8814285.html|access-date=2020-11-05|website=PC-WELT|language=de-DE}}</ref> * [[Atom (standard)|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. * [[Content Management Interoperability Services|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]] (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 storage]] such as [[OpenStack#Object storage (Swift)|OpenStack Swift]] or [[Amazon S3]] == See also == * [[CalDAV]] * [[CardDAV]] * GroupDAV * [[Content management]] *[[Comparison of WebDAV software]] * [[Distributed file system]] * [[Open service interface definition]] * [[Information and Content Exchange|ICE]] * [[Data portability]] == References == {{Reflist}} * {{cite book|isbn=978-94-011-4441-4|doi=10.1007/978-94-011-4441-4_16|first1=E. James|last1=Whitehead|first2=Yaron Y.|last2=Goland|title=Ecscw' 99 |chapter=WebDAV |pages=291–310 |url=https://link.springer.com/book/10.1007/978-94-011-4441-4|publisher=[[Springer Science+Business Media]]|year=1999|location=Neatherlands|language=en-US}} * {{cite journal|journal=[[IEEE Internet Computing]]|year=1998|doi= 10.1109/4236.722228|issn=1941-0131|volume=2|issue=5|title=WebDAV: IEFT standard for collaborative authoring on the Web|first=E.J|last=Whitehead|pages=34–40 |url=https://ieeexplore.ieee.org/document/722228|access-date=12 October 2021|url-access=subscription}} == External links == * [http://webdav.org/ Official WebDAV site] * [https://github.com/fstanis/awesome-webdav Awesome WebDAV] A curated list of awesome apps that support WebDAV and tools related to it. * [http://savannah.nongnu.org/projects/davfs2 Davfs2 project] * [http://0pointer.de/lennart/projects/fusedav Fusedav project] * [http://httpd.apache.org/docs/current/mod/mod_dav.html WebDAV Apache modules] {{Web interfaces}} {{URI scheme}} {{Authority control}} {{Use dmy dates|date=March 2020}} {{DEFAULTSORT:Webdav}} [[Category:Internet protocols]] [[Category:World Wide Web Consortium standards]] [[Category:Working groups]] [[Category:Hypertext Transfer Protocol]] [[Category:Collaborative software]] [[Category:Network file systems]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Clear
(
edit
)
Template:Cn
(
edit
)
Template:Free
(
edit
)
Template:IETF RFC
(
edit
)
Template:Infobox networking protocol
(
edit
)
Template:Multiple issues
(
edit
)
Template:Nonfree
(
edit
)
Template:Reflist
(
edit
)
Template:See also
(
edit
)
Template:Sfn
(
edit
)
Template:Short description
(
edit
)
Template:Snd
(
edit
)
Template:URI scheme
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Web interfaces
(
edit
)
Template:Webarchive
(
edit
)
Template:Which
(
edit
)