301
Moved Permanently
Allgemeine Erklärung des 301-Statuscodes
Der HTTP-Statuscode 301 Moved Permanently zeigt an, dass die angefragte Ressource dauerhaft unter einer neuen URL verfügbar ist. Wenn ein Client, wie ein Browser oder eine Suchmaschine, diese Antwort erhält, wird er automatisch auf die neue Adresse weitergeleitet. Gleichzeitig merkt sich der Client die neue URL, damit zukünftige Anfragen direkt dorthin gesendet werden können. Dieser Statuscode wird häufig verwendet, wenn Webseiten umstrukturiert oder Inhalte verschoben werden, um sicherzustellen, dass Nutzer und Suchmaschinen die aktualisierten Pfade verwenden. Für den Endnutzer passiert dies meist unbemerkt im Hintergrund, da die Weiterleitung automatisch erfolgt. Aus technischer Sicht ist der 301 Moved Permanently-Redirect wichtig, um Suchmaschinen-Rankings und Zugriffe auf die neuen URLs zu übertragen, ohne bestehende Verweise zu verlieren. Richtig eingesetzt, ist er ein nützliches Werkzeug zur Pflege und Optimierung von Webseiten.
Spezifikation von dem HTTP statuscode 301
Der 301 Moved Permanently-Statuscode zeigt an, dass der Zielressource ein neuer permanenter URI zugewiesen wurde und dass alle künftigen Verweise auf diese Ressource einen der beigefügten URIs verwenden sollten. Clients mit Link-Editing-Fähigkeiten sollten Verweise auf den effektiven Anfrage-URI automatisch mit einem oder mehreren der neuen, vom Server gesendeten Verweise neu verknüpfen, sofern dies möglich ist.
Der Server SOLLTE ein Location-Header-Feld in der Antwort erzeugen, das einen bevorzugten URI-Verweis für den neuen permanenten URI enthält. Der User-Agent KANN den Wert des Location-Feldes für die automatische Umleitung verwenden. Die Antwort-Payload des Servers enthält in der Regel eine kurze Hypertext-Notiz mit einem Hyperlink zu dem/den neuen URI(s).
Hinweis: Aus historischen Gründen KANN ein User-Agent die Request-Methode von POST auf GET für die nachfolgende Anfrage ändern. Wenn dieses Verhalten unerwünscht ist, kann stattdessen der Statuscode 307 (Temporary Redirect) verwendet werden.
Eine 301 Moved Permanently-Antwort ist standardmäßig cachefähig, d. h., sofern die Methodendefinition oder explizite Cache-Kontrollen nichts anderes angeben (siehe Abschnitt 4.2.2 von [RFC7234]).
Quelle / Zitat von: Spezifiziert wird der 301 Moved Permanently HTTP Status Code durch Abschnitt 6.4.2 von RFC7231
HTTP-Protokoll
Wie kann man mit PHP einen 301-Statuscode werfen?
Um auf einer Webseite den HTTP Status Code 301 zu werfen, kann die PHP Funktion http_response_code benutzt werden. Die Syntax sieht wie folgt aus: http_response_code(301) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Teste den 301 HTTP Status Code
Um die HTTP Status Code (in diesem Fall 301 Moved Permanently) und weitere Informationen clientseitig anzeigen zu können, muss die Entwicklungskonsole mit F12 geöffnet werden. Im Anschluss muss zu der Karteikarte "Netzwerk" navigiert werden. Jetzt kann die Seite geöffnet werden, im Netzwerktab sollte die Webseite (Beispiel index.php) zu sehen sein. Diese muss ausgewählt werden und im Anschluss der Bereich Herder gewählt werden. Hier sieht der Nutzer dann folgendes Ergebnis:
URL: https://http-statuscode.com/errorCodeExample.php?code=301
Status: 301 Moved Permanently
Diese: Network
IP-Adresse: XX.XX.XX.XX
Browser-Kompatibilität des 301 Statuscode
Chrome | Yes |
Edge | Yes |
Firefox | Yes |
Opera | Yes |
Safari | Yes |
Chrome Android | Yes |
Firefox for Android | Yes |
Opera Android | Yes |
Safari on iOS | Yes |
Internet | Yes |
WebView Android | Yes |
Konstanten in Programmiersprachen
HttpStatusCode.MovedPermanently
http.StatusMovedPermanently
Response::HTTP_MOVED_PERMANENTLY
httplib.MOVED_PERMANENTLY
http.client.MOVED_PERMANENTLY
http.HTTPStatus.MOVED_PERMANENTLY
:moved_permanently