HTTP Status 208 - Already Reported

Der HTTP-Status-Code 208 Already Reported wird in WebDAV-Protokoll verwendet, um zu signalisieren, dass Resource-Members bereits in einem früheren Teil der Multi-Status-Response gelistet wurden. Verhindert Duplikate bei Bindings oder Symlinks in rekursiven PROPFIND-Requests.

Typ

Response-Status-Code

Syntax

Der Status Code erscheint innerhalb von 207 Multi-Status XML Response.

http
HTTP/1.1 207 Multi-Status
[XML mit 208 Already Reported Status]

Direktiven

Der 208 Already Reported Status Code wird innerhalb von WebDAV Multi-Status Responses verwendet.

Binding Protocol
WebDAV Binding Extension (RFC 5842) ermöglicht Multiple URIs für gleiche Resource (ähnlich Symlinks). Bei rekursivem PROPFIND würde Resource mehrfach erscheinen, 208 verhindert Duplikate.
Loop Prevention
Verhindert Infinite Loops bei circular Bindings oder Symlinks. Server erkennt bereits gereportete Resource und sendet 208 statt erneut vollständige Properties.
Response Size Reduction
Reduziert XML Response Size bei großen Directory-Trees mit Bindings. Erste Mention hat vollständige Properties, weitere Mentions nur 208 Status.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 208.

Beispiel 2 Multiple Bindings zur gleichen Resource

http
PROPFIND /collections HTTP/1.1
Host: dav.example.com
Depth: 1

HTTP/1.1 207 Multi-Status
Content-Type: application/xml

<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/collections/original/file.txt</href>
    <propstat>
      <prop>
        <displayname>Important File</displayname>
        <getcontenttype>text/plain</getcontenttype>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
  <response>
    <href>/collections/alias1/file.txt</href>
    <status>HTTP/1.1 208 Already Reported</status>
  </response>
  <response>
    <href>/collections/alias2/file.txt</href>
    <status>HTTP/1.1 208 Already Reported</status>
  </response>
</multistatus>

Beispiel 3 Circular Reference Detection

http
PROPFIND /recursive-folder HTTP/1.1
Host: webdav.example.com
Depth: infinity

HTTP/1.1 207 Multi-Status
Content-Type: application/xml

<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/recursive-folder</href>
    <propstat>
      <prop><resourcetype><collection/></resourcetype></prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
  <response>
    <href>/recursive-folder/subfolder/link-to-parent</href>
    <status>HTTP/1.1 208 Already Reported</status>
  </response>
</multistatus>

WebDAV Binding Already Reported Flow

WebDAV PROPFIND erkennt Binding und sendet 208 Already Reported

Vorteile für die Systemarchitektur

  • Duplicate Prevention: Vermeidet redundante Resource-Daten in Multi-Status Responses bei Bindings/Symlinks. Reduziert XML Response Size bei großen Directory-Trees erheblich.
  • Loop Detection: Verhindert Infinite Loops bei circular Bindings durch Tracking bereits gereporteter Resources. Server kann rekursive PROPFIND sicher durchführen.
  • Bandwidth Optimization: Client erhält vollständige Properties nur einmal pro Resource. Nachfolgende Bindings zu gleicher Resource liefern nur 208 Status, spart Netzwerk-Traffic.

Spezifikation

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

Weitere Spezifikationen

HTTP Status 207 - Multi-Status, HTTP Status 200 - OK