Hol das Ergebnis per GET von einer anderen URL.
Wann du ihn verwendest
Weiterleitung nach einem Formular-POST, damit ein Neuladen es nicht erneut absendet.
Gut zu wissen
303 ist der richtige Code für Post/Redirect/Get: Leite nach einem Formular-POST mit 303 auf eine Ergebnisseite weiter, damit der Browser sie per GET lädt und ein Neuladen oder der Zurück-Button das Formular nicht erneut absendet. Anders als bei 302 garantiert die Spezifikation den Wechsel zu GET bei jeder ursprünglichen Methode, auch bei PUT und DELETE, und der Request-Body wird verworfen.
Suchmaschinen behandeln 303 wie eine temporäre Weiterleitung, aber er taucht selten auf crawlbaren URLs auf. Er wird nicht gecacht, sofern Header nichts anderes sagen. In APIs kann 303 einen Client von einem fertigen asynchronen Job zu dessen Ergebnis schicken. fetch folgt ihm im Standard-Redirect-Modus automatisch; response.redirected verrät dir, dass eine Weiterleitung stattgefunden hat, und response.url liefert die finale Adresse nach dem GET.
Weiterleitung (3xx)
3xx-Codes sind Weiterleitungen: Der Client muss woandershin oder seine zwischengespeicherte Kopie verwenden, um die Anfrage abzuschließen.
So sieht es aus
HTTP/1.1 303 See OtherSo sendest du ihn
| Node.js / Express | res.redirect(303, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=303) |
| nginx | return 303 https://example.com$request_uri; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/