WebDAV

Aus besserwiki.de
WebDAV
Kommunikationsprotokoll
Port(s)80, 443
RFC(s)RFC 2518, RFC 4918

WebDAV (Web Distributed Authoring and Versioning) ist eine Reihe von Erweiterungen des Hypertext Transfer Protocol (HTTP), die es Benutzer-Agenten ermöglichen, Inhalte direkt in einem HTTP-Webserver gemeinsam zu erstellen, indem sie Einrichtungen für die Gleichzeitigkeitskontrolle und Namensraumoperationen bereitstellen, so dass das Web als ein beschreibbares, gemeinsames Medium und nicht nur als ein reines Lesemedium betrachtet werden kann. WebDAV wird in RFC 4918 von einer Arbeitsgruppe der Internet Engineering Task Force (IETF) definiert.

Das WebDAV-Protokoll bietet einen Rahmen für Benutzer zum Erstellen, Ändern und Verschieben von Dokumenten auf einem Server. Zu den wichtigsten Funktionen gehören die Verwaltung von Eigenschaften wie Autor oder Änderungsdatum, Namespace-Management, Sammlungen und Überschreibschutz. Die Verwaltung von Eigenschaften umfasst unter anderem das Erstellen, Entfernen und Abfragen von Dateiinformationen. Bei der Namensraumverwaltung geht es um die Möglichkeit, Webseiten innerhalb des Namensraumes eines Servers zu kopieren und zu verschieben. Sammlungen befassen sich mit der Erstellung, Entfernung und Auflistung verschiedener Ressourcen. Der Überschreibschutz schließlich befasst sich mit Aspekten, die mit dem Sperren von Dateien zusammenhängen. Er nutzt bestehende Technologien wie Transport Layer Security, Digest Access Authentication oder XML, um diese Anforderungen zu erfüllen.

Viele moderne Betriebssysteme bieten integrierte clientseitige Unterstützung für WebDAV.

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

Geschichte

Die Anfänge von WebDAV gehen auf das Jahr 1996 zurück, als Jim Whitehead, ein Doktorand der UC Irvine, in Zusammenarbeit mit dem World Wide Web Consortium (W3C) zwei Sitzungen veranstaltete, um das Problem der verteilten Erstellung von Dokumenten im World Wide Web mit interessierten Personen zu erörtern. Tim Berners-Lees ursprüngliche Vision des Web beinhaltete ein Medium zum Lesen und Schreiben. Tatsächlich konnte Berners-Lees erster Webbrowser, WorldWideWeb genannt, Webseiten sowohl anzeigen als auch bearbeiten; aber als das Web wuchs, wurde es für die meisten Benutzer zu einem reinen Lesemedium. Whitehead und andere Gleichgesinnte wollten diese Einschränkung überwinden.

Die Treffen führten zur Bildung einer IETF-Arbeitsgruppe, da die neuen Bemühungen zu Erweiterungen des HTTP-Protokolls führen würden, mit dessen Standardisierung die IETF begonnen hatte.

Als die Arbeit an dem Protokoll begann, wurde klar, dass die gleichzeitige Bearbeitung von verteiltem Authoring und Versionierung zu viel Arbeit bedeuten würde und dass die Aufgaben getrennt werden mussten. Die WebDAV-Gruppe konzentrierte sich auf die verteilte Erstellung von Dokumenten und verschob die Versionierung auf die Zukunft. (Die Delta-V-Erweiterung fügte die Versionierung später hinzu - siehe den Abschnitt Erweiterungen weiter unten).

Die WebDAV-Arbeitsgruppe schloss ihre Arbeit im März 2007 ab, nachdem die Internet Engineering Steering Group (IESG) eine inkrementelle Aktualisierung von RFC 2518 akzeptiert hatte. Andere Erweiterungen, die zu diesem Zeitpunkt noch nicht fertiggestellt waren, wie z. B. die BIND-Methode, wurden von den einzelnen Autoren unabhängig von der formalen Arbeitsgruppe fertiggestellt.

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.

Umsetzung

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 - kollaboratives Authoring auf einem kompatiblen HTTP-Server

Eigenschaften

Die Eigenschaften des WebDAV-Protokolls sind Name-Wert-Paare, wobei ein "Name" ein Uniform Resource Identifier (URI) ist und die "Werte" durch XML-Elemente ausgedrückt werden. Die Methoden zur Handhabung der Eigenschaften sind PROPFIND und PROPPATCH.

Server-Unterstützung

  • iceWarp bietet eine eingebaute Webdav-Funktionalität für seinen Web-Client und Desktop-Anwendungen, *DAV-Unterstützung: CalDAV, CardDAV, Web-Dokumente und kollaborative Bearbeitung.
  • Apache HTTP Server bietet WebDAV-Module, die sowohl auf davfs als auch auf Apache Subversion (svn) basieren.
  • Caddy hat ein optionales WebDAV-Modul
  • EGroupware, eine Groupware mit vollständiger *DAV-Unterstützung: CalDAV, CardDAV und WebDAV für Dateimanager
  • lighttpd hat ein optionales WebDAV-Modul
  • Mailfence bietet WebDAV-Unterstützung durch ein virtuelles Laufwerk+ Sie können externe Laufwerke mit Mailfence Documents verbinden
  • Nextcloud ist ein Fork von ownCloud und bietet daher ebenfalls volle WebDAV-Unterstützung
  • Nginx hat ein sehr begrenztes optionales WebDAV-Modul und ein Modul eines Drittanbieters
  • ownCloud ist eine PHP-Anwendung für Cloud-Speicher, die vollständige WebDAV-Unterstützung bietet
  • SabreDAV ist eine PHP-Anwendung, die auf Apache oder Nginx anstelle der gebündelten Module verwendet werden kann.
  • Seafile hat eine optionale WebDAV-Konfiguration
  • Microsoft IIS hat eine eingeschränkte Unterstützung für WebDAV in IIS Version 5 und 6 und eine vollständige Unterstützung für WebDAV in IIS 7.5 eingeführt. (Hinweis: Die vollständige WebDAV-Unterstützung für IIS 7 wurde durch einen separaten Download bereitgestellt, der im Juli 2021 eingestellt wurde).
  • Rclone bietet Unterstützung für WebDAV durch den Befehl serve webdav.

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.

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

Client-Unterstützung

  • CloudMounter von Eltima Software
  • Git unterstützt das Schreiben in HTTP-Remotes, obwohl das "intelligente" Git-Protokoll für HTTP (das spezielle Serverunterstützung erfordert) gegenüber WebDAV bevorzugt wird
  • Linux über GVfs, einschließlich GNOME Files und über KIO, einschließlich Konqueror und Dolphin
  • macOS, einschließlich nativer Unterstützung für CalDAV und CardDAV, deren Design auf WebDAV basiert
  • Microsoft Windows und Microsoft Office, einschließlich nativer Unterstützung im Explorer, über den WebDAV Redirector
  • NetDrive von Bdrive, Inc.
  • WebDrive von South River Technologies
  • WinSCP von Martin Přikryl

Von der Arbeitsgruppe erstellte Dokumente

Die WebDAV-Arbeitsgruppe hat mehrere Arbeiten erstellt:

  • Ein Anforderungsdokument: "Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web" RFC 2291, veröffentlicht im Februar 1998
  • ein Basisprotokolldokument (das trotz seines Titels die Versionierung ausschließt): "HTTP-Erweiterungen für Web Distributed Authoring and Versioning (WebDAV)". RFC 4918, veröffentlicht im Juni 2007 (aktualisiert und ersetzt "HTTP Extensions for Distributed Authoring - WebDAV" RFC 2518, veröffentlicht im Februar 1999)
  • das Protokoll für geordnete Sammlungen: "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol" RFC 3648, herausgegeben im Dezember 2003
  • das Zugriffskontrollprotokoll: "Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol" RFC 3744, herausgegeben im Mai 2004
  • eine Quota-Spezifikation: "Quota and Size Properties for Distributed Authoring and Versioning (DAV) Collections" RFC 4331, herausgegeben im Februar 2006
  • eine Redirect-Spezifikation: "Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources" RFC 4437, veröffentlicht im März 2006

Andere von der IETF veröffentlichte Dokumente

  • das Versionierungsprotokoll: "Versionierungserweiterungen für WebDAV (Web Distributed Authoring and Versioning)" RFC 3253 (erstellt von der Delta-V-Arbeitsgruppe)
  • eine Spezifikation der Datentypen für WebDAV-Eigenschaften: "Datatypes for Web Distributed Authoring and Versioning (WebDAV) Properties" RFC 4316
  • ein Dokument, das definiert, wie das Einbinden einer WebDAV-Ressource initiiert werden kann: "Einhängen von Web Distributed Authoring and Versioning (WebDAV)-Servern" RFC 4709
  • ein Kalenderzugriffsprotokoll: "Kalendererweiterungen für WebDAV (CalDAV)" RFC 4791
  • ein Abfrageprotokoll: "Web Distributed Authoring and Versioning (WebDAV) SEARCH" RFC 5323
  • eine Erweiterung der WebDAV ACL-Spezifikation: "WebDAV-Erweiterung für aktuelle Hauptpersonen" RFC 5397
  • eine Erweiterung der WebDAV MKCOL-Methode: "Erweiterte MKCOL für Web Distributed Authoring and Versioning (WebDAV)" RFC 5689
  • eine Erweiterung des Sammlungsmodells, die die Erstellung und Ermittlung zusätzlicher Bindungen zu einer Ressource definiert: "Erweiterungen der Bindung an Web Distributed Authoring and Versioning (WebDAV)". RFC 5842
  • eine Anwendung von POST auf WebDAV-Sammlungen: "Using POST to Add Members to Web Distributed Authoring and Versioning (WebDAV) Collections" RFC 5995
  • eine Erweiterung, die eine effiziente Synchronisierung großer Sammlungen ermöglicht: "Synchronisierung von Sammlungen für Web Distributed Authoring and Versioning (WebDAV)". RFC 6578

Erweiterungen und Derivate

Für die Versionierung fügt das Delta-V-Protokoll der Arbeitsgruppe Web Versioning and Configuration Management die Verfolgung von Ressourcenrevisionen hinzu, veröffentlicht in RFC 3253.

Für die Suche und Lokalisierung hat die Arbeitsgruppe DAV Searching and Locating (DASL) nie einen offiziellen Standard erstellt, obwohl es eine Reihe von Implementierungen ihres letzten Entwurfs gibt. Die Arbeit wurde als Nicht-Arbeitsgruppen-Aktivität fortgesetzt. Die WebDAV-Suchspezifikation versucht, dort weiterzumachen, wo die Arbeitsgruppe aufgehört hat, und wurde im November 2008 als RFC 5323 veröffentlicht.

CalDAV ist ein Protokoll für die Kalenderverwaltung, das den Zugriff auf Kalender über WebDAV ermöglicht. CalDAV modelliert Kalenderereignisse als HTTP-Ressourcen im iCalendar-Format und modelliert Kalender mit Ereignissen als WebDAV-Sammlungen.

Für Groupware ist GroupDAV eine Variante von WebDAV, die es Client/Server-Groupware-Systemen ermöglicht, Objekte wie Kalenderelemente und Adressbucheinträge anstelle von Webseiten zu speichern und abzurufen.

Für die MS Exchange-Interoperabilität kann WebDAV zum Lesen/Aktualisieren/Löschen von Objekten in einem Postfach oder öffentlichen Ordner verwendet werden. WebDAV für Exchange wurde von Microsoft erweitert, um die Arbeit mit Messaging-Daten zu ermöglichen. Exchange Server Version 2000, 2003 und 2007 unterstützen WebDAV. Die WebDAV-Unterstützung wurde jedoch in Exchange 2010 zugunsten von Exchange Web Services (EWS), einer SOAP/XML-basierten API, eingestellt.

Zusätzliche Windows-spezifische Erweiterungen

Als Teil der Windows Server Protocols (WSPP)-Dokumentation hat Microsoft die folgenden Protokolldokumente veröffentlicht, in denen Erweiterungen zu WebDAV beschrieben werden:

  • [MS-WDVME]: Web Distributed Authoring and Versioning (WebDAV) Protokoll: Microsoft-Erweiterungen. Diese Erweiterungen umfassen ein neues Verb, neue Header und Eigenschaften, die zuvor nicht verwaltbare Dateitypen ermöglichen und die Interaktionen des Protokolls für Dateisystem-Clients optimieren. Diese Erweiterungen führen neue Funktionen in WebDAV ein, optimieren die Verarbeitung und beseitigen die Notwendigkeit der Verarbeitung von Sonderfällen.
  • [MS-WDV]: Web Distributed Authoring and Versioning (WebDAV) Protokoll: Client-Erweiterungen. Die Client-Erweiterungen in dieser Spezifikation erweitern das WebDAV-Protokoll durch die Einführung neuer Header, die sowohl Dateitypen ermöglichen, die derzeit nicht verwaltet werden können, als auch die Protokollinteraktionen für Dateisystem-Clients optimieren. Diese Erweiterungen führen keine neue Funktionalität in das WebDAV-Protokoll ein, sondern optimieren die Verarbeitung und beseitigen die Notwendigkeit der Verarbeitung von Sonderfällen.
  • [MS-WDVSE]: Web Distributed Authoring and Versioning (WebDAV) Protokoll: Server-Erweiterungen. Die Server-Erweiterungen in dieser Spezifikation erweitern WebDAV durch die Einführung neuer HTTP-Anfrage- und Antwort-Header, die sowohl die derzeit nicht verwaltbaren Dateitypen ermöglichen als auch die Protokoll-Interaktionen für Dateisystem-Clients optimieren. Diese Spezifikation führt auch eine neue WebDAV-Methode ein, die verwendet wird, um Suchanfragen an verschiedene Suchanbieter zu senden.
  • [MS-WEBDAVE]: Web Distributed Authoring and Versioning Error Extensions Protocol Specification. Dieses SharePoint-Front-End-Protokoll beschreibt erweiterte Fehlercodes und erweiterte Fehlerbehandlungsmechanismen, die in [MS-WDV] spezifiziert sind, um konforme Server in die Lage zu versetzen, Details zu Fehlerbedingungen in einer Serverantwort zu melden.

WebDAV-Klienten

Klient Ersteller Unterstützung von Betriebssystemen Lizenz Schnittstelle
Cyberduck David V. Kocher Windows, OS X GPL GUI
davfs2 GNOME-Team FUSE GPL VFS
davix CERN Windows, Linux, OS X LGPL CLI
GVfs GNOME-Team GNOME GPL VFS
KIO KDE-Team KDE GPL VFS
Konqueror KDE-Team KDE GPL GUI
GNOME-Dateien GNOME-Team GNOME GPL GUI
SmartFTP SmartSoft GmbH Windows Proprietär GUI
WebDrive South River Technologien Windows, OS X, iOS, Droid Proprietär VFS
WinSCP Martin Přikryl Windows GPL CLI und GUI

WebDAV-Bibliotheken

Bibliotheken Ersteller Betriebssystem oder Plattform Lizenz Sprache
Apache Wink Apache-Software-Stiftung JVM Java
Apache Tomcat Apache-Software-Stiftung JVM Java
Apache Jackrabbit Apache-Software-Stiftung JVM ASF Java
sabre/dav fruux Windows, Linux, MacOSX Neues BSD PHP

Alternativen zu WebDAV

  • Das File Transfer Protocol (FTP), ein einfaches und weit verbreitetes Netzwerkprotokoll auf IP-Basis, ermöglicht die Übertragung von Dateien zwischen Netzwerkhosts. FTPS erweitert FTP für sicheren Datenverkehr.
  • SSH File Transfer Protocol (SFTP), eine Erweiterung des Secure-Shell-Protokolls (SSH) Version 2.0, ermöglicht die sichere Übertragung von Dateien; und scp, eine Form von SFTP, die als einzelner Befehl ausgeführt wird, ähnlich wie ein regulärer cp-Befehl (Kopieren) in der Shell.
  • Rsync, ein Protokoll und ein Befehl ähnlich wie scp, der auch das Neuschreiben identischer Dateien und Teile von Dateien oder das Überspringen neuerer Dateien usw. überspringen kann.
  • Ein verteiltes Dateisystem wie das Server Message Block (SMB)-Protokoll ermöglicht Microsoft Windows- und Open-Source-Samba-Clients den Fernzugriff auf und die Verwaltung von Dateien und Ordnern auf einem geeigneten Dateiserver. Wird häufig für das Multimedia-Streaming über Ethernet verwendet und von Smart-TVs weitgehend unterstützt.
  • AtomPub, ein HTTP-basiertes Protokoll zum Erstellen und Aktualisieren von Webressourcen, kann für einige der Anwendungsfälle von WebDAV verwendet werden. Es basiert auf Standard-HTTP-Verben mit standardisierten Sammelressourcen, die sich in etwa wie das WebDAV-Modell für Verzeichnisse verhalten.
  • CMIS, ein Standard, der aus einer Reihe von Webdiensten für den Austausch von Informationen zwischen verschiedenen Inhaltsspeichern besteht, soll die Interoperabilität für Personen und Anwendungen gewährleisten, die mehrere Inhaltsspeicher verwenden; er verfügt über SOAP- und AtomPub-basierte Schnittstellen.
  • Wiki-Software, wie z. B. MediaWiki.
  • Linked Data Platform (LDP), eine Linked-Data-Spezifikation, die eine Reihe von Integrationsmustern für den Aufbau von RESTful-HTTP-Diensten definiert, die in der Lage sind, RDF-Daten zu lesen und zu schreiben.
  • Objektspeicher wie OpenStack Swift oder Amazon S3

Vorteile von WebDAV

Durch die enorme Verbreitung des World Wide Web zählt der von HTTP genutzte Port 80 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) vielfach 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 (inkl. 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.

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 <span title="Aus: Deutsche Wikipedia, Abschnitt &quot;WebDAV und Reverse Proxy&quot;" class="plainlinks">[https://de.wikipedia.org/wiki/WebDAV#WebDAV_und_Reverse_Proxy <span style="color:#dddddd">ⓘ</span>]</span>