Die Ressource liegt vorübergehend unter einer anderen URL.
Wann du ihn verwendest
Kurzzeitige Weiterleitungen. Clients dürfen POST in GET ändern; nimm lieber 303 oder 307, um eindeutig zu sein.
Gut zu wissen
Nimm 302, wenn die ursprüngliche URL zurückkommt: eine vorübergehende Wartungsseite, ein A/B-Test, eine Login-Weiterleitung oder eine Sprachauswahl. Suchmaschinen behalten die ursprüngliche URL im Index, wobei Google eine 302, die monatelang besteht, irgendwann als permanent behandelt. Browser cachen eine 302 nur, wenn Cache-Control oder Expires es vorgeben, was sie zur sicheren Wahl macht, solange du Weiterleitungen noch testest.
Browser machen beim Folgen einer 302 aus historischen Gründen aus einem POST ein GET und verwerfen den Body, und die Spezifikation erlaubt das inzwischen. Wenn die Methode erhalten bleiben muss, nimm 307; nach einem Formularversand nimm 303, um es explizit zu machen. Ein häufiger Bug ist eine Weiterleitungsschleife zwischen http und https oder zwischen www und der nackten Domain, oft verursacht durch einen Proxy oder Cloudflare Flexible SSL. Verfolge die Kette mit curl -IL.
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 302 FoundSo sendest du ihn
| Node.js / Express | res.redirect(302, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=302) |
| nginx | return 302 https://example.com$request_uri; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/