HTTP Status 207 - Multi-Status

Der HTTP-Status-Code 207 Multi-Status wird in WebDAV-Protokoll verwendet, um multiple Status Codes für verschiedene Resources in einer einzigen Response zu übermitteln. Der Response Body enthält XML mit Status-Information für jede betroffene Resource bei Batch-Operations.

Typ

Response-Status-Code

Syntax

Der Status Code wird mit XML Response Body zurückgegeben, der multiple Status Codes enthält.

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

Direktiven

Der 207 Multi-Status Status Code wird für WebDAV Batch-Operations verwendet.

WebDAV Operations
Primär für WebDAV-Methoden wie PROPFIND (Property Discovery), PROPPATCH (Property Update), COPY, MOVE mit Depth Header. Response enthält Status für jede betroffene Resource.
XML Response Body
Body muss XML mit multistatus Root-Element enthalten. Jede Resource hat response Element mit href (URI) und status oder propstat (Property-spezifischer Status).
Mixed Success/Failure
Ermöglicht partial Success bei Batch-Operations. Einige Resources können Success (200), andere Failure (403, 404) haben. Client kann pro Resource Ergebnis verarbeiten.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 207.

Beispiel 1 PROPFIND für Directory Listing

http
PROPFIND /documents HTTP/1.1
Host: webdav.example.com
Depth: 1

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

<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/documents/file1.txt</href>
    <propstat>
      <prop><displayname>File 1</displayname></prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
  <response>
    <href>/documents/file2.txt</href>
    <propstat>
      <status>HTTP/1.1 403 Forbidden</status>
    </propstat>
  </response>
</multistatus>

Beispiel 2 Batch DELETE mit Partial Success

http
DELETE /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>/folder/doc1.pdf</href>
    <status>HTTP/1.1 204 No Content</status>
  </response>
  <response>
    <href>/folder/doc2.pdf</href>
    <status>HTTP/1.1 423 Locked</status>
  </response>
  <response>
    <href>/folder/doc3.pdf</href>
    <status>HTTP/1.1 204 No Content</status>
  </response>
</multistatus>

Beispiel 3 PROPPATCH Update Properties

http
PROPPATCH /documents/report.pdf HTTP/1.1
Host: webdav.example.com
Content-Type: application/xml

<propertyupdate xmlns="DAV:">
  <set><prop><author>Alice</author></prop></set>
</propertyupdate>

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

<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/documents/report.pdf</href>
    <propstat>
      <prop><author/></prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

WebDAV Batch Operation Flow

WebDAV PROPFIND mit 207 Multi-Status Response für multiple Files

Vorteile für die Systemarchitektur

  • Atomic Batch Operations: Eine Request kann multiple Resources bearbeiten, Response liefert Status pro Resource. Vermeidet N Requests für N Resources, reduziert Latency und Server-Load.
  • Partial Success Handling: Client erfährt genau, welche Operations erfolgreich waren und welche fehlschlugen. Ermöglicht Retry nur für Failed Resources statt kompletter Batch.
  • WebDAV Compatibility: Essential für WebDAV-Clients (File-Manager, Backup-Tools). Ermöglicht Recursive Operations (COPY/DELETE mit Depth: infinity) mit granularem Fehler-Reporting.

Spezifikation

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

Weitere Spezifikationen

HTTP Status 200 - OK, POST Method