Open ICS File

Information, tips and instructions

WebDAV Protocol

WebDAV is an HTTP based protocol to manipulate objects over the network connection. HTTP protocol by itself only provides methods which can read the data from the internet but frequently it is required to perform write actions on a server, get metadata about objects, create collections, delete objects, and many more. WebDAV enables all actions noted above and provides many other object manipulation functions over the HTTP connection.

WebDAV works with concepts of objects, properties and collections. Object can have one or multiple properties assigned to it. Each property is a name-value pair and stored as an XML data piece. Collections are container elements which can contain multiple objects grouped together. Each object in WebDAV has an URL assigned to it. Using this URL object could be accessed, modified, added to the collection or deleted from it.

Below are some examples of WebDAV commands:

  • MKCOL – Make object collection. It is in some way similar to making a folder with files in an operating system.
  • GET – Similar to HTTP GET command gets an object. Could be used for retrieving collection elements.
  • DELETE – Delete object
  • PUT – Put an object and its data on a server
  • COPY – Copy object, collection, properties
  • MOVE – Move object, collection, properties
  • PROPGET – Get object properties
  • PROPFIND – Find object properties
  • PROPPATCH – Modify object properties
  • PROPNAME – Retrieve property names

WebDAV is supported by many popular web servers, operating systems and applications including Apache HTTP Server, Microsoft IIS, Microsoft Windows, Microsoft Office, Linux, Mac OS. Since it is based on HTTP web protocol it is not specific to any operating system or hardware platform and can work on any device connected to the internet.

WebDAV is a foundation for many popular protocols:

  • CalDAV – Web protocol for calendar data
  • GroupDAV – Groupware collaborative web protocol
  • CardDAV – Address book web protocol

Below is an example of WebDAV request retrieving named properties:

PROPFIND /file HTTP/1.1
Host: www.example.com
Content-type: application/xml; charset="utf-8"
Content-Length: xxxx

<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop xmlns:R="http://ns.example.com/boxschema/">
<R:bigbox/>
<R:author/>
<R:DingALing/>
<R:Random/>
</D:prop>
</D:propfind>