Location Header im HTTP verständlich erklärt: Weiterleitungen
Der HTTP-Header Location ist das Standard-Werkzeug für Weiterleitungen (Redirects) im World Wide Web. Wenn ein Webserver dem Browser mitteilt, dass eine angeforderte Seite umgezogen ist oder dass eine neue Ressource erstellt wurde, nutzt er den Location-Header, um die neue Ziel-URL zu übermitteln. Der Browser liest diesen Header aus und navigiert den Benutzer automatisch und ohne Interaktion an den neuen Speicherort.
Wann wird der Location-Header verwendet?
Der Location-Header wird vom Server in zwei Hauptszenarien ausgesendet:
1. Bei Weiterleitungen (HTTP 3xx Statuscodes)
Dies ist der häufigste Anwendungsfall. Der Server antwortet mit einem Weiterleitungs-Statuscode (z. B. 301 oder 302) und gibt im Location-Header an, wo sich die gewünschte Seite befindet:
HTTP/1.1 301 Moved Permanently
Location: https://allerate.com/unternehmen/
Der Browser bricht das Laden der aktuellen URL sofort ab und startet eine neue Anfrage an https://allerate.com/unternehmen/. Welcher Statuscode gewählt wird, entscheidet dabei über das SEO-Verhalten – mehr dazu weiter unten.
2. Nach der Ressourcenerstellung (HTTP 201 Created)
Erstellt ein Client Daten auf dem Server (z. B. über eine POST-Anfrage an eine API), antwortet der Server mit dem Statuscode 201 Created und teilt dem Client über den Location-Header mit, unter welcher URL die neu erstellte Ressource abrufbar ist:
HTTP/1.1 201 Created
Location: /api/users/42
Die Redirect-Statuscodes im Vergleich
Bei der Konfiguration von Weiterleitungen müssen Webmaster den passenden HTTP-Statuscode wählen:
| Statuscode | Typ | Verhalten bei POST-Anfragen | SEO-Effekt (Link Juice) |
|---|---|---|---|
| 301 Moved Permanently | Permanent | Darf in GET geändert werden | Ja, vererbt PageRank vollständig. |
| 308 Permanent Redirect | Permanent | Muss POST beibehalten | Ja, vererbt PageRank vollständig. |
| 302 Found | Temporär | Darf in GET geändert werden | Nein, vererbt keinen PageRank. |
| 307 Temporary Redirect | Temporär | Muss POST beibehalten | Nein, vererbt keinen PageRank. |
Absolute vs. relative Ziel-URLs
Der Location-Header akzeptiert beide Schreibweisen, die sich aber im Verhalten unterscheiden:
| Form | Beispiel | Empfehlung |
|---|---|---|
| Absolut | Location: https://example.com/kontakt/ | robust, eindeutig, bevorzugt bei domänenübergreifenden Redirects |
| Relativ (root) | Location: /kontakt/ | praktisch innerhalb derselben Domain |
| Relativ (Pfad) | Location: kontakt/ | fehleranfällig, da abhängig vom aktuellen Pfad |
Moderne Browser lösen relative Pfade gemäss RFC 7231 zuverlässig gegen die Anfrage-URL auf. Bei domänenübergreifenden Weiterleitungen sollte dennoch immer die absolute URL gesetzt werden, damit kein Protokoll- oder Host-Wechsel verloren geht.
Sicherheit: Die Open-Redirect-Schwachstelle
Eine häufig unterschätzte Gefahr entsteht, wenn das Weiterleitungsziel aus einem Anfrageparameter stammt:
GET /login?next=https://phishing.example/fake HTTP/1.1
HTTP/1.1 302 Found
Location: https://phishing.example/fake
Der Angreifer verschickt einen Link, der scheinbar auf die vertrauenswürdige Domain zeigt, das Opfer aber auf eine Phishing-Seite umleitet. Die Abwehr:
- Niemals ungeprüfte Nutzereingaben direkt in den Location-Header schreiben.
- Nur relative Pfade oder eine Allowlist erlaubter Zieldomänen zulassen.
- Ein gesetzter Referrer-Policy-Header begrenzt zusätzlich, welche Informationen beim Weiterleiten an Dritte gelangen.
Gefahren: Redirect-Ketten und Endlosschleifen
- Redirect-Schleifen (Infinite Loops): Zeigt URL A auf URL B, und URL B zeigt wiederum auf URL A, gerät der Browser in eine Endlosschleife und bricht mit der Fehlermeldung „Too many redirects“ ab.
- Redirect-Ketten (Chains): Wenn URL A auf B weiterleitet, B auf C und C schliesslich auf D, verlängert dies die Ladezeit der Website dramatisch, da für jeden Schritt ein neuer HTTP-Roundtrip erforderlich ist (PageSpeed sinkt).
- Best Practice: Leiten Sie Weiterleitungen immer direkt auf das finale Ziel um (A → D).
Praxisbeispiel: HTTP zu HTTPS und www-Konsolidierung
Eine saubere Domain-Strategie löst alle Varianten in einem einzigen Sprung auf das kanonische Ziel auf:
- Vorher (Kette):
http://example.com→https://example.com→https://www.example.com/(zwei Roundtrips, verwässertes Ranking). - Nachher (direkt):
http://example.com,http://www.example.comundhttps://example.comzeigen jeweils per 301 direkt aufhttps://www.example.com/.
So bleibt der PageRank gebündelt, und die Ladezeit verbessert sich messbar. Die korrekte Auswahl des Statuscodes (301 statt 302 für dauerhafte Umzüge) ist dabei entscheidend für das Technical SEO.
[!TIP] Unsaubere Weiterleitungen zerstören das Suchmaschinen-Ranking und verärgern Nutzer durch unnötig lange Ladezeiten. Analysieren Sie Weiterleitungsketten und Statuscodes Ihrer Domain live mit dem Redirect Checker auf balou.tools.
Häufig gestellte Fragen (FAQ)
Darf der Location-Header relative Pfade enthalten?
Ja. Laut dem modernen HTTP-Standard (RFC 7231) sind sowohl relative Pfade (z. B. `/kontakt/`) als auch absolute URLs (z. B. `https://example.com/kontakt/`) im Location-Header erlaubt.
Was ist der Unterschied zwischen den Statuscodes 302 und 307?
Beide sind temporäre Weiterleitungen. Allerdings erlaubt 302 es dem Browser, eine ursprüngliche POST-Anfrage in eine GET-Anfrage umzuwandeln. Das moderne 307 verbietet dies strikt – die HTTP-Methode und der Body müssen unverändert übertragen werden.
Was ist eine Open-Redirect-Schwachstelle?
Eine Open-Redirect-Schwachstelle entsteht, wenn ein Server eine vom Nutzer kontrollierte URL ungeprüft in den Location-Header schreibt (z. B. `?redirect=https://boese.example`). Angreifer nutzen die vertrauenswürdige Domain als Sprungbrett auf eine Phishing-Seite. Die Abwehr besteht darin, nur Weiterleitungen auf eine Allowlist erlaubter Ziele oder ausschliesslich relative Pfade zuzulassen.
Wird der Location-Header nur bei 3xx-Antworten ausgewertet?
Nein. Bei 3xx-Statuscodes löst der Location-Header eine Weiterleitung aus. Bei der Antwort `201 Created` hingegen ist er rein informativ und nennt die URL der neu angelegten Ressource, ohne den Browser umzuleiten. Der Statuscode entscheidet also über die Bedeutung des Headers.