Jeder Internet-Nutzer wird irgendwann einmal mit der Meldung „Fehler 404 – diese Seite existiert nicht“ konfrontiert. Dabei handelt es sich um einen von zahlreichen HTTP-Status-Codes, mit dem der Server auf die Anfrage Ihres Clients antwortet. Diese bestehen aus einer dreistelligen Zahl und geben Auskunft über Erfolg oder Misserfolg eines Request. In diesem Beitrag haben wir die wichtigsten HTTP-Status-Codes und Ihre Bedeutung einmal für Sie zusammengefasst.
Darunter versteht man die Antwort eines Servers auf eine HTTP-Anfrage („Request“) eines Clients. In der Regel handelt es sich dabei um einen Webbrowser (z.B. Chrome, Firefox oder Opera).
Die erste Ziffer der dreistelligen Codes steht für die Status-Klasse (z.B. „Server-Fehler“ oder „Erfolgreiche Operation“). Zudem werden sie in verschiedenen RFC („Request for Comments“)Dokumenten klassifiziert.
Der Webbrowser zeigt die Status Codes in der Regel nicht an. Um diese zu beobachten, benötigen Sie spezielle Tools oder entsprechende Browser-Erweiterungen.
Inhalt [Ausblenden]
Die wichtigsten HTTP-Status-Codes im Überblick
1xx: Informative Codes
Code |
Nachricht |
HTTP-Version |
Beschreibung |
100 |
Continue |
1.1 |
Die Anfrage wurde akzeptiert, wird aber noch bearbeitet. Der Server wartet auf weitere Anfragen des Clients. |
101 |
Switching Protocols |
1.1 |
Der Code wird üblicherweise auf Client-Seite angefragt und gibt an, dass der Server mit einem Protokoll-Wechsel (z.B. von HTTP zu einem anderen Protokoll) einverstanden ist. |
102 |
Processing |
2.0 |
Dient zur Vermeidung von Time-Outs, während der Server zeitintensive Anfragen (z.B. infolge eines WebDAV-Requests mit mehreren SubRequests) verarbeitet. |
Gut zu wissen: WebDAV (Web-based Distributed Authoring and Versioning) wurde entwickelt, um Dokumente und Dateien innerhalb eines Netzwerks basierend auf HTTP bearbeiten und verändern zu können.
2xx: Erfolgreiche Operationen
Code |
Nachricht |
HTTP-Version |
Beschreibung |
200 |
OK |
1.0 / 1.1 |
Die Anfrage war erfolgreich. Das Ergebnis wird zusammen mit der Antwort übermittelt. |
201 |
Created |
1.0 / 1.1 |
Eine neue Ressource wurde erstellt und zwischenzeitlich geladen. Ein Code 201 wird typischerweise als Antwort des Servers auf einen sogenannte PUT-Anfrage übermittelt. |
202 |
Accepted |
1.0 / 1.1 |
Die Client-Anfrage wurde akzeptiert, wird aber erst später ausgeführt. |
203 |
Non-Authoritative Information |
1.0 / 1.1 |
Der Server übernimmt die Rolle eines sogenannten „Transforming Proxy“. Er erhält einen Code 200 von der Quelle und liefert im Anschluss einen modifizierte Version der Antwort (der Quelle). |
204 |
No Content |
1.0 / 1.1 |
Die Anfrage war erfolgreich, die Antwort enthält aber (bewusst) keine Daten. Den Clients soll weiterhin der alte Inhalt angezeigt werden. |
205 |
Reset Content |
1.1. |
Die Anfrage war erfolgreich. Der Client soll das Dokument neu laden und die Formulareingaben zurücksetzen. |
206 |
Partial Content |
1.1. |
Sendet der Client einen sogenannte „Range Header“-Request, dann antwortet der Server mit Code 206 und informiert über die Übermittlung von Teilen der angeforderten Ressource. Ein typisches Beispiel dafür sind unterbrochene und wiederaufgenommene Downloads. |
207 |
Multi-Status |
2.0. |
Die Antwort beinhaltet ein XML-Dokument, das mehrere Statuscodes zu eigenständigen Operationen enthält. |
208 |
Already Reported |
1.1 |
Der Code 208 wird innerhalb einer WebDAV-Bindung verwendet und zeigt an, dass die Mitglieder der Bindung zuvor bereits aufgezählt wurden und daher in dieser Antwort nicht mehr vorhanden sind. |
226 |
IM Used |
Der Server hat eine GET-Anfrage erfüllt. Die Antwort enthält das Ergebnis einer oder mehrerer Instanz-Manipulationen dieser Instanz. |
3xx: Umleitungen
Code |
Nachricht |
HTTP-Version |
Beschreibung |
300 |
Multiple Choices |
1.1 |
Die angefragte Ressource liegt in mehreren Arten vor. Die Antwort enthält eine Liste der möglichen Varianten. |
301 |
Moved Permanently |
1.0 / 1.1 |
Code 301 (Redirect) gibt an, dass die angeforderte Ressource künftig unter der im „Location“-Header-Feld genannten Adresse bereitsteht. Die alte Adresse ist nicht mehr gültig. |
302 |
Found (Moved Temporarily) |
1.0 / 1.1 |
Laut Status-Code 302 ist die Ressource vorübergehend unter der im Header genannten Adresse erreichbar. Die alte Adresse bleibt aber weiterhin gültig. |
303 |
See Other |
1.1 |
Die Antwort des Servers kann unter einer anderen URI-Adresse mit Hilfe der GET-Methode abgeholt werden. Damit ist nach einer POST-Abfrage ein nahtloser Wechsel zu einer ausgewählten Ressource möglich. |
304 |
Not Modified |
1.0 / 1.1 |
Der Status-Code 304 zeigt an, dass sich am Inhalt der angeforderten Ressource seit der letzten Anfrage nichts geändert hat. Die Antwort enthält daher auch keine Daten. |
305 |
Use Proxy |
1.1 |
Die Ressource ist nur über den im „Location“-Header angegebenen Proxy erreichbar. |
306 |
(unused) |
1.1 |
Der Status-Code 306 ist zwar reserviert, wird aber nicht mehr verwendet. Er diente ursprünglich für die Antwort „Switch Proxy“. |
307 |
Temporary Redirect |
1.1 |
Die angeforderte Ressource wurde gefunden und steht vorübergehend unter der im „Location“-Header-Feld angegebenen Adresse bereit. Die alte Adresse bleibt aber weiterhin gültig. Der Browser soll mit derselben Methode folgen wie beim ursprünglichen Request. |
308 |
Permanent Redirect |
Die angeforderte Ressource wurde gefunden und steht vorübergehend unter der im „Location“-Header-Feld angegebenen Adresse bereit. Die alte Adresse ist nicht mehr gültig. Die kommenden Browser-Abfragen soll mit derselben Methode erfolgen wie beim ursprünglichen Request. |
4xx: Client-Fehler
Code |
Nachricht |
HTTP-Version |
Beschreibung |
400 |
Bad Request |
1.0 / 1.1 |
Die Anfrage war fehlerhaft, daher kann sie vom Server nicht bearbeitet werden. |
401 |
Unauthorized |
1.0 / 1.1 |
Die Anfrage kann ohne entsprechende Autorisierung nicht verarbeitet werden. Im WWW_Authenticate-Antwortheader wird erläutert, wie die Authentifizierung durchzuführen ist. |
402 |
Payment Required |
1.1 |
Bezahlung erforderlich. Der Statuscode ist für die zukünftige Verwendung reserviert. |
403 |
Forbidden |
1.0 / 1.1 |
HTTP Fehler 403 zeigt an, dass der Zugriff auf die Inhalte mangels Berechtigung des Clients dauerhaft verboten ist. Die Anfrage soll nicht noch einmal gestellt werden. |
404 |
Not Found |
1.0 / 1.1 |
Der Server konnte die angeforderte Ressource nicht finden. Ursache dafür ist in den meisten Fällen ein sogenannter „Toter Link“. |
405 |
Method Not Allowed |
1.1 |
Status-Code 405 besagt, dass die Anfrage-Methode nicht erlaubt ist und nur mit anderen Methoden (z.B. GET oder POST) gestellt werden darf. |
406 |
Not Acceptable |
1.1 |
Der Status-Code 406 zeigt an, dass die angefragte Ressource nicht in der vom Client gewünschten Form geliefert werden. |
407 |
Proxy Authentication Required |
1.1 |
Ähnlich wie beim Status-Code 401 erfordert diese Antwort eine Authentifizierung. In diesem Fall muss sich der Client allerdings gegenüber einem Proxy ausweisen, welcher dazu das Antwortfeld Proxy-Authenticate mitliefern muss. |
408 |
Request Timeout |
1.1 |
Der Client hat die Anfrage nicht in der vom Server vorgegebenen Zeit beendet. HTTP Fehler 408 tritt z.B. beim Upload großer Dateien etc. auf. |
409 |
Conflict |
1.1 |
Die Anfrage wurde unter falschen Annahmen gestellt und kann nicht bearbeitet werden, da ansonsten ein Konfliktfall bei der anfragenden Ressource entstehen würde. Im Falle einer PUT-Anfrage kann dies zum Beispiel auf eine zwischenzeitliche Veränderung der Ressource durch Dritte zurückgehen. |
410 |
Gone |
1.1 |
Die Ressource existiert nicht mehr und wurde dauerhaft entfernt. |
411 |
Length Required |
1.1 |
Die Bearbeitung der Anfrage ohne „Content-Length“-Header wird vom Server abgelehnt. |
412 |
Precondition Failed |
1.1 |
Eine durch den Client vorgegebene Bedingung ist nicht erfüllbar. |
413 |
Request Entity Too Large |
1.1 |
Die gestellte Anfrage war zu groß, um vom Server bearbeitet werden zu können und wird daher abgelehnt. Ursache hierfür kann z.B. eine hochgeladene Datei sein. |
414 |
URI Too Long |
1.1 |
Die Anfrage-URL ist zu lang. |
415 |
Unsupported Media Type |
1.1 |
Der angefragte Medien- oder MIME-Typ wird nicht unterstützt. |
416 |
Requested range not satisfiable |
1.1 |
Der angefragte Teilbereich der Ressource existiert nicht oder ist ungültig. Tritt beispielsweise im Zusammenhang mit partiellen Downloads auf. |
417 |
Expectation Failed |
1.1 |
Wird im Zusammenhang mit einem „Expect“-Header-Feld verwendet. Das im „Expect“-Header-Feld vom Client geforderte Verhalten des Servers kann nicht erfüllt werden. |
420 |
Policy Not Fulfilled |
1.1 |
Vorschlag in W3C PEP (Working Draft 21. November 1997), um mitzuteilen, dass eine Bedingung nicht erfüllt wurde. |
421 |
Misdirected Request |
2.0 |
Die Anfrage ging an einen Server, der nicht in der Lage ist, eine Antwort zu senden. |
422 |
Unprocessable Entity |
1.1 |
Der Status-Code wird verwendet, wenn weder die Rückgabe von Statuscode 415 noch 400 gerechtfertigt wäre, eine Verarbeitung der Anfrage jedoch (zum Beispiel wegen semantischer Fehler) abgelehnt wird. |
423 |
Locked |
1.1 |
Die angeforderte Ressource ist zur Zeit gesperrt. |
424 |
Failed Dependency |
1.1 |
Die Anfrage konnte nicht durchgeführt werden, weil sie das Gelingen einer vorherigen Anfrage voraussetzt. |
426 |
Upgrade Required |
1.1 |
Der Server besteht darauf, dass der Client die Anfrage mit einem anderen Protokoll wiederholt. Ein typischer Anwendungsfall ist das Umschalten auf HTTP mit Transport Layer Security. |
428 |
Precondition Required |
1.1 |
Die für die Anfrage notwendigen Vorbedingungen wurden nicht alle erfüllt. |
429 |
Too Many Requests |
1.1 |
Der Client hat zu viele Anfragen innerhalb eines bestimmten Zeitraumes gestellt. |
431 |
Request Header Fields Too Large |
1.1 |
Die Maximallänge eines Header-Feldes oder des Gesamt-Headers wurde überschritten. |
451 |
Unavailable For Legal Reasons |
1.1 |
Die Ressource ist aus rechtlichen Gründen nicht verfügbar (z.B. aufgrund von Copyright oder Zensur in bestimmten Ländern). Der Status-Code wurde 2015 eingeführt und ist nach Ray Bradburys Roman „Fahrenheit 451“ benannt. |
Gut zu wissen: Mit dem Status 418 gibt es noch einen weiteren Code der Kategorie Client-Fehler. Innerhalb eines nicht ganz ernst gemeinten Protokolls zum Kaffeekochen (Hyper Text Coffee Pot Control Protocol) zeigt dieser an, dass anstelle einer Kaffeekanne fälschlicherweise eine Teekanne verwendet wurde. Der Statuscode ist aber weder Bestandteil von HTTP noch in der SCR („Status Code Registry“) definiert.
5xx: Server-Fehler
Code |
Nachricht |
HTTP-Version |
Beschreibung |
500 |
Internal Server Error |
1.0 / 1.1 |
Status-Code 500 wird dann angezeigt, wenn die Anfrage aufgrund eines internen (Server-)Fehlers nicht ausgeführt werden kann. |
501 |
Not Implemented |
1.0 / 1.1 |
Der Server verfügt nicht über die notwendige Funktionalität, um die Anfrage bearbeiten zu können. Ursache ist häufig eine unbekannte oder nicht unterstützte HTTP-Methode. |
502 |
Bad Gateway |
1.0 / 1.1 |
HTTP Fehler 502 bedeutet, dass der Server seine Funktion als Gateway oder Proxy nicht erfüllen konnte, weil im weiteren Verlauf ein Fehler aufgetreten ist. |
503 |
Service Unavailable |
1.0 / 1.1 |
Der Dienst bzw. Server ist zur Zeit nicht verfügbar. Das ist beispielsweise bei Wartungsarbeiten oder Überlastung etc. der Fall. |
504 |
Gateway Timeout |
1.1 |
Die Anfrage kann vom Proxy aufgrund einer Zeitüberschreitung nicht bearbeitet werden. |
505 |
HTTP Version not supported |
1.1 |
Die angeforderte HTTP-Version wird nicht unterstützt. |
506 |
Variant Also Negotiates |
Die Inhaltsvereinbarung der Anfrage ergibt einen Zirkelbezug. |
|
507 |
Insufficient Storage |
Die Anfrage konnte nicht bearbeitet werden, da der aktuell verfügbare Speicherplatz des Servers dafür nicht ausreicht. |
|
508 |
Loop Detected |
Die Operation wurde nicht ausgeführt, weil die Ausführung in eine Endlosschleife gelaufen wäre. Der Status-Code ist in der Binding-Erweiterung für WebDAV (gemäß RFC 5842) definiert, da durch Bindings zyklische Pfade zu WebDAV-Ressourcen entstehen können. |
|
509 |
Bandwidth Limit Exceeded |
Die Anfrage des Clients wurde verworfen, da ansonsten die verfügbare Bandbreite überschritten worden wäre. Bei diesem Status-Code handelt es sich um eine inoffizielle Erweiterung einiger Server. |
|
510 |
Not Extended |
Die Anfrage enthält nicht alle Informationen, die die angefragte Server-Extension zwingend erwartet (RFC 2774). |
|
511 |
Network Authentication Required |
Der Client muss sich erst authentifizieren, bevor er Zugriff zum Netzwerk erhält. |
Hinweis: Einige Software-Hersteller verwenden proprietäre HTTP-Status-Codes, die ab 9XX beziffert werden. Es handelt sich bei diesem Zahlenbereich allerdings um einen Sonderfall, der in den RFC-Dokumenten nicht erwähnt wird und damit auch jenseits des Standards liegt.
Im folgenden Video werden die wichtigsten HTTP-Status-Codes noch einmal erklärt: