404 & Co.

Die häufigsten HTTP-Fehler und ihre Bedeutung

Einem HTTP-Fehler wie der 404 ist wohl jeder Internetnutzer schon begegnet. Fehlerhafte Links oder veraltete Webseiten: Immer wieder tauchen Probleme auf, mit denen Browser und Server umgehen müssen. Wie diese Fehler zustande kommen und was sie bedeuten, erklären wir hier!

404-Fehler© jamdesign / Fotolia.com

Um zu verstehen, wie ein HTTP-Fehler genau zustande kommt, sollte man sich zuerst ansehen, wie sich der Browser eigentlich mit einer Website verbindet. Dafür gibt es das HTTP-Protokoll (Hypertext Transfer Protocol), oder auch dessen sicheren Bruder HTTPS. Gibt man im Browser einen Link ein, verbindet sich dieser mit dem Server und schickt eine Anfrage. Normalerweise sucht der Server dann intern die passenden Daten zusammen und schickt diese gesammelt an den Browser zurück, welcher sie dann darstellt. Auch dieser Normalfall hat eine eigene Statusmeldung, die 200, was für "Ok" steht.

Der 404 – Nicht immer geht alles glatt

Der beispielhafte und wohl bekannte 404-Error taucht in dem Moment auf, in dem der Server die benötigten Daten nicht findet. Zum Beispiel kann das Bild, auf das ein Link verweist, schon wieder vom hochladenden Nutzer gelöscht worden sein. Dadurch bleibt dem Server nichts anderes, als dem Anfragesteller ein 404 "Not Found" zurückzugeben – der angefragte Inhalt konnte nicht gefunden werden. Da 404 der häufigste HTTP-Fehler ist, wird er bisweilen auch Alibi-mäßig benutzt, um aus anderen Gründen, die man nicht weiter offenbaren will, eine Anfrage abzulehnen.

Manche Seiten machen sich auch die Mühe, im Falle des 404 eine eigens designte Fehlerseite anzuzeigen, um dem erfolglos Suchenden zumindest noch ein Lächeln zu entlocken. Beispiele dafür finden sich zum Beispiel bei Lego und auf der Entwicklerplattform GitHub.

Andere HTTP-Fehler und Statusmeldungen

Die Liste an HTTP-Statuscodes, mit denen Browser und Server kommunizieren, ist lang und neben dem klassischen 404 gibt es noch ein paar Kandidaten, auf die man durchaus treffen kann. Dabei reicht die Bandbreite der Codes von reinen Informationsmitteilungen über erfolgreiche Bearbeitung und Umleitungen bis hin zu serverseitigen Fehlern. Der Aufbau der Codes ist dabei immer gleich: Eine dreistellige Nummer, wobei die Hunderterstelle die Kategorie anzeigt. Außerdem gibt es für jede Statusmeldung noch einen Kurznamen, wie zum Beispiel das oben genannte "Not Found".

1xx – "Ich wollte nur kurz Bescheid sagen…"

Bei der ersten Kategorie handelt es sich um Informationsmitteilungen oder besser Verfahrensbeschreibungen. Bekommt der Browser eine 100 ("Continue") zurück, weiß er zum Beispiel, dass er die restlichen Daten seiner gestellten Anfrage übertragen kann. Möchte man lieber HTTPS statt HTTP nutzen, kann der Browser ein Protokoll-Upgrade beim Server anfordern, welches dieser mit 101 ("Switching Protocols") bestätigt.

2xx – "Alles in Ordnung"

Den Normalfall und damit Hauptanteil an allen HTTP-Antworten stellen die Codes aus der 200-er Reihe, denn sie zeigen eine erfolgreiche Bearbeitung einer Abfrage. Das Resultat liegt dabei der Antwort in der Regel bei, zum Beispiel als Website, die der Browser anzeigt. Die Bandbreite reicht dabei vom simplen 200 "Ok", über das Anlegen von Ressourcen auf dem Server (201, "Created"), bis hin zum Wiederaufnehmen von abgebrochenen Downloads mit 206 "Partial Content". Wenn es etwas komplexer wird, passiert es auch schon einmal, dass man mit 207 "Multi-Status" einfach mehrere 200-er Codes gleichzeitig zurückbekommt.

3xx – "Unser Nachbar wohnt hier nicht mehr."

Oft passiert es, dass eine Website umzieht, man aber trotzdem noch die alte Adresse als Lesezeichen gespeichert hat. Das ist ein klassischer Fall für einen 301 mit dem passenden Namen "Moved Permanently" ("dauerhaft umgezogen"). An der alten Adresse lässt man einen Hinweis zurück, der einfach immer eine solche Antwort zusammen mit der neuen URL zurückgibt. Der Browser fragt daraufhin direkt bei der neuen Seite an und leitet einen weiter. Aber nicht nur Weiterleitungen können die Codes mit einer 3, sondern sie bieten auch Alternativen, zum Beispiel wenn mehrere Video-Formate zur Verfügung stehen, mit einem 300 "Multiple Choices" an, oder sagen Bescheid, dass sich seit dem letzten Besuch nichts getan hat: 304, "Not Modified".

4xx – Hier stimmt was nicht

Ab der 400-er Klasse kommen wir schließlich zu den richtigen Fehlern, die uns der Browser prompt entgegenwirft, wenn er sie nicht beheben kann. Der schon oben genannte 404 "Not Found" ist wohl der mit Abstand häufigste HTTP-Fehler, aber auch falsch aufgebaute Anfragen (400, "Bad Request"), fehlende Berechtigungen (403, "Forbidden"), oder rechtliche Gründe (451, "Unavailable For Legal Reasons") können zu Fehlern führen. Übergreifende Gemeinsamkeit aller 4xx-Fehler ist, dass das Problem in der Regel bei der Anfrage des Browsers liegt.

5xx – Serverbasierte Probleme

Wenn es Fehler gibt, bei denen wir das Problem sind, dann muss es natürlich auch das Gleiche für den Server geben, bei dem wir unseren Daten abholen möchten. Genau dafür sind die Fehler, die mit einer 5 beginnen, wie etwa der HTTP-Code 500 "Internal Server Error". Es kann aber auch passieren, dass der gewünschte Dienst gerade nicht verfügbar ist, was in einem 503 "Service Unavailable" resultiert. Dazu kommen noch die Probleme, die entstehen, weil ein zweiter Server, dem unser Kommunikationspartner eine eigene Anfrage geschickt hat, Probleme hat. Beispiele dafür sind 502 "Bad Gateway" und 504 "Gateway Timeout".

HTTPS - sicher im Netz unterwegs

Nicht zuletzt hier noch ein paar Worte zu HTTPS, der sicheren Erweiterung von HTTP: Meldet man sich auf einer Seite an, die nur HTTP unterstützt, wird unter anderem das eigene Passwort im Klartext an den Server übertragen, sodass jede Station dazwischen bequem mitlesen kann. Beim sichereren HTTPS dagegen überprüft der Browser zuerst, dass er überhaupt mit dem richtigen Server redet. Danach baut er eine verschlüsselte Verbindung auf, über die das Passwort ungesehen reisen kann. Leider unterstützen viele Server das sichere Protokoll noch nicht. Wer im Zweifel auf Nummer sicher gehen möchte und bei jeder Seite, die es anbietet, auf HTTPS zurückgreifen will, der kann Browser-Plugins wie etwa "HTTPS Everywhere" für Firefox nutzen.

Fehlercodes auch in anderen Sprachen

Abschließend ist es noch interessant, zu wissen, dass die Hunderternummerierung des HTTP-Protokolls auch an anderen Stellen Inspiration war. So gibt es mit dem Session Initiation Protocol (SIP) eine sehr ähnliche, aber umfangreichere Codeliste für beispielsweise Internettelefonie. Aber auch HTTP selbst wird oft durch nicht standardisierte Codes ergänzt. So wirft zum Beispiel der Google Playstore gerne Fehler im Bereich 49x, wenn storetypische Fehler auftreten. Noch chaotischer werden Fehler in der 900-er-Kategorie, denn dies sind "private" Fehler und können auf jedem Server anders aussehen.

Die wichtigsten HTTP-Fehler in der Übersicht

300 Multiple Choices (Mehrere Möglichkeiten) Verschiedene Antworten sind möglich. Beispiel: Ein Video kann mit HTML5 oder Flash angezeigt werden.
301 Moved Permanently (Dauerhaft umgezogen) Umleitung nach einem endgültigen Seitenumzug, meistens direkt vom Browser ausgeführt.
302 Found (Gefunden) Der Server hat die Ressource gefunden, aber sie liegt an einer anderen Stelle. Eine Weiterleitung erfolgt.
400 Bad Request (Fehlerhafte Anfrage) Die Anfrage macht keinen Sinn oder ist beschädigt, der Server kann damit nichts anfangen.
401 Unauthorized (Nicht autorisiert) Zugriff verweigert: Man muss sich anmelden, um fortfahren zu können.
403 Forbidden (Verboten) Entweder der Client hat nicht die erforderlichen Zugriffsrechte oder er hat versucht, eine HTTPS-Seite mit HTTP aufzurufen.
404 Not Found (Nicht gefunden) Der Server findet die gewünschte Ressource nicht. Ein Link, bei dem eine 404 zurückkommt, wird als toter Link bezeichnet.
451 Unavailable For Legal Reasons (Aus rechtlichen Gründen nicht verfügbar) Die geforderte Ressource ist aus rechtlichen Gründen nicht verfügbar. Anspielung auf die Dystopie Fahrenheit 451.
500 Internal Server Error (Interner Server-Fehler) Alles was schiefläuft und sonst in keine Kategorie passt…
502 Bad Gateway (Fehlerhafter Netzübergang) Der Server fragt bei einem anderen Server Informationen an, wobei ein Fehler auftritt.
503 Service Unavailable (Service nicht verfügbar) Der Dienst ist aktuell nicht erreichbar.
504 Gateway Timeout (Zeitüberschreitung) Ähnlich wie 502, bezieht sich aber auf eine zu lange Wartezeit auf eine Antwort.
505 HTTP Version Not Supported (HTTP-Version nicht unterstützt) Der Client arbeitet mit einer falschen (zu alten oder zu neuen) HTTP-Version.
Weitere Infos zum Thema

Mehr aus dem Web

Zum Seitenanfang