HTTP 307 Temporary Redirect

Eine strikte temporäre Weiterleitung: Gehe zur anderen URL und wiederhole den Request exakt so, wie du ihn gesendet hast.

Was HTTP 307 bedeutet

HTTP 307 Temporary Redirect funktioniert wie 302 mit einer zusätzlichen Garantie: Der Client muss den Request an die neue URL mit derselben Methode und demselben Body wiederholen. Ein weitergeleiteter POST bleibt ein POST — nichts wird stillschweigend zu GET konvertiert.

Browser erzeugen 307 auch intern: Wenn eine Seite auf der HSTS-Preload-Liste steht, hebt der Browser http:// selbst auf https:// an und zeigt in den DevTools „307 Internal Redirect“ an, ohne einen Netzwerk-Request.

Häufige Ursachen von 307-Antworten

  • Eine API leitet einen POST/PUT-Request vorübergehend an einen anderen Endpunkt weiter.
  • HSTS: Der Browser hebt http:// intern auf https:// an (in den DevTools als 307 angezeigt).
  • Load Shedding oder Wartungsfenster, die Schreibzugriffe auf einen Standby-Endpunkt umleiten.

Gute Praktiken für Entwickler

  • Nutze 307, wann immer ein weitergeleiteter Request einen Body hat, der den Sprung überstehen muss.
  • Für dauerhafte, methodenerhaltende Umzüge nutze stattdessen 308.
  • Denk daran, dass Clients den vollständigen Body erneut senden — vermeide 307 bei sehr großen Uploads, wenn du Clients stattdessen direkt auf die richtige URL verweisen kannst.

Beispielantwort

HTTP/1.1 307 Temporary Redirect
Location: https://api.example.com/v2/orders
Retry-After: 0

FAQ

Was ist der Unterschied zwischen 302 und 307?

Beide sind temporär, aber 307 verbietet das Ändern der Request-Methode — ein POST wird als POST wiederholt. Bei 302 wechseln Browser historisch zu GET.

Warum zeigen die DevTools „307 Internal Redirect“ an?

Der Browser hat den Request selbst auf HTTPS angehoben (HSTS), ohne den Server zu kontaktieren. Das wird als synthetische 307 angezeigt.

Gibt es eine dauerhafte Version von 307?

Ja — 308 Permanent Redirect: dieselbe methodenerhaltende Regel, aber Caches und Suchmaschinen behandeln den Umzug als dauerhaft.