HTTPQUERY
Deutsch

202 Accepted

Verwendung

Der Statuscode 202 Accepted dient als Empfangsbestätigung: Der Server hat die Anfrage erhalten und beabsichtigt, die Einreichung zu verarbeiten. In der Praxis bedeutet das, dass der Server das Format der Anfrage validiert und die Arbeit in eine interne Warteschlange eingereiht hat. Die eingereihte Aufgabe ist oft ein lang laufender Prozess oder Teil eines Stapelvorgangs.

Es gibt keinen Mechanismus, mit dem der Server später eine Antwort mit dem endgültigen Ergebnis senden könnte. Der Client ist dafür verantwortlich, regelmäßig abzufragen, sofern der Server einen Status-Endpunkt bereitstellt.

SEO-Auswirkung

Googlebot wartet bei einer 202-Antwort kurz auf Inhalte. Inhalte, die innerhalb der Wartezeit eintreffen, werden an die Indexierungs-Pipeline weitergereicht, eine Indexierung ist jedoch nicht garantiert.

Sobald eine Erfolgsantwort 200 eintrifft, endet das Abfragen. Weitere gültige Ergebnisse sind 201, wenn eine neue Ressource erstellt wurde und unter der URI im Location-Header verfügbar ist, oder 204, wenn der Auftrag abgeschlossen wurde und es keinen Inhalt zurückzugeben gibt.

Beispiel

Der Client sendet per POST XML-Daten, die einen Auftrag definieren. Der Server bestätigt die Einreichung. Mit nachfolgenden Anfragen prüft der Client, ob die Arbeit abgeschlossen ist. Schließlich signalisiert der Server die Fertigstellung.

Anfrage

POST /job HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 68

<?xml version="1.0"?>
<job>
  <id>125</id>
  <task>G01</task>
</job>

Antwort

HTTP/1.1 202 Accepted
Link: </job/status/125>; rel="http://example.re/job-status"
Content-Length: 0

Statusanfrage 1

GET /job-status/125 HTTP/1.1
Host: example.com

Antwort

HTTP/1.1 202 Accepted
Content-Length: 0

Statusanfrage 2

GET /job-status/125 HTTP/1.1
Host: example.com

Antwort

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18

{"success":"true"}

Nachdem der Statuscode 200 eingetroffen ist, beendet der Client das Abfragen und verarbeitet das Ergebnis.

Antwortbody bei einem 202

Eine 202 Accepted-Antwort darf einen Nachrichtenbody enthalten. Der Body enthält typischerweise den aktuellen Status der Anfrage, einen Link zu einem Endpunkt zur Statusüberwachung oder eine Schätzung, wann der Vorgang abgeschlossen sein wird. Anders als bei 201, das auf die erstellte Ressource verweist, beschreibt ein 202-Body den ausstehenden Vorgang selbst.

202 im Vergleich zu 201

Eine 201-Antwort bestätigt, dass eine Ressource erstellt wurde und sofort verfügbar ist. Eine 202-Antwort bestätigt, dass die Anfrage empfangen wurde, die Verarbeitung aber noch nicht abgeschlossen ist. Verwenden Sie 201, wenn die Ressource zum Zeitpunkt der Antwort existiert. Verwenden Sie 202, wenn die Arbeit in die Warteschlange gestellt wurde oder asynchron abläuft und das endgültige Ergebnis noch nicht bekannt ist.

Code-Referenzen

.NET

HttpStatusCode.Accepted

Rust

http::StatusCode::ACCEPTED

Rails

:accepted

Go

http.StatusAccepted

Symfony

Response::HTTP_ACCEPTED

Python3.5+

http.HTTPStatus.ACCEPTED

Java

java.net.HttpURLConnection.HTTP_ACCEPTED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_ACCEPTED

Angular

@angular/common/http/HttpStatusCode.Accepted