Appendix D. Lock-null Resources (Lock-null-Ressourcen)
Anhang D. Lock-null Resources (Lock-null-Ressourcen)
Das ursprüngliche WebDAV-Modell zum Sperren nicht zugeordneter URLs erstellte "Lock-null-Ressourcen". Dieses Modell war zu kompliziert und es wurden einige Interoperabilitäts- und Implementierungsprobleme entdeckt. Das neue WebDAV-Modell zum Sperren nicht zugeordneter URLs (siehe Abschnitt 7.3) erstellt "gesperrte leere Ressourcen". Lock-null-Ressourcen sind veraltet. Dieser Abschnitt behandelt das ursprüngliche Modell kurz, da Clients in der Lage sein MÜSSEN, beide Modelle zu handhaben.
Im ursprünglichen "Lock-null-Ressourcen"-Modell, das nicht mehr zur Implementierung empfohlen wird:
-
Eine Lock-null-Ressource erschien manchmal als "Not Found". Der Server antwortet mit 404 oder 405 auf jede Methode außer PUT, MKCOL, OPTIONS, PROPFIND, LOCK, UNLOCK.
-
Eine Lock-null-Ressource erscheint jedoch als Mitglied ihrer übergeordneten Sammlung.
-
Der Server entfernt die Lock-null-Ressource vollständig (ihre URI wird nicht zugeordnet), wenn ihre Sperre verschwindet, bevor sie in eine reguläre Ressource umgewandelt wird. Denken Sie daran, dass Sperren nicht nur verschwinden, wenn sie ablaufen oder entsperrt werden, sondern auch entfernt werden, wenn eine Ressource umbenannt oder verschoben wird oder wenn eine übergeordnete Sammlung umbenannt oder verschoben wird.
-
Der Server wandelt die Lock-null-Ressource in eine reguläre Ressource um, wenn eine PUT-Anfrage an die URL erfolgreich ist.
-
Der Server wandelt die Lock-null-Ressource in eine Sammlung um, wenn eine MKCOL-Anfrage an die URL erfolgreich ist (obwohl Interoperabilitätserfahrungen zeigten, dass nicht alle Server dieser Anforderung folgten).
-
Eigenschaftswerte wurden für DAV:lockdiscovery- und DAV:supportedlock-Eigenschaften definiert, aber nicht unbedingt für andere Eigenschaften wie DAV:getcontenttype.
Clients können sowohl mit Servern, die das alte Modell "Lock-null-Ressourcen" unterstützen, als auch mit dem empfohlenen Modell "gesperrte leere Ressourcen" problemlos interoperieren, indem sie nach einem LOCK auf eine nicht zugeordnete URL nur PUT versuchen, nicht MKCOL oder GET.
D.1. Guidance for Clients Using LOCK to Create Resources (Anleitung für Clients, die LOCK zum Erstellen von Ressourcen verwenden)
Ein gemäß dieser Spezifikation implementierter WebDAV-Client kann Server finden, die Lock-null-Ressourcen erstellen (vor dieser Spezifikation unter Verwendung von [RFC2518] implementiert), sowie Server, die gesperrte leere Ressourcen erstellen. Die Antwort auf die LOCK-Anfrage zeigt nicht an, welche Art von Ressource erstellt wurde. Es gibt einige Techniken, die dem Client helfen, mit beiden Typen umzugehen.
-
Wenn der Client versehentlich das Erstellen von Lock-null- oder leeren gesperrten Ressourcen vermeiden möchte, kann ein "If-Match: *"-Header mit LOCK-Anfragen eingefügt werden, um zu verhindern, dass der Server eine neue Ressource erstellt.
-
Wenn eine LOCK-Anfrage eine Ressource erstellt und der Client diese Ressource anschließend mit einer COPY- oder MOVE-Anfrage überschreiben möchte, sollte der Client einen "Overwrite: T"-Header einfügen.
-
Wenn eine LOCK-Anfrage eine Ressource erstellt und der Client sich dann entscheidet, diese Ressource loszuwerden, soll eine DELETE-Anfrage bei einer Lock-null-Ressource fehlschlagen und stattdessen UNLOCK verwendet werden. Aber bei einer gesperrten leeren Ressource lässt UNLOCK die Ressource nicht verschwinden. Daher muss der Client möglicherweise beide Anfragen versuchen und einen Fehler in einer der beiden Anfragen ignorieren.