WebDAV

WebDAV / HTTP im TCP/IP-Protokollstapel:
Anwendung WebDAV / HTTP
Transport TCP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI

WebDAV (Web-based Distributed Authoring and Versioning) ist ein Netzwerkprotokoll zur Bereitstellung von Dateien über das Internet. Es basiert auf dem Hypertext Transfer Protocol (HTTP/1.1), unterstützt mittlerweile aber auch HTTPS. Mit WebDAV können ganze Verzeichnisse übertragen werden. Zudem ist eine Versionskontrolle spezifiziert. WebDAV ist definiert im Standard RFC 4918.[1] Auf WebDAV bauen unter anderem die Protokolle CalDAV und CardDAV auf, welche zur Synchronisation von Kalender- bzw. Adressdaten verwendet werden.

Vorteile von WebDAV

Durch die enorme Verbreitung des World Wide Web zählt der von HTTP genutzte Port 80 (HTTPS: Port 443[2]) zu den Ports, die bei Firewalls in der Regel nicht blockiert werden. Während bei anderen Übertragungsmethoden wie dem File Transfer Protocol (FTP) oder SSH (in Verbindung mit scp oder SFTP) oftmals zusätzlich Ports der Firewall geöffnet werden müssen, ist das bei WebDAV nicht nötig, da es auf HTTP aufbaut und daher nur Port 80 benötigt. Das Öffnen von zusätzlichen Ports einer Firewall erhöht den Zeit- und Arbeitsaufwand für Systemadministratoren und birgt unter Umständen zusätzliche Sicherheitsrisiken. Zudem kann der Server innerhalb eines bestehenden HTTP-Servers implementiert werden.

Mittlerweile gibt es für jedes Betriebssystem (inklusive Smartphones) direkte WebDAV-Implementierungen, die es ermöglichen, WebDAV ins System einzubinden oder zumindest per Dateimanager darauf zuzugreifen.

Da auch Benutzerrechte unterstützt werden, ist es eine echte und weitaus sicherere Alternative gegenüber Samba- oder Windows-Freigaben, besonders beim Fernzugriff.

Geschichte

Drei Arbeitsgruppen der Internet Engineering Task Force haben an WebDAV gearbeitet, um auf der Basis von HTTP Netzwerk-Standards zu schaffen, mit denen Dokumente und Dateien im Netzwerk verändert und geschrieben werden können. Diese Gruppen sind die WebDAV Working Group, die DASL Working Group und die Delta-V Working Group.

WebDAV-Arbeitsgruppe

Die WebDAV-Arbeitsgruppe wurde initiiert von Jim Whitehead, Mitglied des W3C, um eine Diskussion über Distributed Authoring im World Wide Web zu starten. Es war die ursprüngliche Vision des WWW, wie sie von Tim Berners-Lee vertreten wurde, dass das Web ein sowohl lesbares als auch editierbares Medium sein sollte, und Berners-Lees erster Webbrowser, genannt WorldWideWeb,[3] war tatsächlich dazu in der Lage, Seiten auch permanent zu editieren. Die massive Verbreitung des Web in den 1990er Jahren ließ den Gedanken des Distributed Authoring jedoch untergehen, sodass es sich zu dem heutigen, weitgehend nur lesbaren Medium entwickelte. Allerdings enthalten auch die heutigen HTTP-Spezifikationen noch die HTTP-Requests PUT und DELETE, die jedoch von den allermeisten Webservern mit dem HTTP-Statusfehler „405 Method Not Allowed“ abgelehnt werden. Whitehead und seine Mitstreiter haben sich im Rahmen der WebDAV-Arbeitsgruppe das Ziel gesetzt, diese Beschränkung aufzuheben.

Die Gruppe, die sich dann im Rahmen eines W3C-Meetings im Dezember 1995 traf, entschied sich dafür, dass die beste Vorgehensweise die Gründung einer IETF-Arbeitsgruppe wäre. Die IETF erschien am nächsten liegend, weil das HTTP dort standardisiert war und man annahm, dass das letztendliche Ergebnis dieser Arbeitsgruppe eine Erweiterung von HTTP sein würde.

Als die Arbeit am Protokoll im November 1996 begann, wurde klar, dass eine Behandlung sowohl des Aspekts des Distributed Authorings als auch der Versionskontrolle zu viel auf einmal wäre und dass die Aufgaben auf mehrere Gruppen verteilt werden müssten. Die WebDAV-Arbeitsgruppe entschied sich dafür, sich zunächst auf Distributed Authoring zu konzentrieren und sich den Versionskontrollmechanismus für später aufzuheben. Einige Mitglieder meinten daraufhin scherzhaft, dass die Gruppe besser in WebDA umbenannt werden solle.

Aus der WebDAV-Arbeitsgruppe sind bis heute mehrere Dokumente hervorgegangen:

Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web, RFC 2291[4]
eine Sammlung von Anforderungen
HTTP Extensions for Distributed Authoring – WebDAV, RFC 2518[5]
das (ursprüngliche) Basis-Protokoll
Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol, RFC 3648[6]
Sortierung von Verzeichniseinträgen
Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol, RFC 3744[7]
Zugriffsrechte
Quota and Size Properties for Distributed Authoring and Versioning (DAV) Collections, RFC 4331[8]
Quotas
Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources, RFC 4437[9]
Behandlung von „Redirects“
HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV), RFC 4918[1]
eine aktualisierte Fassung des Basisprotokolls

Die WebDAV-Arbeitsgruppe wurde im Frühjahr 2007 aufgelöst.

Die Arbeitsgruppen DASL und Delta-V

Aus der WebDAV-Gruppe gingen weitere IETF-Arbeitsgruppen hervor, zu denen auch die DAV Searching and Locating-Gruppe (DASL) und die Web Versioning and Configuration Management (Delta-V)-Arbeitsgruppe gehören. Die DASL produzierte nie einen offiziellen Standard, ein Entwurf wurde allerdings außerhalb der Arbeitsgruppe weiterentwickelt und liegt nun als RFC 5323[10] vor. Die Delta-V definierte die Versioning-Erweiterungen für WebDAV (RFC 3253[11]), mit denen sich WebDAV nun mit Recht WebDAV nennen darf.

Technische Hintergründe

Das WebDAV-Protokoll erweitert das vorhandene Hypertext Transfer Protocol um einen Satz neuer Methoden und Header-Attribute.

Zusätzliche Anfrage-Methoden, die von WebDAV-konformen Webservern behandelt werden müssen
HTTP-Methode Beschreibung
PROPFIND wird benutzt, um Eigenschaften, abgelegt als XML, einer Ressource zu erfahren. Außerdem wird sie benutzt („überladen“), um die Verzeichnisstruktur eines entfernten Systems zu ermitteln
PROPPATCH ändert und löscht mehrere Eigenschaften einer Ressource in einer einzigen Anfrage (einem „atomaren Akt“)
MKCOL erstellt ein Verzeichnis (bei WebDAV „Collection“ genannt)
COPY Kopiert eine Ressource, die Dateinamen werden dabei in Form einer URI angegeben
MOVE Verschiebt eine Ressource (mit der gleichen Syntax wie COPY)
DELETE Löscht eine Ressource (mit der gleichen Syntax wie COPY)
LOCK Weist den Webserver an, die Ressource zu sperren. Damit soll verhindert werden, dass die Ressource auf dem Server anderweitig bearbeitet wird, während der anfragende Client das tut.
UNLOCK Entfernt die Sperre wieder

Ressource ist in diesem Sinn ein HTTP-spezifischer Begriff, der in etwa als „das Ding, auf das ein URI zeigt“ definiert werden kann. Dabei handelt es sich in der Regel um Dateien auf dem Webserver.

WebDAV und Reverse Proxy

WebDAV lässt sich auch hinter einem Reverse Proxy betreiben. Wenn man die Benutzerverwaltung von WebDAV verwendet, muss man dem Proxy mitteilen, die Authentifizierung auf dem Webserver abzuhandeln. Zum Beispiel bei Squid:

   – cache_peer webserver ..... login=FALSE

Implementierungen

WebDAV ist in allen gängigen Webservern und in vielen Dateimanagern implementiert. Microsoft unterstützt es rudimentär seit Windows XP wie ein herkömmliches Dateisystem, Apple seit macOS und jede größere Linux-Distribution.

Im Lieferumfang des Apache HTTP Server befindet sich das DAV-Modul mod_dav. Es kann mit dem Catacomb WebDAV Server erweitert werden.

Zudem wird es auf Android, iOS und einigen anderen Smartphone-Betriebssystemen per App unterstützt.

Owncloud, Nextcloud und EGroupware[12] sind PHP-basierte Cloud-Speicherdienste und bieten vollständige WebDAV-Unterstützung[13].

Siehe auch

Einzelnachweise

  1. a b RFC 4918 – HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). (englisch).
  2. Jenny Ehrlich: webdav erklärt vom Webhosting Profi DM Solutions. Abgerufen am 1. Juli 2024 (deutsch).
  3. Browser „WorldWideWeb“. w3.org
  4. RFC 2291 – Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web. (englisch).
  5. RFC 2518 – HTTP Extensions for Distributed Authoring – WEBDAV. (englisch).
  6. RFC 3648 – Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol. (englisch).
  7. RFC 3744 – Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol. (englisch).
  8. RFC 4331 – Quota and Size Properties for Distributed Authoring and Versioning (DAV) Collections. (englisch).
  9. RFC 4437 – Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources. (englisch).
  10. RFC 5323 – Web Distributed Authoring and Versioning (WebDAV) SEARCH. (englisch).
  11. RFC 3253 – Versioning Extensions to WebDAV. (englisch).
  12. Zugriff auf EGroupware per WebDAV (CalDAV/CardDAV). Abgerufen am 14. Oktober 2021.
  13. Accessing Nextcloud files using WebDAV. Abgerufen am 22. Februar 2020.