WebDAV

Last updated
WebDAV
Communication protocol
OSI layer Application
Port(s) 80, 443
RFC(s) RFC   2518, RFC   4918
Website www.webdav.org

WebDAV (Web Distributed Authoring and Versioning) is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents directly in an HTTP web server by providing facilities for concurrency control and namespace operations, thus allowing Web to be viewed as a writeable, collaborative medium and not just a read-only medium. [1] WebDAV is defined in RFC   4918 by a working group of the Internet Engineering Task Force (IETF). [2]

Contents

The WebDAV protocol provides a framework for users to create, change and move documents on a 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. [3]

Many modern operating systems provide built-in client-side support for WebDAV.

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. [4] [5] 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. [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 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 Delta-V extension added versioning later  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 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. [8]

Implementation

WebDAV collaborative authoring in a compatible HTTP server WebDAV collaborative authoring.png
WebDAV collaborative authoring in a compatible HTTP server

WebDAV extends the set of standard HTTP verbs and headers allowed for request methods. The added verbs include:

VerbAction
COPYcopy a resource from one uniform resource identifier (URI) to another
LOCKput a lock on a resource. WebDAV supports both shared and exclusive locks.
MKCOLcreate collections (also known as a directory)
MOVEmove a resource from one URI to another
PROPFINDretrieve properties, stored as XML, from a web resource. It is also overloaded to allow one to retrieve the collection structure (also known as directory hierarchy) of a remote system.
PROPPATCHchange and delete multiple properties on a resource in a single atomic act
UNLOCKremove 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 methods to handle the properties are PROPFIND and PROPPATCH. [9]

Documents produced by the working group

The WebDAV working group produced several works:

Other documents published through IETF

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. [10] The WebDAV Search specification attempts to pick up where the working group left off, and was published as RFC   5323 in November 2008. [11]

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 [12] in favor of Exchange Web Services (EWS), a SOAP/XML based API.

Additional Windows-specific extensions

As part of the Windows Server Protocols (WSPP) documentation set, [13] Microsoft published the following protocol documents detailing extensions to WebDAV:

WebDAV clients

ClientCreatorOperating system supportLicenseInterface
Cyberduck David V. KocherWindows, macOS GPL GUI
davfs2 GNOME teamFUSE GPL VFS
davix CERNWindows, Linux, macOS LGPL CLI
EasySync Samuel CHEMLAAndroid MIT service
GVfs GNOME teamGNOME GPL VFS
KIO KDE teamKDE GPL VFS
Konqueror KDE teamKDE GPL GUI
GNOME Files GNOME teamGNOME GPL GUI
SmartFTP SmartSoft LtdWindowsProprietary GUI
WebDrive South River TechnologiesWindows, macOS, iOS, AndroidProprietary VFS
WinSCP Martin PřikrylWindows GPL CLI and GUI
WebClient (Deprecated) [18] Microsoft Windows Same as Windows service

WebDAV libraries

LibrariesCreatorOperating system or platformLicenseLanguage
Apache Wink Apache Software foundationJVM Java
Apache Tomcat Apache Software foundationJVM Java
Apache Jackrabbit Apache Software foundationJVM ASF Java
sabre/dav fruux Windows, Linux, macOS New BSD PHP

Alternatives to WebDAV

See also

Related Research Articles

The Domain Name System (DNS) is a hierarchical and distributed naming system for computers, services, and other resources in the Internet or other Internet Protocol (IP) networks. It associates various information with domain names assigned to each of the associated entities. Most prominently, it translates readily memorized domain names to the numerical IP addresses needed for locating and identifying computer services and devices with the underlying network protocols. The Domain Name System has been an essential component of the functionality of the Internet since 1985.

<span class="mw-page-title-main">HTTP</span> Application protocol for distributed, collaborative, hypermedia information systems

The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser.

A Uniform Resource Identifier (URI) is a unique sequence of characters that identifies an abstract or physical resource, such as resources on a webpage, mail address, phone number, books, real-world objects such as people and places, concepts. URIs are used to identify anything described using the Resource Description Framework (RDF), for example, concepts that are part of an ontology defined using the Web Ontology Language (OWL), and people who are described using the Friend of a Friend vocabulary would each have an individual URI.

Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call system. NFS is an open IETF standard defined in a Request for Comments (RFC), allowing anyone to implement the protocol.

<span class="mw-page-title-main">Microsoft Outlook</span> Email and calendaring software

Microsoft Outlook is a personal information manager software system from Microsoft, available as a part of the Microsoft 365 software suites. Though primarily being popular as an email client for businesses, Outlook also includes functions such as calendaring, task managing, contact managing, note-taking, journal logging, web browsing, and RSS news aggregation.

<span class="mw-page-title-main">XMPP</span> Communications protocol for message-oriented middleware

Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

The Internet Calendaring and Scheduling Core Object Specification (iCalendar) is a media type which allows users to store and exchange calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, and together with its associated standards has been a cornerstone of the standardization and interoperability of digital calendars across different vendors. Files formatted according to the specification usually have an extension of .ics. With supporting software, such as an email reader or calendar application, recipients of an iCalendar data file can respond to the sender easily or counter-propose another meeting date/time. The file format is specified in a proposed Internet standard for calendar data exchange. The standard and file type are sometimes referred to as "iCal", which was the name of the Apple Inc. calendar program until 2012, which provides one of the implementations of the standard.

<span class="mw-page-title-main">Server Message Block</span> Network communication protocol for providing shared access to resources

Server Message Block (SMB) is a communication protocol used to share files, printers, serial ports, and miscellaneous communications between nodes on a network. On Microsoft Windows, the SMB implementation consists of two vaguely named Windows services: "Server" and "Workstation". It uses NTLM or Kerberos protocols for user authentication. It also provides an authenticated inter-process communication (IPC) mechanism.

The Internet Printing Protocol (IPP) is a specialized communication protocol for communication between client devices and printers. It allows clients to submit one or more print jobs to the network-attached printer or print server, and perform tasks such as querying the status of a printer, obtaining the status of print jobs, or cancelling individual print jobs.

<span class="mw-page-title-main">Preboot Execution Environment</span> Standard for booting from a server

In computing, the Preboot eXecution Environment, PXE specification describes a standardized client–server environment that boots a software assembly, retrieved from a network, on PXE-enabled clients. On the client side it requires only a PXE-capable network interface controller (NIC), and uses a small set of industry-standard network protocols such as DHCP and TFTP.

A Service record is a specification of data in the Domain Name System defining the location, i.e., the hostname and port number, of servers for specified services. It is defined in RFC 2782, and its type code is 33. Some Internet protocols such as the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP) often require SRV support by network elements.

Calendaring Extensions to WebDAV, or CalDAV, is an Internet standard allowing a client to access and manage calendar data along with the ability to schedule meetings with users on the same or on remote servers. It lets multiple users in different locations share, search and synchronize calendar data. It extends the WebDAV specification and uses the iCalendar format for the calendar data. The access protocol is defined by RFC 4791. Extensions to CalDAV for scheduling are standardized as RFC 6638. The protocol is used by many important open-source applications.

Distributed File System (DFS) is a set of client and server services that allow an organization using Microsoft Windows servers to organize many distributed SMB file shares into a distributed file system. DFS has two components to its service: Location transparency and Redundancy. Together, these components enable data availability in the case of failure or heavy load by allowing shares in multiple different locations to be logically grouped under one folder, the "DFS root".

Webcal is a uniform resource identifier (URI) scheme for accessing iCalendar files. WebCal allows you to create and maintain an interactive events calendar or scheduling system on a Web site or app.

<span class="mw-page-title-main">HTTP 403</span> HTTP status code indicating that access is forbidden to a resource

HTTP 403 is an HTTP status code meaning access to the requested resource is forbidden. The server understood the request, but will not fulfill it, if it was correct.

The Microsoft Open Specification Promise is a promise by Microsoft, published in September 2006, to not assert its patents, in certain conditions, against implementations of a certain list of specifications.

<span class="mw-page-title-main">WebSocket</span> Computer network protocol

WebSocket is a computer communications protocol, providing simultaneous two-way communication channels over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011. The current specification allowing web applications to use this protocol is known as WebSockets. It is a living standard maintained by the WHATWG and a successor to The WebSocket API from the W3C.

sabre/dav is an open source WebDAV server, developed by fruux and built in PHP. It is an implementation of the WebDAV protocol, providing a native PHP server implementation which operates on Apache 2 and Nginx web servers.

The JSON Meta Application Protocol (JMAP) is a set of related open Internet Standard protocols for handling email. JMAP is implemented using JSON APIs over HTTP and has been developed as an alternative to IMAP/SMTP and proprietary email APIs such as Gmail and Outlook. Additional protocols and data models being built on top of the core of JMAP for handling contacts and calendar synchronization are meant to be potential replacements for CardDAV and CalDAV, and other support is currently in the works.

References