HTTPQUERY
Deutsch

423 Locked

Verwendung

Der Fehler 423 Locked ist Teil von Webdav, das als Dateisystem über HTTP dient. Clients haben die Möglichkeit, Dateien mit LOCK zu sperren oder mit UNLOCK zu entsperren; versucht ein Client, eine gesperrte Ressource zu verändern, gibt der Server diesen Fehler zurück.

Wenn ein Server eine Sperre erstmals gewährt, wird der Antwort-Header Lock-Token an den Client gesendet, der ihn später verwenden kann, um die Ressource zu entsperren oder die Sperre zu erneuern.

Als Teil der Antwort fügt der Server einen passenden Precondition- oder Postcondition-Code bei, um den Client zu leiten. Das kann lock-token-submitted oder no-conflicting-lock sein.

Außerhalb von Webdav nutzen einige Plattformen 423 zweckentfremdet, um Sperrungen auf Kontoebene zu signalisieren. Die Shopify-API gibt 423 Locked zurück, wenn ein Shop wegen wiederholter Verstöße gegen API-Ratenbegrenzungen oder wegen eines offenen Kontosaldos gesperrt ist. Der Shop-Inhaber muss das Problem über das Shopify-Partner-Dashboard klären, bevor der API-Zugriff wiederhergestellt wird. Diese Verwendung hat nichts mit Dateisperren zu tun.

SEO-Auswirkung

Suchmaschinen wie Google indexieren eine URL mit dem Antwortstatus 423 Locked nicht. Zuvor indexierte URLs, die diesen Statuscode zurückgeben, werden aus den Suchergebnissen entfernt.

Beispiel

Der Client versucht, eine Datei in den Zielordner hochzuladen. Der Ordner ist gesperrt, sodass die Operation nicht zulässig ist und der Fehler 423 Locked zurückgegeben wird. In der nachfolgenden Anfrage bittet der Client darum, die Ressource zu entsperren, indem er das Lock-Token als Teil des If-Anfrage-Headers mitsendet.

Die Anfrage ist erfolgreich, weil zu diesem Zeitpunkt nur eine einzige Sperre auf dem Ordner lag. Ein erfolgreiches UNLOCK bedeutet lediglich, dass die durch das angegebene Lock-Token bezeichnete Sperre aufgehoben wurde. Andere Sperren bleiben weiterhin in Kraft und führen erneut zu 423 Locked.

Ursprüngliche Anfrage

PUT /documents/ HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000

<PDF file transferred>

Ursprüngliche Antwort

HTTP/1.1 423 Locked
Content-Type: application/xml
Content-Length: 163

<?xml version="1.0" encoding="utf-8" ?>
<d:error xmlns:d="DAV:">
  <d:lock-token-submitted>
    <d:href>/documents/</d:href>
  </d:lock-token-submitted>
</d:error>

Zweite Anfrage mit eingebundener Entsperranforderung

PUT /documents/ HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000
If: (<urn:uuid:123…789>)

<PDF file transferred>

Abschließende Antwort

HTTP/1.1 204 No Content

Behebung

Prüfen Sie den Antwortrumpf auf den Precondition-Code. Ein lock-token-submitted-Fehler bedeutet, dass der Anfrage das erforderliche Lock-Token fehlte. Ein no-conflicting-lock-Fehler bedeutet, dass eine andere Sperre den Zugriff verhindert.

Gehört die Sperre zur selben Client-Sitzung, fügen Sie den Lock-Token-Wert in einem If-Anfrage-Header hinzu und senden Sie die Anfrage erneut. Der Server validiert das Token und lässt die Änderung zu.

Hält ein anderer Benutzer oder Prozess die Sperre, warten Sie, bis die Sperre abläuft, oder wenden Sie sich an den Sperrinhaber. Sperr-Timeouts sind auf dem Webdav-Server konfigurierbar. Prüfen Sie den Wert des Timeout-Headers, der beim ursprünglichen Gewähren der Sperre zurückgegeben wurde, um zu ermitteln, wie lange die Sperre bestehen bleibt.

In SharePoint- und Office-Online-Umgebungen bleiben Dateien, die von Desktop-Anwendungen gesperrt wurden, gesperrt, bis die Anwendung geschlossen wird oder ein konfigurierbares Timeout abläuft. Ein Administrator gibt veraltete Sperren über die SharePoint-Verwaltungsoberfläche frei.

Senden Sie eine UNLOCK-Anfrage mit dem passenden Lock-Token, um eine Sperre ausdrücklich aufzuheben. Ein erfolgreiches Entsperren hebt nur die angegebene Sperre auf. Andere Sperren auf derselben Ressource bleiben aktiv und lösen diesen Fehler weiterhin aus.

Setzen Sie auf der Serverseite sinnvolle Sperr-Timeouts, damit verwaiste Sperren andere Clients nicht unbegrenzt blockieren. Die WebDAV-Spezifikation empfiehlt, dass Server Timeout-Grenzen durchsetzen, statt unbegrenzte Sperren zu gewähren.

Für Nutzer der Shopify-API bedeutet eine 423, dass der Shop selbst gesperrt ist. Begleichen Sie offene Salden über das Partner-Dashboard oder wenden Sie sich an den Shopify-Support, um den API-Zugriff wiederherzustellen.

Code-Referenzen

.NET

HttpStatusCode.Locked

Rust

http::StatusCode::LOCKED

Rails

:locked

Go

http.StatusLocked

Symfony

Response::HTTP_LOCKED

Python3.5+

http.HTTPStatus.LOCKED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_LOCKED

Angular

@angular/common/http/HttpStatusCode.Locked