TL;DR:
HTTP-Statuscodes zeigen an, ob eine Browseranfrage erfolgreich war oder warum sie scheitert. Bekannte Beispiele sind 404 (Seite nicht gefunden), 301 (Weiterleitung), 304 (nicht verändert) und 403 (Zugriff verweigert). Wer Websites betreibt, sollte die wichtigsten Codes kennen, um Fehler zu vermeiden und Seiten zu optimieren.
HTTP-Statuscodes – und warum sie manchmal für Frust sorgen
Wenn du häufig im Internet unterwegs bist, bist du ihnen bestimmt schon öfter begegnet. Mittlerweile sind sie auf den meisten Webseiten sogar individuell gestaltet. Trotzdem sorgen sie hin und wieder für enttäuschte Gesichter – und für Ärger beim Webadministrator.
Ich spreche von HTTP-Statuscodes und den dazugehörigen Fehlerseiten im Browser.
Der bekannteste unter ihnen ist der 404-Fehler (siehe Abbildung). Besonders ärgerlich ist er, wenn man gerade eine spannende Seite gefunden hat – und diese sich einfach nicht öffnen lässt.
Natürlich gibt es noch viele weitere wichtige Statuscodes, die du im Browser zu sehen bekommst. Die wichtigsten stelle ich dir gleich in einer übersichtlichen Infografik vor. Außerdem erfährst du, was es mit diesen Codes auf sich hat und was die einzelnen Meldungen bedeuten.
Was sind HTTP Statuscodes und wie entstehen diese?
Schauen wir uns zuerst an, was passiert, wenn du eine Internetseite aufrufst.
Stell dir vor, du möchtest in der Online-Enzyklopädie Wikipedia ein bestimmtes Wort nachschlagen. Du tippst also www.wikipedia.de in die Adresszeile deines Browsers und bestätigst die Eingabe. Wenn alles reibungslos läuft, wird dir die Website angezeigt – und du kannst direkt mit der Suche beginnen.
Doch was passiert im Hintergrund?
Sobald du die Eingabe der URL www.wikipedia.de in deinem Webbrowser bestätigt hast, schickt dieser eine Anfrage an den entsprechenden Webserver. Der Server bearbeitet deine Anfrage und liefert die angefragte Webseite aus. Die Webseite erscheint auf deinem Bildschirm.
Für diesen Prozess wird HTTP (Hypertext Transfer Protokoll) genutzt und um den Erfolg oder Misserfolg einer Anfrage an deinen Computer zu übermitteln, verwendet das Protokoll sogenannte Status-Meldungen. Das sind die angesprochenen HTTP Statuscodes. Ein HTTP Statuscode ist immer eine dreistellige Nummer im Bereich von 100 – 599.
Bei der oben geschilderten Anfrage, wird deinem Browser z.B. der Statuscode 200 zurückgeliefert. Dieser sagt aus, dass mit der Anfrage alles OK ist, die Webseite gefunden wurde und sie ordnungsgemäß ausgeliefert werden kann.
Wichtig ist hier noch zu wissen, dass nicht jeder Statuscode auch eine Fehlermeldung im Browser erzeugt. Wenn deine Anfrage letztendlich bearbeitet werden konnte, ist dies auch gar nicht notwendig.
Die Klassen der HTTP Statuscodes
Insgesamt gibt es rund 40 unterschiedliche HTTP Statuscodes. Diese können in 5 Klassen eingeteilt werden:
Klassen | Beschreibung der Klasse |
---|---|
100-199 | Hierbei handelt es sich um einen Hinweis für deinen Rechner. Zum Beispiel teilt der Server deinem Rechner über diese Klasse von HTTP Statuscodes mit, dass er deine Anfrage erhalten hat oder das der Verarbeitungsprozess ausgeführt wird. |
200-299 | In dieser Klasse sind HTTP Statuscodes zusammengefasst, die für eine erfolgreiche Bearbeitung stehen. Wenn z.B. die angefragte Webseite erfolgreich zurückgesendet werden konnte oder eine Datei erfolgreich auf dem Server gespeichert wurde, wird ein Statuscode dieser Klasse verschickt. |
300-399 | Bei diesen HTTP Statuscodes, muss der Client immer eine neue Aktion veranlassen. Sei es aus dem Grund, dass die angefragte Internetseite verschoben wurde oder dein Rechner die Seite aus dem Cache laden soll. |
400-499 | Diese Status-Meldungen umfassen alle Client-Fehler die bei einer Anfrage auftreten können. In dieser Klasse ist auch der Eingangs erwähnte 404 Fehler zu finden, den ich gleich noch näher beschreiben werde. |
500-599 | In dieser Klasse sind Fehlermeldungen des Servers zusammengefasst. |
Die wichtigsten Statuscodes in der Übersicht
Jetzt wird es Zeit dir die wichtigsten HTTP Statuscodes vorzustellen. Auf diese wirst du immer wieder stoßen. Nicht nur wenn du im Internet surfst, sondern auch wenn du eine Homepage erstellst. Bühne frei für die erste Infografik hier auf dem Webschmöker.
Ich hoffe die Infografik hat dir gefallen. Sollte das so sein, dann fühl dich frei diese auszudrucken oder auf deiner eigenen Webseite einzubinden.
Zur Einbindung kannst du den folgenden Quellcode verwenden:
<a href=”https://www.webschmoeker.de/die-wichtigsten-http-statuscodes/” title=”Infografik: HTTP Statuscodes” target=”_blank”>
<img src=”https://www.webschmoeker.de/wp-content/uploads/2014/08/http-statuscodes-infografik.png” alt=”Infografik” style=”width:100%”>
</a>
<p>Quelle: <a href=”https://www.webschmoeker.de” title=”Der Webschmöker”>Der Webschmöker</a>
Einzelne HTTP Statuscodes näher betrachtet
Das war bis jetzt gute Lektüre zum Schmökern oder? Jetzt will ich dir den ein oder anderen HTTP Statuscode aber noch näher vorstellen. Bei diesen reichen die Informationen in der Infografik nicht aus, um den genauen Ablauf zu verstehen.
301 – Moved Permanently
Der HTTP-Statuscode 301 – Moved Permanently wird für dauerhafte Weiterleitungen (Redirects) verwendet. Er sorgt dafür, dass dein Rechner automatisch eine neue Anfrage an eine andere Adresse stellt.
Der Webserver sendet diesen Code, wenn du eine URL aufrufst, die dauerhaft verschoben wurde und nun unter einer neuen Adresse erreichbar ist.
Der Webserver liefert in dem Fall nicht sofort die angeforderte Webseite aus, sondern schickt zuerst eine Antwort mit dem Statuscode 301 und der neuen Adresse des Dokuments. Dein Rechner verarbeitet diese Informationen und sendet eine neue Abfrage mit dem neuen Ort, an dem sich das Dokument befindet. Erst dann liefert der Webserver das angefragte Dokument auch wirklich aus.
Von dieser Prozedur bekommst du nicht viel mit. Man kann das Verfahren aber sehr schön nachstellen. Tippe doch einfach mal die URL www.webschmoeker.de/grundlagen in die Adresszeile deines Browser ein. Wichtig hierbei ist, dass du kein abschließendes Slash-Zeichen verwendest. Bestätige deine Eingabe und achte darauf, wie sich die URL nach dem Laden der Seite verändert hat.
Wenn alles so funktioniert hat, wie ich mir das vorstelle, steht in der Adresszeile deines Browsers jetzt www.webschmoeker.de/grundlagen/. Habe ich Recht?
Was ist hier passiert?
Bei deiner Abfrage ohne das abschließende Slash-Zeichen, macht sich der Webserver auf die Suche nach einer Datei, die entsprechend bezeichnet worden ist. Diese wird er aber an der Position nicht finden. Deshalb sucht er anschließend nach einem Verzeichnis mit dem angegebenen Namen. Dieses existiert und der Webserver schickt einen 301 Statuscode und die neue Adresse (mit dem End-Slash) an deinen Rechner zurück. Dein Rechner sendet nun eine neue Abfrage an den Webserver und die Seite wird ausgeliefert.
Daher kommt also das Slash am Ende der URL.
Weiterleitungen kannst du natürlich auch manuell setzen. Überarbeitest du z.B. deine Navigation und ändern sich dabei die URLs deiner einzelnen Internetseiten, ist es sinnvoll 301 Redirects einzurichten. Damit wird sichergestellt, dass die User, aber auch die Suchmaschinen, deine Inhalte weiterhin finden. Die Nutzung des HTTP Statuscode 301 Moved Permanently, wird sogar von Google für solche Zwecke empfohlen.
304 – Not Modified
Dieser HTTP Statuscode wird beim Caching einer Webseite eingesetzt.
Rufst du eine Webseite das erste Mal auf, werden z.B. die Bilder der Internetseite auf deiner Festplatte (im sogenannten Browser-Cache) abgelegt. Bei einem erneuten Besuch der gleichen Seite, sendet dein Rechner zusätzliche Informationen an den Webserver. Über diese Informationen, kann festgestellen werden, ob es Änderungen an den Bildern seit deinem letzten Besuch gab. Ist dies nicht der Fall, sendet der Server den HTTP Statuscode 304 Not Modified zurück und dein Browser verwendet die Bilder, die sich auf deiner Festplatte befinden.
Dieses Verfahren spart sehr viel Ladezeit, da die Bilder nicht vom Webserver übertragen werden müssen. Wenn du also gerade damit beschäftigt sein solltest, die Ladezeiten deiner Homepage zu optimieren, aktiviere auf jeden Fall das Browser-Caching 😉
403 – Forbidden
Der HTTP-Statuscode 403 – Forbidden wird vom Webserver gesendet, wenn er deine Anfrage zwar verstanden hat, du jedoch keine Zugriffsrechte auf das angeforderte Dokument oder Verzeichnis besitzt.
Typische Gründe für einen 403-Fehler
Ein Beispiel:
Wenn auf einem Webserver in einem bestimmten Verzeichnis keine Datei wie index.html vorhanden ist, kann der Browser normalerweise den gesamten Inhaltsverzeichnisbaum anzeigen. So könnten Dritte leicht an deine Bilder, Quellcodes oder andere Dateien gelangen und diese herunterladen.
Da viele Webmaster dies verständlicherweise verhindern möchten, schützen sie solche Verzeichnisse durch besondere Zugriffsrechte. Wenn du dennoch versuchst, ein solches geschütztes Verzeichnis aufzurufen, antwortet der Server mit dem Statuscode 403. In deinem Browser erscheint dann eine Meldung, dass dir der Zugriff verweigert wird.
Hinweis: Unterschied zu Statuscode 401
Ähnlich funktioniert das Verfahren beim HTTP-Statuscode 401 – Unauthorized. Auch hier wurden bestimmte Zugriffsrechte gesetzt. Der Unterschied: Bei einem 401-Code erscheint ein Anmeldefenster, in das du Benutzername und Passwort eingeben kannst. Nach erfolgreicher Anmeldung wirst du zum entsprechenden Verzeichnis oder Dokument weitergeleitet.
So lässt sich auf einfache Weise ein geschützter Bereich auf einem Webserver einrichten.
Fazit
HTTP Statuscodes sind ein wichtiges Kommunikationsmittel zwischen deinem Rechner und dem Webserver. Über diese wird der Erfolg oder Misserfolg des Abrufs einer Webseite kommuniziert.
Wie der Name es vermuten lässt, werden die HTTP Statuscodes vom Hypertext Transfer Protokoll verwendet und sind dreistellige Nummer im Bereich von 100 – 599. Jeder der rund 40 existierenden HTTP Statuscodes steht für ein spezielles Ereignis, welches während der Kommunikation auftreten kann. Diese Ereignisse lassen sich in 5 verschiedene Klassen aufteilen.
Bist du häufiger im Internet unterwegs oder beschäftigst dich mit der Erstellung deiner eigenen Homepage, wirst du einige HTTP Statuscodes öfters antreffen. Besonders wenn du deine eigene Homepage erstellst, ist es nicht verkehrt zu wissen, welcher Statuscode für welches Ereignis steht. Wir einen schnellen Überblick über die wichtigsten HTTP Statuscodes, habe ich dir in diesem Artikel eine Infografik zur Verfügung gestellt. Schau dir diese am besten nochmal an und druck sie dir aus. Die Informationen wirst du wahrscheinlich häufiger benötigen, als du aktuell vermutest.
Super Erklärungen . Hab jetzt echt einen besseren Durchblick und Verständnis. Vielen Dank