HTTP 302 Statuscode (302 Found): Bedeutung und Verwendung

Advertisement
Was ist der HTTP 302 Statuscode?
Der HTTP 302 Statuscode — offiziell 302 Found — ist ein HTTP-Antwortcode, der dem Client (meist einem Browser) mitteilt, dass die angeforderte Ressource vorübergehend an eine andere URL verschoben wurde. Die neue URL wird im Location-Header der Antwort angegeben, und der Client soll die Ressource nur für diese Anfrage von dort holen.
Da die Verschiebung temporär ist, sollte der Client die ursprüngliche URL weiterhin für zukünftige Anfragen verwenden. Suchmaschinen, Browser und Lesezeichen sollten die ursprüngliche URL nicht durch das Weiterleitungsziel ersetzen. Das ist der wichtigste Unterschied zwischen HTTP 302 und 301 Moved Permanently.
Der 302-Code gehört zur 3xx-Klasse der HTTP-Statuscodes für Weiterleitungen, definiert in RFC 9110. Trotz des historischen Namens 'Found' wird der Antwortinhalt fast nie verwendet — moderne Browser folgen dem Location-Header sofort, ohne ihn zu rendern.
Aufbau einer 302-Antwort
Eine Antwort mit HTTP 302 Statuscode enthält immer zwei wesentliche Elemente: die Statuszeile selbst und einen Location-Header, der auf die neue URL verweist. Ohne gültigen Location-Header kann der Client der Weiterleitung nicht folgen.
Statuszeile —
HTTP/1.1 302 Found(oderHTTP/2 302in HTTP/2)Location-Header — die Ziel-URL, der der Client folgen soll (erforderlich)
Cache-Control — meist
no-cache, damit Browser das Ziel der Weiterleitung nicht dauerhaft cachenBody — typischerweise leer; Server können für Legacy-Clients eine kleine HTML-Seite einbinden (
<html><body><a href="...">Hier klicken</a></body></html>)
HTTP/1.1 302 Found
Location: https://www.example.com/new-page
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Cache-Control: no-cache, no-store
Date: Mon, 27 Apr 2026 14:00:00 GMTDer Location-Header kann eine absolute URL (https://example.com/path) oder eine pfadrelative URL (/path) sein. Moderne HTTP-Clients akzeptieren beide, absolute URLs sind aber zur Klarheit empfohlen.
302 vs 301 vs 307 vs 308: Welche Weiterleitung verwenden?
HTTP definiert fünf gängige Weiterleitungs-Statuscodes, und die Wahl ist wichtig für Caching, SEO und Methodenerhaltung. Nutzen Sie diese Tabelle als Entscheidungshilfe:
| Code | Permanenz | Methode erhalten? | Vom Browser gecacht? | Geeignet für |
|---|---|---|---|---|
| 301 Moved Permanently | Permanent | Kann POST→GET ändern | Ja (aggressiv) | Permanente URL-Änderungen, Domain-Migrationen |
| 302 Found | Temporär | Ändert oft POST→GET | Nein | Login-Flows, A/B-Tests, Wartung |
| 303 See Other | Temporär | Ändert immer zu GET | Nein | POST/Redirect/GET-Muster nach Formularabsendung |
| 307 Temporary Redirect | Temporär | Ja — erhalten | Nein | Temporäre Weiterleitungen, die POST/PUT erhalten müssen |
| 308 Permanent Redirect | Permanent | Ja — erhalten | Ja | Permanente Weiterleitungen, die POST/PUT erhalten müssen |
Moderne Empfehlung: Wenn Sie eine temporäre Weiterleitung benötigen und beim Methoden-Handling eindeutig sein wollen, verwenden Sie 307 statt 302. Der Code 307 wurde in HTTP/1.1 ergänzt, weil Browser historisch gegen die Spezifikation verstießen, indem sie POST bei einem 302 zu GET änderten — und dieses falsche Verhalten so verbreitet war, dass es zum De-facto-Standard wurde.
Wann sollten Sie eine 302-Weiterleitung verwenden?
Verwenden Sie den HTTP 302 Statuscode, wenn die Weiterleitung wirklich temporär ist — also wenn Sie das Weiterleitungsziel künftig entfernen oder ändern werden. Häufige legitime Anwendungsfälle sind:
Login-Weiterleitungen — Einen nicht authentifizierten Benutzer von
/dashboardzu/loginschicken und nach dem Login zurückA/B-Tests — 50 % der Nutzer zu einer Variante leiten, ohne die kanonische URL zu ändern
Wartungsseiten — Allen Traffic temporär zu
/maintenanceumleiten, während der Server gepatcht wirdGeo-Routing — Besucher von
/zu/deoder/usje nach Land schicken, während/kanonisch bleibtMobile-Weiterleitungen — Smartphone-Nutzer von
example.comzum.example.comleiten (heute meist responsives Design vorzuziehen)Nicht verfügbare Produktseiten — Besucher zur Kategorie schicken, bis das Produkt wieder lieferbar ist
Kurzlebige Aktions-URLs —
/black-fridayleitet während der Aktion zur Kampagnen-Landingpage
Wird einer dieser Fälle dauerhaft, wechseln Sie zu 301. Suchmaschinen warten mehrere Monate, bevor sie eine langfristige 302 als 301 behandeln — eine permanente Verschiebung in 302 zu belassen kostet währenddessen Ranking-Signale.
Advertisement
Wie man einen 302-Statuscode sendet
Die meisten Webserver und Frameworks bieten Helfer für 302-Weiterleitungen. Unten die häufigsten Muster. Jedes sendet HTTP 302 Found mit einem Location-Header — die einzigen beiden zwingend nötigen Bestandteile.
Nginx
In Nginx nutzen Sie die return-Direktive mit dem Code 302 (Standard ohne Code ist ebenfalls 302):
server {
listen 80;
server_name example.com;
# Temporäre Weiterleitung (302 Found)
location /old-page {
return 302 https://example.com/new-page;
}
}Apache (.htaccess)
Auf Apache nutzen Sie Redirect mit dem Code 302 oder RewriteRule mit dem Flag [R=302,L]:
# Einfache temporäre Weiterleitung
Redirect 302 /old-page https://example.com/new-page
# Oder mit mod_rewrite für Mustererkennung
RewriteEngine On
RewriteRule ^maintenance$ /maintenance.html [R=302,L]Node.js (Express)
res.redirect() in Express nutzt 302 als Standard, wenn kein Statuscode angegeben wird:
// Temporäre Weiterleitung (302 Found als Standard)
app.get('/dashboard', (req, res) => {
if (!req.user) {
return res.redirect('/login') // sendet 302
}
// ...Dashboard rendern
})
// Oder explizit:
res.redirect(302, '/login')Wie man einen 302-Statuscode testet
Nach der Implementierung einer 302-Weiterleitung sollten Sie sie verifizieren. Am schnellsten geht das mit curl im Terminal — es zeigt den exakten Statuscode und Location-Header ohne Browser-Cache-Einflüsse.
# Nur Antwort-Header anzeigen (-I), ohne der Weiterleitung zu folgen
curl -I https://example.com/old-page
# Erwartete Ausgabe:
# HTTP/2 302
# location: https://example.com/new-page
# cache-control: no-cache
# date: Mon, 27 Apr 2026 14:00:00 GMT
# Ganze Kette folgen (-L) und jeden Hop anzeigen
curl -ILs https://example.com/old-page | grep -i 'HTTP/\|location:'Ohne Terminal-Zugang nutzen Sie den kostenlosen Redirect Checker von DNS Robot, um die gesamte Kette von einem neutralen Server aus zu prüfen, oder den HTTP Headers Checker, um die rohen Antwort-Header zu sehen — beide umgehen den Browser-Cache.
302-Weiterleitungen und SEO
Ein HTTP 302 Statuscode sagt Suchmaschinen: 'Diese Verschiebung ist temporär, behaltet die Original-URL im Index.' Das hat direkte Folgen für Ranking-Signale.
Laut Google Search Central überträgt ein 302 die Ranking-Signale der Original-URL nicht auf das Weiterleitungsziel, wie es ein 301 tut. Die Original-URL bleibt kanonisch. Google indexiert die Zielseite eventuell trotzdem, wenn andere Kanonisierungssignale (interne Links, Sitemap, hreflang) auf sie zeigen — aber die 302 selbst ist kein kanonisches Signal.
301 für permanente Verschiebungen — Domain-Wechsel, URL-Strukturänderungen, Seitenkonsolidierung
302 für temporäre Verschiebungen — Login-Flows, A/B-Tests, Wartung, regionales Routing
Permanente Verschiebungen nicht in 302 belassen — Google wartet Monate, bevor er eine alte 302 als 301 behandelt — Ranking-Equity geht verloren
Ketten vermeiden —
A → 302 → B → 302 → Cverwässert Signale und verlangsamt Ladezeiten. Jeder Hop fügt Latenz hinzu
Warum eine 302 POST-Anfragen zu GET ändert
Das ist das überraschendste Verhalten von HTTP 302. Der ursprüngliche RFC sagte, Clients sollten die Methode bei Weiterleitungen erhalten. Doch frühe Browser — Mosaic, Netscape, IE — wechselten POST bei einer 302 zu GET, und dieses falsche Verhalten wurde so verbreitet, dass es im WHATWG Fetch Standard standardisiert wurde.
Heute, wenn ein Browser ein POST /login sendet und der Server mit 302 Found antwortet, sendet der Browser automatisch ein GET /next-page an das Weiterleitungsziel. Die Formulardaten gehen verloren. Das ist selten das, was Server-Entwickler beabsichtigen.
# Was Sie senden:
POST /submit-form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
name=Alice&email=alice@example.com
# Server antwortet mit 302:
HTTP/1.1 302 Found
Location: /thank-you
# Browser folgt mit GET (Formulardaten verworfen!):
GET /thank-you HTTP/1.1
Host: example.comWenn die Weiterleitung die Originalmethode bewahren soll (POST bleibt POST, PUT bleibt PUT), nutzen Sie 307 Temporary Redirect statt 302. Wenn Sie den Body bewusst verwerfen und auf GET wechseln wollen — das klassische POST/Redirect/GET-Muster — nutzen Sie 303 See Other. Beide sind eindeutig; 302 ist es nicht.
Advertisement
Häufige 302-Probleme und Lösungen
Wenn HTTP 302 schiefgeht, zeigt es sich meist als eines dieser Symptome. Die meisten haben einfache Lösungen:
`302 statt 200` — Der Server leitet weiter, obwohl er es nicht sollte. Prüfen Sie
.htaccess, Nginx-Konfiguration oder Framework-Middleware`302 ohne Location-Header` — Ungültige Antwort. Browser zeigen eine leere Seite. Stellen Sie sicher, dass der Code den
Location-Header vor dem Status setzt`302 leitet auf sich selbst um` — Eine Weiterleitungsschleife. Die
Location-URL gleicht der Anfrage-URL. Prüfen Sie die Regel auf fehlende Bedingungen`302 verwirft Formulardaten` — POST → 302 → GET verwirft den Body. Wechseln Sie zu
307 Temporary Redirect, um POST zu erhalten`302 vom Browser gecacht` — Fehlerhafter Server hat
Cache-Control: max-age=...auf der Weiterleitung gesetzt.Cache-Control: no-cachesetzen und Browser-Cache leeren`302 in Produktion, nicht lokal` — Meist ein CDN oder Load Balancer. Direkt gegen den Origin testen, um zu isolieren
302-Weiterleitungsschleifen diagnostizieren
Eine Weiterleitungsschleife entsteht, wenn URL A 302 auf URL B liefert und URL B 302 zurück auf A. Nach 20 Hops (in Chrome und Firefox) zeigt der Browser ERR_TOO_MANY_REDIRECTS und gibt auf.
Häufigste Ursache ist ein SSL/HTTPS-Konflikt zwischen einem CDN (z. B. Cloudflare) und dem Origin: Das CDN verbindet sich per HTTP, der Origin leitet HTTP→HTTPS, das CDN entfernt HTTPS und verbindet sich wieder per HTTP — Endlosschleife.
# Ganze Kette folgen (auf 10 Hops begrenzen, um Endlosschleifen zu vermeiden)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'
# Beispiel einer Schleife:
# HTTP/2 302
# location: http://example.com/
# HTTP/1.1 302 Found
# Location: https://example.com/
# HTTP/2 302
# location: http://example.com/ <-- Schleife bestätigtWechseln zwei URLs in den Location-Headern, ist eine 302-Schleife bestätigt. Eine ausführliche Anleitung finden Sie in unserem ERR_TOO_MANY_REDIRECTS-Guide. Der Redirect Checker von DNS Robot folgt der Kette von einem neutralen Standort aus und stoppt am Schleifenpunkt.
Best Practices für den 302-Statuscode
Wenn Sie 302 Found korrekt senden, vermeiden Sie die meisten typischen Bugs bei Weiterleitungen:
Immer einen Location-Header setzen — Eine
302ohneLocationist ungültig und rendert leerImmer Cache-Control: no-cache setzen — Sonst cachen einige Browser die Weiterleitung in der Sitzung und brechen den 'temporären' Vertrag
Absolute URLs in Location verwenden —
https://example.com/newist eindeutig;/newfunktioniert, kann hinter Proxys mit Host-Wechsel aber brechenWeiterleitungen auf einen Hop begrenzen —
A → 302 → Bist okay;A → 302 → B → 302 → Cverlangsamt Ladezeiten und verwässert SignalePOST nicht mit 302 auf eine andere Seite leiten —
303(gewolltes GET) oder307(POST erhalten) verwendenWeiterleitungen monatlich auditieren — Alte temporäre Weiterleitungen überleben oft ihren Grund. Mit Redirect Checker prüfen
Auf 301 wechseln, sobald die Verschiebung permanent wird — Permanente Verschiebung nicht länger als wenige Wochen in
302lassen
Browser- und Cache-Verhalten
Browser und Vermittler behandeln HTTP 302 leicht unterschiedlich. Diese Eigenheiten zu kennen, spart Debug-Zeit:
| Client | Standardverhalten bei 302 | Cache-Standard |
|---|---|---|
| Chrome / Edge | Folgt automatisch, ändert POST→GET | Cacht nicht, außer Header sagen es |
| Firefox | Folgt automatisch, ändert POST→GET | Cacht nicht, außer Header sagen es |
| Safari | Folgt automatisch, ändert POST→GET | Etwas aggressiveres Caching von Weiterleitungen |
| curl (Standard) | Folgt NICHT — zeigt 302 + Location | Kein Cache |
| curl -L | Folgt bis --max-redirs (Standard 50) | Kein Cache |
| wget (Standard) | Folgt automatisch bis --max-redirect=20 | Kein Cache |
| Googlebot | Folgt, behandelt als temporäres Signal | Crawlt Original-URL erneut |
Zur Verifizierung von Edge Cases (POST-Methoden, Endlosschleifen, Header-Vorhandensein) zeigt der HTTP Headers Checker von DNS Robot die rohe Antwort ohne Methoden-Umschrift durch den Browser. Mehr zu temporären Weiterleitungen in der MDN-Dokumentation und der RFC 9110-Spezifikation.
Advertisement
Verfolgen Sie jede Weiterleitungskette in Sekunden
Nutzen Sie den kostenlosen Redirect Checker von DNS Robot, um jeden Hop einer Weiterleitungskette zu inspizieren — Statuscodes, Location-Header und das Endziel von einem neutralen Server (ohne Browser-Cache).
Testen Redirect CheckerAdvertisement
Häufig gestellte Fragen
Der HTTP 302 Statuscode (302 Found) bedeutet, dass die angeforderte Ressource vorübergehend unter einer anderen URL zu finden ist, die im Location-Header der Antwort angegeben ist. Der Client soll der Weiterleitung für diese Anfrage folgen, aber für künftige Anfragen weiterhin die ursprüngliche URL nutzen. Es ist das temporäre Gegenstück zu 301 Moved Permanently.