HTTPQUERY
Deutsch

208 Already Reported

Verwendung

Erhält ein Client innerhalb eines 207-Multi-Status-Bodys ein 208 Already Reported, wurde die Ressource bereits weiter oben in derselben Antwort beschrieben. Für den doppelten Eintrag werden keine zusätzlichen Details geliefert.

Dieser Statuscode existiert eigens für die WebDAV Binding Extensions. Eine Ressource, die an mehrere Orte innerhalb derselben Sammlung gebunden ist, erscheint einmal vollständig und einmal als 208 Already Reported. Das durchbricht eine mögliche Rekursion, wenn eine Anfrage mit Depth: infinity auf eine Ressource trifft, die sich selbst referenziert.

Nur WebDAV

Der Statuscode 208 Already Reported erscheint ausschließlich innerhalb von 207-Multi-Status-Antwortbodys. Ein Server sendet 208 niemals als HTTP-Antwortstatus auf oberster Ebene.

Beispiel

Der Client sendet eine PROPFIND-Anfrage mit Depth: infinity, um die Sammlung /main/ aufzuzählen. Die Ressource /main/dependent ist an dieselbe zugrunde liegende Ressource gebunden wie /main/ selbst.

Der Server gibt zunächst die vollständigen Details für /main/ zurück und anschließend für /main/dependent ein 208 Already Reported, um die rekursive Schleife zu durchbrechen.

Anfrage

PROPFIND /main/ HTTP/1.1
Host: example.com
Depth: infinity
DAV: bind
Content-Type: application/xml; charset="utf-8"
Content-Length: 139

<?xml version="1.0" encoding="utf-8" ?>
<d:propfind xmlns:d="DAV:">
  <d:prop>
    <d:name/>
    <d:link/>
  </d:prop>
</d:propfind>

Antwort

HTTP/1.1 207 Multi-Status
Content-Type: application/xml; charset="utf-8"
Content-Length: 568

<?xml version="1.0" encoding="utf-8" ?>
<d:multistatus xmlns:d="DAV:">
  <d:response>
    <d:href>http://example.re/main/</d:href>
    <d:propstat>
      <d:prop>
        <d:name>Main Resource</d:name>
        <d:resource-id>
          <href>urn:uuid:1234-0000</href>
        </d:resource-id>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  <d:response>
    <d:href>
      http://example.re/main/dependent
    </d:href>
    <d:propstat>
      <d:prop>
        <d:name>Main Resource</d:name>
        <d:resource-id>
          <href>urn:uuid:1234-0000</href>
        </d:resource-id>
      </d:prop>
      <d:status>
        HTTP/1.1 208 Already Reported
      </d:status>
    </d:propstat>
  </d:response>
</d:multistatus>

Code-Referenzen

.NET

HttpStatusCode.AlreadyReported

Rust

http::StatusCode::ALREADY_REPORTED

Rails

:already_reported

Go

http.StatusAlreadyReported

Symfony

Response::HTTP_ALREADY_REPORTED

Python3.5+

http.HTTPStatus.ALREADY_REPORTED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_ALREADY_REPORTED

Angular

@angular/common/http/HttpStatusCode.AlreadyReported