HTTPQUERY
Français

208 Already Reported

Utilisation

Lorsqu’un client reçoit un 208 Already Reported à l’intérieur d’un corps 207 multi-status, c’est que la ressource a déjà été décrite plus haut dans la même réponse. Aucun détail supplémentaire n’est fourni pour l’entrée dupliquée.

Ce code de statut existe spécifiquement pour les WebDAV Binding Extensions. Une ressource liée à plusieurs emplacements au sein de la même collection apparaît une fois en intégralité et une fois sous la forme d’un 208 Already Reported, ce qui rompt la récursion potentielle lorsqu’une requête Depth: infinity rencontre une ressource qui se référence elle-même.

WebDAV uniquement

Le code de statut 208 Already Reported apparaît exclusivement à l’intérieur des corps de réponse 207 multi-status. Un serveur n’envoie jamais un 208 comme statut HTTP de réponse de premier niveau.

Exemple

Le client envoie une requête PROPFIND avec Depth: infinity afin d’énumérer la collection /main/. La ressource /main/dependent est liée à la même ressource sous-jacente que /main/ elle-même.

Le serveur renvoie d’abord les détails complets de /main/, puis renvoie 208 Already Reported pour /main/dependent afin de rompre la boucle récursive.

Requête

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>

Réponse

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>

Références de code

.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