303 See Other
Verwendung
Der Statuscode 303 See Other wird typischerweise nach einer POST-, PUT- oder DELETE-Anfrage zurückgegeben. Das Ergebnis der Operation lässt sich unter einer anderen URL einsehen, und der Client ruft die neue Ressource mit einer GET-Anfrage an die angegebene Location ab.
Hinweis
Viele Server senden historisch bedingt 302, wenn sie 303 meinen, und viele Clients behandeln 302 wie 303, indem sie die Anfragemethode auf GET ändern.
SEO-Auswirkung
Google stuft 303 neben 302 und 307 als temporäre Weiterleitung ein. Der Googlebot folgt der Weiterleitung, behandelt 303 jedoch als schwaches Signal dafür, dass das Ziel die bevorzugte URL ist.
Beispiel
Der Client fordert die Löschung einer bestimmten Ressource an. Der Server sendet 303 See Other, weil der ursprüngliche Ort keine anzeigbare Ressource mehr enthält, und verweist auf eine Bestätigungsseite unter der neuen Location.
Anfrage
DELETE /tasks/314 HTTP/1.1
Host: example.com
Antwort
HTTP/1.1 303 See Other
Location: http://example.com/confirmation/delete.html
303 im Vergleich zu 307
Sowohl 303 als auch 307 sind temporäre Weiterleitungen, doch die Behandlung der Methode unterscheidet sich. Eine 303-Antwort ändert die Anfragemethode unabhängig von der ursprünglichen Methode zu GET (oder HEAD). Eine 307-Antwort bewahrt die ursprüngliche Methode und den Body. Verwenden Sie 303 nach einem POST, wenn der Client eine Ergebnisseite abrufen soll. Verwenden Sie 307, wenn genau dieselbe Anfrage am neuen Ort wiederholt werden muss.
Code-Referenzen
.NET
HttpStatusCode.SeeOther
Rust
http::StatusCode::SEE_OTHER
Rails
:see_other
Go
http.StatusSeeOther
Symfony
Response::HTTP_SEE_OTHER
Python3.5+
http.HTTPStatus.SEE_OTHER
Java
java.net.HttpURLConnection.HTTP_SEE_OTHER
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_SEE_OTHER
Angular
@angular/common/http/HttpStatusCode.SeeOther