1. Einführung (Introduction)
Dieses Dokument beschreibt eine Erweiterung des HTTP/1.1-Protokolls, die es Clients ermöglicht, remote Web-Content-Authoring-Operationen durchzuführen. Diese Erweiterung bietet eine kohärente Menge von Methoden, Headern, Request-Entity-Body-Formaten und Response-Entity-Body-Formaten, die Operationen für Folgendes bereitstellen:
Eigenschaften (Properties): Die Fähigkeit, Informationen über Webseiten zu erstellen, zu entfernen und abzufragen, wie z.B. ihre Autoren, Erstellungsdaten usw.
Sammlungen (Collections): Die Fähigkeit, Dokumentenmengen zu erstellen und eine hierarchische Mitgliedschaftsliste abzurufen (wie eine Verzeichnisliste in einem Dateisystem).
Sperren (Locking): Die Fähigkeit zu verhindern, dass mehrere Personen gleichzeitig an einem Dokument arbeiten. Dies verhindert das „Problem des verlorenen Updates (Lost Update Problem)", bei dem Änderungen verloren gehen, wenn zuerst ein Autor und dann ein anderer Änderungen schreibt, ohne die Änderungen des anderen Autors zu fusionieren.
Namespace-Operationen (Namespace Operations): Die Fähigkeit, den Server anzuweisen, Web-Ressourcen zu kopieren und zu verschieben, Operationen, die die Zuordnung von URLs zu Ressourcen ändern.
Die Anforderungen und die Begründung für diese Operationen werden in einem Begleitdokument beschrieben, „Anforderungen für ein Protokoll für verteiltes Authoring und Versionierung für das World Wide Web (Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web)" [RFC2291].
Dieses Dokument spezifiziert nicht die von [RFC2291] vorgeschlagenen Versionierungsoperationen. Diese Arbeit wurde in einem separaten Dokument durchgeführt, „Versionierungserweiterungen für WebDAV (Versioning Extensions to WebDAV)" [RFC3253].
Die folgenden Abschnitte bieten eine detaillierte Einführung in verschiedene WebDAV-Abstraktionen: Ressourceneigenschaften (Resource Properties, Abschnitt 4), Ressourcensammlungen (Collections of Resources, Abschnitt 5), Sperren (Locks, Abschnitt 6) im Allgemeinen und Schreibsperren (Write Locks, Abschnitt 7) im Besonderen.
Diese Abstraktionen werden durch die WebDAV-spezifischen HTTP-Methoden (Abschnitt 9) und die zusätzlichen HTTP-Header (Abschnitt 10), die mit WebDAV-Methoden verwendet werden, manipuliert. Allgemeine Überlegungen zur Behandlung von HTTP-Anfragen und -Antworten in WebDAV finden sich in Abschnitt 8.
Während die von HTTP/1.1 bereitgestellten Statuscodes ausreichen, um die meisten Fehlerbedingungen zu beschreiben, die bei WebDAV-Methoden auftreten, gibt es einige Fehler, die nicht gut in die bestehenden Kategorien passen. Diese Spezifikation definiert zusätzliche Statuscodes, die für WebDAV-Methoden entwickelt wurden (Abschnitt 11), und beschreibt bestehende HTTP-Statuscodes (Abschnitt 12), wie sie in WebDAV verwendet werden. Da einige WebDAV-Methoden über viele Ressourcen hinweg operieren können, wurde die Multi-Status-Antwort (Multi-Status Response, Abschnitt 13) eingeführt, um Statusinformationen für mehrere Ressourcen zurückzugeben. Schließlich führt diese Version von WebDAV Vorbedingung- und Nachbedingung-XML-Elemente (Precondition/Postcondition, Abschnitt 16) in Fehlerantwortkörpern ein.
WebDAV verwendet XML ([REC-XML]) für Eigenschaftsnamen und einige Werte und verwendet auch XML zum Marshalling komplexer Anfragen und Antworten. Diese Spezifikation enthält DTD- und Textdefinitionen aller Eigenschaften (Abschnitt 15) und aller anderen XML-Elemente (Abschnitt 14), die beim Marshalling verwendet werden. WebDAV enthält einige spezielle Regeln zur Erweiterung des WebDAV-XML-Marshallings auf rückwärtskompatible Weise (Abschnitt 17).
Den Abschluss der Spezifikation bilden Abschnitte darüber, was es für eine Ressource bedeutet, mit dieser Spezifikation konform zu sein (Abschnitt 18), über Internationalisierungsunterstützung (Abschnitt 19) und über Sicherheit (Abschnitt 20).