HTTP-Status-Codes und ihre Bedeutung
Das Internet fasst weit mehr als 1 Milliarde Webseiten. Will ein Nutzer eine spezielle Internetpräsenz wie die Homepage seines Lieblingsvereins, die Startseite der Hausbank oder das Postfach beim Mail-Anbieter in seinem Webbrowser aufrufen, braucht er dafür eine Internetadresse. Diese lokalisiert das gewünschte Webangebot auf dem entsprechenden Server im Netz. Die Übertragung der angeforderten Daten auf den lokalen Rechner erfolgt mithilfe des Hypertext-Übertragungsprotokolls HTTP. Dazu startet der Webbrowser (in diesem Fall Client genannt) eine Anfrage beim Webserver, der diese wiederum mit einem HTTP-Status-Code in Form einer dreistelligen Zahlenfolge beantwortet. Durch diese Meldung teilt der Webserver dem Browser mit, ob eine Anfrage erfolgreich bearbeitet wurde, ein Fehler vorliegt oder eine Authentifizierung erforderlich ist. Der HTTP-Status-Code ist somit ein essenzieller Teil der vom Webserver übermittelten Rückmeldung. Er wird vom Server automatisch in den Header einer jeden HTTP-Antwort eingefügt. Ein Internetnutzer bekommt HTTP-Status-Codes normalerweise nur dann in Form einer automatisch generierten HTML-Seite angezeigt, wenn der Webserver die Anfrage des Clients nicht ausführen konnte oder durfte und dementsprechend keine Webseitendaten übermittelt werden.
HTTP-Status-Klassen
HTTP-Status-Codes werden grundsätzlich in fünf verschiedene Klassen eingeteilt. Wobei die erste Ziffer des dreistelligen Codes die Klassenzugehörigkeit anzeigt. Der HTTP-Status-Code 200 gehört somit der Klasse 2xx an. Der 404-Code der Klasse 4xx. Diese Einteilung erfolgt auf Grundlage der Bedeutung und Funktion der Statuscodes. Man unterscheidet zwischen folgenden Klassen:
- Klasse 1xx – Informativ: Wird ein HTTP-Status-Code der Klasse 1xx übermittelt, meldet der Server dem Client, dass die aktuelle Anfrage noch andauert. Diese Klasse fasst Codes zusammen, die Informationen zur Bearbeitung liefern und während der Anfrage gesendet werden.
- Klasse 2xx – Erfolg: Ein 2xx-Code meldet eine erfolgreiche Operation. Wird ein 2xx-Code übermittelt, wurde die Anfrage des Clients vom Server empfangen, verstanden und akzeptiert. Dementsprechend werden 2xx-Codes vom Server oft gleichzeitig mit den gewünschten Webseiten-Daten versendet. Der Nutzer nimmt in der Regel nur die angeforderte Webseite wahr.
- Klasse 3xx – Umleitung: Ein 3xx-Code zeigt an, dass die Anfrage vom Server empfangen wurde. Um eine erfolgreiche Bearbeitung sicherzustellen, sind jedoch weitere Schritte seitens des Clients erforderlich. 3xx-Codes treten vor allem bei Um- und Weiterleitungen auf.
- Klasse 4xx – Client-Fehler: Wird ein 4xx-Code ausgespielt, liegt ein Client-Fehler vor. Der Server hat die Anfrage erhalten, kann diese jedoch nicht ausführen. Der Grund dafür ist in der Regel eine fehlerhafte Anfrage. Internetnutzer werden auf diesen Fehler in der Regel durch eine automatisch erzeugte HTML-Seite hingewiesen.
- Klasse 5xx – Server-Fehler: Mit einem 5xx-Code weist der Server auf einen Fehler hin, der im Verantwortungsbereich des Servers zu verorten ist. Solche Server-Fehlercodes melden, dass die entsprechende Anfrage vorübergehend nicht ausführbar oder gar unmöglich ist. Auch hier wird in der Regel eine HTML-Fehlerseite erzeugt.
Wichtige HTTP-Status-Codes im Überblick
HTTP-Status-Codes spielen für Webseitenbetreiber oder SEO-Spezialisten eine wichtige Rolle. Sichtbar für einen Website-Besucher sind vor allem Client-Fehlercodes wie der 404 (Not Found) oder Serverfehler wie der 503 (Service Unavailable), da diese oft als automatisch generierte HTML-Seite im Webbrowser angezeigt werden. Darüber hinaus gibt es viele HTTP-Status-Codes, die nicht auf den ersten Blick sichtbar sind und von Administratoren nur durch spezielle Tools und Browsererweiterungen überwacht werden können. Fehler festzustellen und zu beheben ist sinnvoll, um das Nutzererlebnis auf der Webseite und das Suchmaschinenranking zu optimieren. Folgende Übersicht zeigt eine Auswahl der geläufigsten Antwortcodes. Eine vollständige Liste finden Interessierte beispielsweise im Wiki von selfhtml.
- Status-Code 200 – OK: Der HTTP-Status-Code 200 zeigt an, dass die Anfrage erfolgreich bearbeitet wurde. Alle angeforderten Daten wurden auf dem Webserver lokalisiert und werden an den Client übertragen. Internetnutzer bekommen diesen Code normalerweise nicht zu Gesicht.
- Status-Code 301 – Moved Permanently: Der Code 301 bedeutet, dass die vom Client angeforderten Daten nicht mehr unter der aufgerufenen Internetadresse zu finden sind, sondern permanent verschoben wurden. Da der aktuelle Ort der angefragten Inhalte in der Statusmeldung mitgeliefert wird, kann der Webbrowser gleich die neue Adresse anfordern. Der Nutzer wird somit weitergeleitet. Die alte Adresse ist nicht länger gültig. Auch der 301 bleibt für den Internetnutzer nahezu unbemerkt, da sich lediglich die URL in der Adressleiste ändert.
- Status-Code 302 – Moved Temporarily: Anders als der 301, der auf einen permanenten Umzug verweist, meldet der 302, dass die angeforderten Daten temporär unter einer anderen Adresse zu finden sind. Auch beim 302 wird der Verbleib der Informationen in der Statusmeldung angegeben, sodass eine automatische Weiterleitung erfolgt. Die alte Adresse bleibt jedoch gültig.
- Status-Code 403 – Forbidden: Der HTTP-Status-Code 403 signalisiert dem Client, dass die angeforderten Daten zugangsgeschützt sind und die Anfrage aufgrund einer fehlenden Berechtigung des Clients nicht durchgeführt werden kann. Dem Internetnutzer wird dieses Zugriffsproblem in der Regel durch eine automatisch generierte HTML-Seite angezeigt.
- Status-Code 404 – Not Found: Wird die Serverantwort 404 ausgeben, wurden die angeforderten Webseitendaten auf dem Server nicht gefunden. In der Regel existiert die Webadresse nicht mehr oder die Inhalte wurden ohne Angabe der neuen Adresse verschoben. Internetnutzer, die einen 404 angezeigt bekommen, sollten prüfen, ob die Internetadresse korrekt in die Adresszeile eingegeben wurde. Links, die auf solche nicht mehr existierenden Seiten verweisen, werden als „tote Links“ bezeichnet.
- Status-Code 500 – Internal Server Error: Die Serverantwort 500 fungiert als Sammel-Statuscode für unerwartete Serverfehler. Tritt serverseitig ein Fehler auf, der einen Abruf der angefragten Daten verhindert, wird dieser HTTP-Status-Code automatisch ausgegeben. Neben der Antwort an den Client erzeugt der Webserver in der Regel in internes Fehlerprotokoll. Dieses sollte von Webseiten-Betreibern analysiert werden, um Reparaturen an der Serversoftware vornehmen zu können.
- Status-Code 503 – Service Unavailable: Wird dem Nutzer ein 503-Code angezeigt, bedeutet dies, dass der entsprechende Webserver, der die angefragten Informationen liefern soll, überlastet ist. Gelegentlich enthält diese Serverantwort zudem Informationen darüber, wann die Anfrage frühestens wieder bearbeitet werden kann. In der Regel können Internetnutzer davon ausgehen, dass ein Administrator an dem Problem arbeitet und der Server zu einem späteren Zeitpunkt wieder zur Verfügung steht.
Weitere wichtige HTTP-Statuscodes sind:
Wie gehen Webseitenbetreiber mit HTTP-Status-Codes um?
Um Webseitenbesuchern ein optimales Nutzererlebnis zu bieten, sollten Administratoren daran arbeiten, automatisch erzeugte HTML-Fehlerseiten auf ein Minimum zu beschränken. Dies gilt insbesondere für große Webpräsenzen wie Online-Shops oder Newsportale, deren Sortiment oder Informationsangebot stark fluktuiert. Verschwinden Webseiten, bekommt ein Besucher, der auf diese Inhalte zugreifen möchte, in der Regel den Status-Code 404 (Not Found) angezeigt. Für viele Nutzer ist dies ein Grund, abzuspringen und die gewünschten Informationen oder Produkte an einer anderen Stelle im Netz, womöglich bei Wettbewerbern zu suchen. Es ist somit im Interesse des Webseitenbetreibers, Maßnahmen zu ergreifen, den Besucher auf der Seite zu halten. Entsprechend intensiv sind die Bemühungen von Administratoren, 404-Fehler auf der Webseite zu identifizieren. Dazu bieten sich beispielsweise die Webmaster-Tools von Google an, mit denen sich Crawling-Fehler-Statistiken erzeugen lassen. Elegant umgehen lässt sich der HTTP-Statuscode 404 durch Weiterleitungen an entsprechender Stelle. Zudem kann die Abbruchquote der Seitenbesucher durch manuell gestaltete Fehlerseiten deutlich gesenkt werden.
404-Fehlerseiten per 301-Code auf alternative Angebote umleiten
Wurde ein 404-Fehler aufgrund einer gelöschten Seite identifiziert, empfiehlt sich die Weiterleitung via Status-Code 301 (Moved Permanently) auf vergleichbare Inhalte. Der Seitenbesucher findet so zwar nicht das Produkt oder Informationsangebot, das er angefragt hat, wird durch die Bereitstellung alternativer Inhalte jedoch animiert, auf der Webseite zu verweilen. Wichtig ist hier, dass die alternative Adresse im Bezug zur ursprünglichen Anfrage steht und dem Besucher einen Mehrwert bietet. Theoretisch lassen sich 404-Seiten auch automatisch per 301 umleiten – beispielsweise auf die Startseite. Wer passende Zielseiten für die Umleitung manuell aussucht, wird Besucher jedoch effektiver vom Absprung abhalten.
Alternative Fehlerseiten verbessern die User-Experience
Da sich 404-Fehler auch bei einer guten Webseitenpflege nicht immer verhindern lassen, empfiehlt es sich, statt der vom Server automatisch generierten HTML-Fehlerseite manuell gestaltete Meldungen einzubinden. Möglich macht das die Konfigurationsdatei .htaccess. Alternative 404-Meldungen sind in der Regel an das Design der Webseite angepasst und bieten neben dem Statuscode oft weitere Informationen, etwa vergleichbare Produktseiten oder einen Überblick über das aktuelle Informationsangebot. Wie Webseitenbetreiber alternative Fehlerseiten einbinden, wird im Artikel Zehn .htaccess-Tricks, die jeder kennen sollte ausführlich erklärt.
Die Bedeutung von HTTP-Status-Codes für die Suchmaschinenoptimierung
Einigen HTTP-Status-Codes kommt auch bei der Suchmaschinenoptimierung eine große Bedeutung zu. So teilt beispielsweise der Code 404 nicht nur dem Webbrowser eines Internetnutzers mit, dass die angeforderte Seite nicht gefunden wurde – auch Suchmaschinen können den Inhalt nicht crawlen. Genau wie menschliche Webseitenbesucher lassen sich jedoch auch Suchmaschinen-Bots per Umleitung auf die Inhalte eines neuen Ziels verweisen. Aus Gründen der Suchmaschinenoptimierung bietet sich hier ebenfalls der Status-Code 301 an, da diesem bei der Aufrechterhaltung der Linkstärke eine große Bedeutung zukommt. Findet der Crawler einer Suchmaschine bei einer Anfrage einer Webadresse den Status-Code 301 vor, wird die als ungültig ausgewiesene alte Adresse aus dem Suchindex gelöscht und das Ziel der Weiterleitung neu aufgenommen.
Die Linkstärke der alten Seite geht dabei nicht verloren, sondern wird auf das 301-Umleitungsziel übertragen. Relevant ist das vor allem dann, wenn die alte Seite das Ziel eingehender Links war und die dadurch erworbene Autorität und Stärke dauerhaft auf das Weiterleitungsziel übertragen werden soll. Anders hingegen verhält es sich mit dem Status-Code 302. Da dieser nur eine temporäre Weiterleitung anzeigt, bleibt die alte Adresse im Index erhalten. Die Linkpower etwaiger Backlinks wird in diesem Fall nicht an das Weiterleitungsziel weitergegeben.