Immer dann, wenn ein Server eine HTTP-Anfrage nicht erfolgreich bearbeiten kann, geht ein HTTP-Statuscode raus – Fehler 404, 403, 503 und so weiter. Alles schon mal gesehen und kaum einen Aufreger wert. Doch was bedeuten die verschiedenen Codes eigentlich und warum werden sie gesendet? Die Antwort findest du hier.
Was dich erwartet
Bei jedem einzelnen Aufruf einer Website, Webseite oder Homepage kommunizieren ein Client – zum Beispiel ein Browser – und der angefragte Webserver miteinander. Es entsteht also ein Frage-Antwort-Prozess. Client und Server tauschen sich quasi aus, wie gut oder eben schlecht eine konkrete Anfrage funktioniert. Die Übertragung der angeforderten Daten erfolgt mittels des Hypertext-Übertragungsprotokoll HTTP. Der Anfrage durch den Client folgt dann eine Antwort mit einem HTTP-Statuscode in Form einer dreistelligen Zahlenfolge. Der Webserver teilt so dem Browser (Client) mit, ob er seine Anfrage erfolgreich beantwortet hat, ob ein Fehler vorliegt oder eine Authentifizierung erforderlich ist. Der daraus resultierende Status wird automatisch in den Header einer jeden HTTP-Antwort eingebettet.
User:innen bekommen von diesen Statuscodes jedoch normalerweise nur dann etwas mit, wenn der Server die Client-Anfrage nicht beantwortet beziehungsweise dieser das Protokoll nicht ausführen konnte oder durfte. Den Statuscode bekommen Internetnutzer:innen (über eine automatisch generierte HTML-Seite) also ausschließlich dann zu sehen, wenn keine Webdaten übermittelt werden (konnten).
Das kleine Einmaleins der HTTP-Statuscodes
Auf Grundlage der URL-Struktur fragt der Browser einen bestimmten Server an, auf dem die angesteuerte Website theoretisch zu finden sein müsste. Dieser Aufforderung, die gewünschten Daten an den Client zu übermitteln, versucht der Server nachzukommen – meist erfolgreich, manchmal leider nicht. Je nach Status beantwortet der Webserver die Anfrage mit dem entsprechendem Code. Diese Statusmeldung definiert ein HTTP-Statuscode. Die Codierung basiert auf dem Hypertext-Übertragungsprotokoll HTTP.
Wie und warum werden Statuscodes eingeteilt
- Die dreistelligen HTTP-Statuscodes sind grundsätzlich auf fünf verschiedene Klassen verteilt. Dabei erfolgt eine Kategorisierung keinesfalls willkürlich. Die Einstufung baut sich auf Grundlage der Bedeutung und Funktion der Statuscodes auf.
- Die Internet Assigned Numbers Authority (IANA) verwaltet das offizielle Register der HTTP-Statuscodes. Die erste Ziffer beschreibt die Klassenzugehörigkeit. Der 404-Code ist demnach der Klasse 4xx zugehörig. Die letzten beiden Ziffern haben dagegen keine klassifizierende oder kategorisierende Funktion. Das Standardprotokoll spezifiziert hier fünf Klassen:
- Klasse 1xx – Informativ: Die Antwort wurde empfangen, der Prozess wird fortgesetzt beziehungsweise die aktuelle Anfrage dauert noch an. Diese Klasse fasst alle Codes zusammen, die Informationen und Auskunft zur Bearbeitung liefern und während der Anfrage gesendet werden.
- Klasse 2xx – Erfolgreich: Die Anfrage wurde erfolgreich empfangen, verstanden und akzeptiert. Eine 2xx-Statusmeldung kommuniziert ganz einfach eine erfolgreiche Aktion.
- Klasse 3xx – Weiterleitung/Umleitung: Es müssen weitere Maßnahmen ergriffen werden, um die Anfrage abzuschließen. Die Anfrage wurde zwar vom Server empfangen, um eine erfolgreiche Beantwortung abzuschließen, es braucht jedoch weitere Schritte des Clients (Browsers). 3xx-Codes betreffen meist klassische Um- und Weiterleitungen.
- Klasse 4xx – Client-Fehler: Die Anfrage enthält eine falsche Syntax oder kann nicht erfüllt werden. Meist sind fehlerhafte Anfragen die Ursache.
- Klasse 5xx – Server-Fehler: Der Server hat eine scheinbar gültige Anfrage nicht erfüllt. 5xx-Codes weisen auf Server-Fehler hin. Die entsprechende Anfrage kann von Server-Seite (vorübergehend) nicht ausgeführt werden.
- Für 4xx- und 5xx-Statuscodes werden in der Regel automatisch HTML-Fehlerseiten erzeugt und User:innen auf den entsprechenden Fehler hingewiesen.
Die wichtigsten und bekanntesten HTTP-Statuscodes auf einen Blick
- 200 – OK: Die angeforderte URL (Ressource) wurde vom Webserver gefunden und kann an den Client übermittelt werden.
- 301 – Moved Permanently: Die vom Client angeforderten Daten sind nicht mehr unter der angeforderten Ressource zu finden und wurden permanent verschoben. Der aktuelle Ort der URL ist allerdings in der Statusmeldung hinterlegt und der Client kann gleich die neue Internetadresse anfordern. Der HTTP-Statuscode 301 ist eine typische Weiterleitung im Web.
- 302 – Moved Temporarily: Anders als bei einem 301-Status wird die URL nicht permanent, sondern nur vorübergehend umgeleitet. Die alte Internetadresse bleibt trotz Weiterleitung gültig. User:innen, Google und die ein oder andere Sicherheitssoftware sind von 302-Codes aber eher semibegeistert.
- 400 – Bad Request: Der Server kann oder wird aufgrund eines offensichtlichen Client-Fehlers die Anfrage nicht verarbeiten. Das kann eine falsch formulierte Anforderungssyntax, ein ungültiges Nachrichten-Framing oder auch betrügerisches Anforderungs-Routing sein. Allerdings können Internetnutzer:innen dieses Problem oft recht simpel umgehen. Einfach die URL neu eingeben oder den Cache und Cookies löschen.
- 403 – Forbidden: Die Anfrage enthielt gültige Daten, der Server hat sie auch verstanden, aber lehnt die Aktion dennoch ab. Warum? Zum einen könnte es daran liegen, dass der oder die Benutzer:in nicht über die erforderlichen Berechtigungen für eine Ressource verfügt. Womöglich benötigt man auch ein entsprechendes Konto. Kurz: Der 403-Code signalisiert dem Client, dass die angeforderten Daten zugangsgeschützt sind und aufgrund der fehlenden Berechtigung eine Anfrage nicht durchgeführt werden kann.
- 404 – Not Found: Der absolute Klassiker unter den HTTP-Statuscodes. Sind die angeforderten Daten auf dem Webserver nicht auffindbar, wird der Fehler-Code 404 ausgegeben. In der Regel existiert die Webadresse unter der angegeben URL nicht (mehr). Links, die auf nicht mehr existierende Seiten verweisen, bezeichnet man übrigens als „tote Links”.
- 503 – Server Unavailable: Der 503-Code signalisiert, dass der entsprechende Server überlastet ist (durch zu viele Anfragen) und zeitweise sogar „down” (etwa wegen Wartungsarbeiten). Normalerweise ist dies jedoch nur ein temporärer Zustand und eine zeitnahe Aktualisierung die Regel.
Auswirkungen der HTTP-Statuscodes auf die SEO-Optimierung
Der Googlebot, Googles Referenzdokument, crawlt in regelmäßigen Intervallen Websites. Daher sollten alle verlinkten Inhalte sowie URLs aufrufbar sein. Fehlerhafter oder nicht abrufbarer Content fliegt aus dem Google-Index und taucht nicht mehr in den Suchergebnissen auf.
Fazit
Von all den gültigen HTTP-Statuscodes kennen die handelsüblichen Internetnutzer:innen normalerweise nur ganz wenige. Zum Beispiel den berühmt-berüchtigten 404-Not-Found-Code. Das Gros der verwendeten HTTP-Statuscodes dient ausschließlich der Kommunikation zwischen Client und Server. Dennoch sollten gerade in Sachen SEO Administratoren die Statusmeldungen konstant beobachten und wenn nötig auch reparieren können.