HTTP Status 423 - Locked

Der HTTP-Status-Code 423 Locked signalisiert, dass angeforderte Resource durch einen WebDAV-Lock gesperrt ist. Client kann Resource nicht modifizieren bis Lock aufgehoben oder expired ist. Typisch bei Collaborative-Editing-Systemen, Document-Management und Shared-File-Access. Verhindert Concurrent-Modification-Conflicts.

Typ

Response-Status-Code

Syntax

Der Status Code wird zurückgegeben bei Zugriff auf gesperrte WebDAV-Resource.

http
HTTP/1.1 423 Locked

Direktiven

Der 423 Locked Status Code wird für WebDAV-Lock-Conflicts verwendet.

WebDAV Exclusive Lock
Resource ist durch exclusive Lock gesperrt. Nur Lock-Owner kann Resource modifizieren. Andere Clients müssen warten bis Lock aufgehoben oder Timeout erreicht ist.
Lock-Token Required
Um gesperrte Resource zu modifizieren, muss Client gültigen Lock-Token im If-Header senden. Ohne korrekten Token wird Request mit 423 abgelehnt.
Concurrent Edit Prevention
Lock verhindert dass mehrere Users gleichzeitig dieselbe Resource modifizieren (Lost-Update-Problem). Client muss Lock acquiren bevor Modifications durchgeführt werden können.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 423.

Beispiel 1 Document Edit Attempt on Locked Resource

http
PUT /documents/report.docx HTTP/1.1
Host: dav.example.com
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document

[document content]

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

<?xml version="1.0" encoding="utf-8" ?>
<D:error xmlns:D="DAV:">
  <D:lock-token-submitted>
    <D:href>/documents/report.docx</D:href>
  </D:lock-token-submitted>
  <D:locked-by>alice@example.com</D:locked-by>
  <D:lock-expires>2025-10-01T18:00:00Z</D:lock-expires>
</D:error>

Beispiel 2 Delete Blocked by Shared Lock

http
DELETE /files/project/design.pdf HTTP/1.1
Host: webdav.example.com

HTTP/1.1 423 Locked
Content-Type: application/json

{
  "error": "resource_locked",
  "message": "Cannot delete locked resource",
  "locked_by": "bob@example.com",
  "lock_token": "opaquelocktoken:e71d4fae-5dec-22d6-fea5-00a0c91e6be4",
  "lock_expires_at": "2025-10-01T17:30:00Z"
}

Beispiel 3 Modify with Invalid Lock Token

http
PROPPATCH /calendar/meeting.ics HTTP/1.1
Host: caldav.example.com
If: (<opaquelocktoken:invalid-token>)
Content-Type: application/xml

<?xml version="1.0"?>
<D:propertyupdate xmlns:D="DAV:">
  <D:set><D:prop><D:displayname>Team Meeting</D:displayname></D:prop></D:set>
</D:propertyupdate>

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

<?xml version="1.0" encoding="utf-8" ?>
<D:error xmlns:D="DAV:">
  <D:lock-token-matches-request-uri/>
</D:error>

WebDAV Lock Conflict Flow

423 Locked verhindert Concurrent-Modification bei WebDAV-Resource

Vorteile für die Systemarchitektur

  • Concurrency Control: 423 verhindert Lost-Update-Problem bei Collaborative-Editing. Multiple Users können nicht gleichzeitig Resource überschreiben, Änderungen gehen nicht verloren.
  • Explicit Lock Feedback: Client erfährt sofort dass Resource gesperrt ist, wer Lock hält und wann Lock expires. Kann User informieren oder automatisches Retry mit Backoff implementieren.
  • Transactional Consistency: Lock-Mechanismus ermöglicht atomare Multi-Step-Operations. Client kann mehrere Änderungen durchführen ohne dass andere Clients dazwischen modifizieren.

Spezifikation

RFC 4918, Section 11.3 – HTTP Extensions for WebDAV https://www.rfc-editor.org/rfc/rfc4918.html#section-11.3

Weitere Spezifikationen

HTTP Status 409 - Conflict, PUT Method