Wiederhole dieselbe Anfrage an einer anderen URL.
Wann du ihn verwendest
Temporäre Weiterleitung, die Methode und Body beibehalten muss.
Gut zu wissen
307 garantiert, dass der Client dieselbe Methode und denselben Body an der neuen URL wiederholt, ein POST bleibt also ein POST. Damit eignet er sich für vorübergehend verschobene API-Endpunkte. In den Chrome DevTools siehst du außerdem ein „internes“ 307, wenn HSTS aktiv ist: Der Browser stuft http:// selbst auf https:// hoch, ohne den Server zu kontaktieren, und kennzeichnet das mit Non-Authoritative Reason: HSTS.
Suchmaschinen behandeln 307 wie 302 als temporär, und Browser cachen ihn ohne explizite Header nicht. Bodys müssen erneut sendbar sein: fetch mit einem streamenden ReadableStream-Body kann einer 307 nicht folgen und schlägt fehl. Browser und curl entfernen den Authorization-Header, wenn eine Weiterleitung auf einen anderen Host wechselt; curl behält ihn nur mit --location-trusted. Mit curl -L folgst du ihm, und die Methode bleibt automatisch erhalten.
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 307 Temporary RedirectSo sendest du ihn
| Node.js / Express | res.redirect(307, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=307) |
| nginx | return 307 https://example.com$request_uri; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/