WebDAV: Difference between revisions

Content deleted Content added
Changed OS X to macOS and "Droid" to Android
Citation bot (talk | contribs)
Removed URL that duplicated identifier. Removed access-date with no URL. Removed parameters. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 877/967
 
(41 intermediate revisions by 32 users not shown)
Line 1:
{{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 = RFC{{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_serverWeb 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 [[collaborationCollaborative 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}}
Line 27 ⟶ 30:
 
== Implementation ==
[[File:WebDAV sample 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"
Line 57 ⟶ 61:
 
=== 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_ProtocolHypertext Transfer Protocol#Request_methodsRequest methods|methods]] to handle the properties are '''PROPFIND''' and '''PROPPATCH'''.{{sfn|Whitehead|Goland|1999|p=299}}
 
=== Server support ===
* [[iceWarp]] provides Webdav inbuilt functionality to its web client and Desktop Applications, *DAV support: [[CalDAV]], [[CardDAV]], Web Documents and collaborative editing.
* [[Apache HTTP Server]] provides WebDAV modules based on both [[davfs]] and [[Apache Subversion|Apache Subversion (svn)]].
* [[Caddy (web server)|Caddy]] has an optional WebDAV module.<ref>{{Cite web |title=Module http.handlers.webdav - Caddy Documentation |url=https://caddyserver.com/docs/modules/http.handlers.webdav |url-status=live |access-date=2022-09-02}}</ref>
* [[EGroupware]], a Groupware with full *DAV support: [[CalDAV]], [[CardDAV]] and WebDAV for file manager.<ref>{{cite web|title=Access to EGroupware via WebDAV (CalDAV/CardDAV)|url=https://help.egroupware.org/t/access-to-egroupware-via-webdav-caldav-carddav/74198|access-date=14 October 2021}}</ref>
* [[lighttpd]] has an optional WebDAV module.<ref>{{Cite web|url=http://redmine.lighttpd.net/projects/1/wiki/Docs_ModWebDAV|title=lighttpd mod webdav}}</ref>
* [[Mailfence]] offers WebDAV support through a virtual drive+ you can connect external drives to Mailfence Documents.<ref>{{Cite web|url=https://mailfence.com/en/doc/documents.jsp|title=WebDAV implementation of Mailfence|access-date=5 May 2020}}</ref>
* [[Nextcloud]] is a fork of ownCloud, and therefore also offers full WebDAV support.<ref>{{cite web|title=Nextcloud 18 User Manual|url=https://docs.nextcloud.com/server/18/user_manual/files/access_webdav.html|website=nextcloud.com|access-date=22 February 2020}}</ref>
* [[Nginx]] has a very limited optional WebDAV module<ref>{{cite web|title=Module ngx_ht=2021-10-20}}</ref> (Note: full WebDAV support for IIS 7 was provided through a separate download that was discontinued in July 2021.<ref>{{Cite web|url=https://www.iis.net/downloads/microsoft/webdav|title=WebDAV Extension for IIS|website=IIS.net|access-date=2021-10-20}}</ref>).
* [[Rclone]] includes support for WebDAV through the <code>serve webdav</code> command.<ref>{{Cite web |title=rclone serve webdav |url=https://rclone.org/commands/rclone_serve_webdav/ |access-date=2022-04-29 |website=rclone.org}}</ref>
 
=== Client support ===
 
[[WinSCP]] from Martin Přikryl
 
== Documents produced by the working group ==
Line 119 ⟶ 108:
 
{| class="sortable wikitable" style="width: auto; table-layout: fixed; text-align: center;"
! Client
|- style="background: #ececec"
! style="width:12em" | Client
! Creator
! Operating system support
Line 126 ⟶ 114:
! Interface
|-
! {{rh}}scope="row" | [[Cyberduck]]
| David V. Kocher
| Windows, [[macOS]]
| {{Free|[[GNU General Public License|GPL]]}}
| [[Graphical user interface|GUI]]
|-
! {{rh}}scope="row" | [[davfs2]]
| GNOME team
| FUSE
| {{Free|[[GNU General Public License|GPL]]}}
| [[Virtual file system|VFS]]
|-
! {{rh}}scope="row" | [[davix]]
| CERN
| Windows, Linux, [[macOS]]
| {{Free|[[GNU Lesser General Public License|LGPL]]}}
| [[Command line interface|CLI]]
|-
! [https://github.com/phpbg/easysync/ EasySync]
! {{rh}} | [[GVfs]]
| 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]]
|-
! {{rh}}scope="row" | [[GVfs]]
| GNOME team
| GNOME
| {{Free|[[GNU General Public License|GPL]]}}
| [[Virtual file system|VFS]]
|-
! {{rh}}scope="row" | [[KIO]]
| KDE team
| KDE
| {{Free|[[GNU General Public License|GPL]]}}
| [[Virtual file system|VFS]]
|-
! {{rh}}scope="row" | [[Konqueror]]
| KDE team
| KDE
| {{Free|[[GNU General Public License|GPL]]}}
| [[Graphical user interface|GUI]]
|-
! {{rh}}scope="row" | [[GNOME Files]]
| GNOME team
| GNOME
| {{Free|[[GNU General Public License|GPL]]}}
| [[GUI]]
|-
! {{rh}}scope="row" | [[SmartFTP]]
| SmartSoft Ltd
| Windows
| {{Nonfree|Proprietary}}
| [[Graphical user interface|GUI]]
|-
! {{rh}}scope="row" | [[WebDrive]]
| South River Technologies
| Windows, [[macOS]], iOS, Android
| {{Nonfree|Proprietary}}
| [[Virtual file system|VFS]]
|-
! {{rh}}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]]
|}
 
Line 190 ⟶ 202:
 
{| class="sortable wikitable" style="width: auto; table-layout: fixed; text-align: center;"
! Libraries
|- style="background: #ececec"
! style="width:12em" | Libraries
! Creator
! Operating system or platform
Line 197 ⟶ 208:
! Language
|-
|{{rh}}! classscope="table-rhrow" | [[Apache Wink]]
|Apache Software foundation
|JVM
Line 203 ⟶ 214:
|[[Java (programming language)|Java]]
|-
|{{rh}}! classscope="table-rhrow" | [[Apache Tomcat]]
| Apache Software foundation
| JVM
Line 209 ⟶ 220:
|[[Java (programming language)|Java]]
|-
! {{rh}} classscope="table-rhrow" | [[Apache Jackrabbit]]
| Apache Software foundation
| JVM
Line 215 ⟶ 226:
| [[Java (programming language)|Java]]
|-
! {{rh}}scope="row" | [[SabreDAV|sabre/dav]]
| [[fruux]]
| Windows, Linux, macOS
Line 221 ⟶ 232:
| [[PHP]]
|}
 
 
== Alternatives to WebDAV ==
* [[File Transfer Protocol]] (FTP), a simple and widely adaptedadopted 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 [[ethernetEthernet]] 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_Object storage (Swift)|OpenStack Swift]] or [[Amazon S3]]
 
== See also ==
Line 241 ⟶ 251:
*[[Comparison of WebDAV software]]
* [[Distributed file system]]
* [[Filing Open Service Interfaceservice Definition|Filinginterface OSIDdefinition]]
* [[Information and Content Exchange|ICE]]
* [[Data portability]]
 
== References ==
{{Reflist|2}}
* {{cite book|title=WebDAV: A network protocol for remote collaborative authoring on the Web|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|langlanguage=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}}
 
== External links ==