HTTP Status 508 - Loop Detected

Der HTTP-Status-Code 508 Loop Detected signalisiert, dass Server während WebDAV-Request-Processing eine infinite Loop oder circular Reference detected hat. Typisch bei recursive COPY- oder MOVE-Operations mit Depth: infinity wo Destination innerhalb von Source liegt. Server bricht Operation ab um endless Processing zu verhindern.

Typ

Response-Status-Code

Syntax

Der Status Code wird zurückgegeben bei detected infinite Loop in WebDAV-Operations.

http
HTTP/1.1 508 Loop Detected

Direktiven

Der 508 Loop Detected Status Code wird bei WebDAV-Circular-Reference-Detection verwendet.

Infinite Recursion Prevention
Server detected dass recursive WebDAV-Operation (COPY, MOVE with Depth:infinity) zu infinite Loop führen würde. Z.B. Copy-Collection in eigene Subcollection. Server bricht Operation ab.
Circular Reference Detection
WebDAV-Resource-Struktur enthält circular Symbolic-Link oder Binding. Server kann Operation nicht durchführen weil Traversal-Algorithm stuck in Loop wäre. Verhindert Server-Hang.
Depth Infinity Protection
Operations mit Depth: infinity können problematic sein bei circular Structures. 508 schützt Server vor Exhaustion durch endless Traversal. Client muss Resource-Structure korrigieren oder Depth limitieren.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 508.

Beispiel 1 Copy Collection into Itself

http
COPY /documents/project-a HTTP/1.1
Host: dav.example.com
Destination: /documents/project-a/backup
Depth: infinity

HTTP/1.1 508 Loop Detected
Content-Type: application/xml

<?xml version="1.0" encoding="utf-8" ?>
<D:error xmlns:D="DAV:">
  <D:loop-detected>
    <D:description>Cannot copy collection into itself</D:description>
    <D:source>/documents/project-a</D:source>
    <D:destination>/documents/project-a/backup</D:destination>
    <D:reason>Destination is descendant of source - would create infinite loop</D:reason>
  </D:loop-detected>
</D:error>

Beispiel 3 Move Operation with Nested Destination

http
MOVE /workspace/project HTTP/1.1
Host: dav.example.com
Destination: /workspace/project/archive/project
Depth: infinity

HTTP/1.1 508 Loop Detected
Content-Type: application/json

{
  "status": 508,
  "error": "loop_detected",
  "message": "Infinite loop would occur during move operation",
  "details": "Cannot move collection to location within itself",
  "source": "/workspace/project",
  "destination": "/workspace/project/archive/project",
  "recommendation": "Choose destination outside of source hierarchy"
}

WebDAV Loop Detection Flow

508 Loop Detected verhindert infinite Recursion bei WebDAV-COPY

Vorteile für die Systemarchitektur

  • Server Protection: 508 verhindert Server-Hang durch infinite Loop-Processing. Server detected problematic Operation early und bricht ab bevor Resources exhausted werden.
  • Resource Structure Integrity: 508 hilft circular References in WebDAV-Hierarchies zu identifizieren. Operations-Teams können problematic Symbolic-Links oder Bindings korrigieren.
  • Clear Error Feedback: Client erfährt explizit dass Operation zu Loop führen würde. Error-Message kann Source/Destination-Paths enthalten, hilft Client-Side-Fix zu implementieren.

Spezifikation

RFC 5842, Section 7.2 – Binding Extensions to WebDAV https://www.rfc-editor.org/rfc/rfc5842.html#section-7.2

Weitere Spezifikationen

Forwarded Header, Via Header