HTTP-Status-Codes

2xxErfolg
200OK
Der Server kann die angeforderten Daten wie gewünscht versenden.
201Created
Ein Objekt (z.B. eine Datei oder ein Verzeichnis) wurde auf dem Server erfolgreich angelegt.
Das kann vorkommen, wenn die Anfrage des Browsers an den Server mit einer der HTTP-Übertragungs-Methoden post oder put erfolgte und eine Anweisung zum Erstellen des entsprechenden Objekts enthielt.
202Accepted
Der Server hat die Anfrage des Browsers akzeptiert, liefert aber keine Daten als Antwort. Der Server schreibt die Daten (statt sie zu senden) in eine Datei und teilt in der Meldung mit, wo die Daten später zu finden sein werden.
Diese Meldung sagt nichts darüber aus, ob der Server die Anfrage erfolgreich behandeln kann. Er hat sie einfach nur akzeptiert und die Abarbeitung auf einen späteren Zeitpunkt verschoben.
203Non-Authoritative Information
Dieser Status-Code sollte von einem Server anstelle von 200 zurückgegeben werden, wenn es sich nicht um den Original-Server handelt, sondern beispielsweise um einen Proxy-Server.
Der Web-Browser erfährt auf diese Weise, dass die Daten erfolgreich gesendet werden konnten, aber nicht vom Original-Server kommen und daher keine Garantie auf deren Aktualität besteht.
204No Content
Der Server hat die Anfrage erhalten, sendet jedoch keine Daten zurück.
Gut verwendbar ist dieser Status-Code bei Verwendung in CGI-Scripts, die zwar etwas auf dem Server erledigen, aber keinen neuen HTML-Code an den aufrufenden Browser senden wollen. Aus Sicht des Anwenders bleibt der alte Bildschirminhalt bestehen.
205Reset Content
Der Server hat die Anfrage ausgeführt, muss aber keine Daten zurücksenden.
Stattdessen sollte der Browser den Bildschirminhalt, der zu der Anfrage geführt hat, zurücksetzen. Das ist vor allem im Zusammenhang mit serverseitigen Skripten sinnvoll, wenn der Benutzer mehrere Eingaben über das gleiche Formular machen soll, und sich dieses zwischenzeitlich nicht ändert.
206Partial Content
Der Client hat nur einen Teil der Daten angefordert und der Server versendet diese wie gewünscht.
Mit Angaben zu content-length (z.B.: 1024) und content-range (z.B.: bytes 0-1023/1024) wird angegeben, wie viele Bytes von dem angeforderten Inhalt geliefert werden, und welcher Teil der Gesamtdaten. Das passiert zum Beispiel, wenn ein vorangegangener Download unterbrochen wurde und der Client an der Abbruchstelle erneut mit dem Herunterladen beginnt.
3xxUmleitung
300Multiple Choices
Die angeforderten Daten liegen in mehreren verschiedenen Ausführungen vor.
Anstelle der Daten werden die verfügbaren URIs und ihre Eigenschaften (zum Beispiel Sprache oder MIME-Typ) als Liste übertragen. Der Web-Browser kann den Anwender anschließend in einem Dialog einen URI auswählen lassen oder die Auswahl automatisch treffen.
301Moved Permanently
Die angeforderten Daten wurden dauerhaft auf eine andere Adresse verschoben.
In der Statusmeldung wird angegeben, unter welchem URI sich die Daten jetzt befinden. Ein Web-Browser, der diese Antwort vom Server erhält, kann beispielsweise gleich die neue Adresse anfordern.
302Moved Temporarily
Die angeforderten Daten wurden vorübergehend zu einem anderen URI verschoben.
In der Statusmeldung wird angegeben, unter welcher Adresse sich die Daten derzeit befinden. Ein Web-Browser, der diese Antwort erhält, kann beispielsweise gleich die temporär gültige Adresse anfordern.
303See Other
Die angeforderten Daten sind unter einem angegebenen URI verfügbar und sollten von dort mit Hilfe der get-Methode angefordert werden.
Dieser Status-Code ist für CGI-Scripts gedacht, die mit der post-Methode aufgerufen wurden und den Browser auf eine andere Ressource lenken wollen, die mit der get-Methode angefordert werden soll.
304Not Modified
Die angeforderten Daten haben sich nicht geändert und werden deshalb nicht gesendet.
Dieser Status-Code ist neben dem Cod  200 einer der häufigsten in der Praxis. Er tritt auf, wenn ein moderner Webbrowser, der die Daten noch im Cache hat, eine Anfrage an den Server sendet und dabei den Ladezeitpunkt der Daten in seinem Cache übermittelt. Stellt der Server dann fest, dass sich die Daten seit dem angegebenen Zeitpunkt nicht geändert haben, braucht er sie nicht noch einmal zu übermitteln, sondern sendet nur diesen Statuscode und keine Daten. Der Browser holt daraufhin seine alte Version aus dem Cache.
305Use Proxy
Die angeforderten Daten sollen statt von diesem Server von dem in der Statusmeldung angegebenen Proxy-Server angefordert werden.
307Temporary Redirect
Wie Status-Code 302. Gedacht für Fehlreaktionen einiger Browser auf 302.
4xxClient-Fehler
400Bad Request
Die Anfrage enthält Syntaxfehler. Der Server kann die Anfrage deshalb nicht bearbeiten.
Das kann beispielsweise vorkommen, wenn der verwendete Browser einen Programmierfehler aufweist und ungültige Anfragen sendet, oder ein Mensch versucht, händisch (also etwa mit telnet) mit dem Server zu kommunizieren und dabei einen Fehler macht.
401Unauthorized
Die angeforderten Daten sind zugangsgeschützt.
Der Server kann die Daten nur senden, wenn eine gültige Zugangskennung, bestehend aus Benutzername und Passwort, bei der Anfrage mit gesendet wird. Das passiert in der Praxis immer dann, wenn eine Adresse aufgerufen wird, die z.B. durch htaccess zugangsgeschützt ist. Der Web-Browser zeigt dann, nachdem er diesen Status-Code erhalten hat, einen Dialog zum Eingeben von Benutzername und Kennwort an. Mit den eingegebenen Daten startet er dann eine neue Anfrage an den Server.
402Payment Required
Die angeforderten Daten sind kostenpflichtig.
Der Server kann die Daten nur senden, wenn eine Bestätigung der Zahlung für die Daten bei der Anfrage mitgesendet wird. Derzeit wird dies aufgrund fehlender einheitlicher technischer Grundlagen für Micropayment noch nicht verwendet.
403Forbidden
Der Server möchte die angeforderten Daten nicht herausgeben.
Das passiert zum Beispiel, wenn der Zugriff auf die Ressource von dem IP-Adress-Bereich, aus dem die Anfrage kommt, in der Server-Konfiguration verboten wurde, die Ressource ganz und gar gesperrt wurde oder man versucht, ein Verzeichnis-Listing zu bekommen, dies jedoch in der Server-Konfiguration abgeschaltet wurde. Dies ist ein anderer Status als 401! Weder die Eingabe eines Passwortes noch das Wiederholen der Anfrage wird etwas bewirken.
404Not Found
Der angeforderte URI existiert nicht.
Dies ist neben den Status-Codes 200 und 304 einer der häufigsten Fälle in der Praxis. Er tritt immer dann ein, wenn ein Verweis auf eine nicht oder nicht mehr existierende Adresse auf dem Server führt, oder wenn der Anwender versucht hat, eine Adresse auf dem Server durch händisches Eintippen in der Adresszeile des Browsers aufzurufen, diese Adresse aber nicht existiert.
405Method Not Allowed
Die angegebene Übertragungs-Methode ist auf dem Server nicht erlaubt.
Die Daten werden deshalb nicht übertragen. Das kann z.B. vorkommen, wenn in der Konfiguration des Webservers außer der get-Methode keine weitere Methode erlaubt ist, ein HTML-Formular aber einen CGI-Aufruf mit der post-Methode enthält.
406Not Acceptable
Die Anfrage ist in dieser Form nicht akzeptabel. Die Daten werden deshalb nicht übertragen.
Zum Beispiel kann nach einem Bild mit dem Medientyp image/gif angefragt werden, der Server findet aber nur einen Treffer für image/png.
407Proxy Authentication Required
Die Anfrage soll über einen Proxy-Server geleitet werden. Der Proxy-Server ist aber zugangs­geschützt und leitet Anfragen erst nach dem Erhalt einer gültigen Zugangskennung weiter, die in der Regel aus Benutzername und Passwort besteht.
Beim Erhalt dieses Status-Codes verhält sich der Client ähnlich wie beim Status-Code 401, mit dem Unterschied, dass die Authentifizierung für den Proxy-Server gilt und nicht für den Zielserver. Das wird in der Praxis z.B. in größeren Installationen wie Firmen oder Universitäten eingesetzt, wo der Zugriff auf das Intranet frei ist, nach außen gehende Anfragen aber bestimmte Berechtigungen benötigen und zwangsweise durch einen Proxy-Server geleitet werden.
408Request Timeout
Der Server hat eine erwartete Anfrage nicht innerhalb des dafür festgelegten maximalen Zeitraums erhalten.
Die Verbindung zum anfragenden Browser wird deshalb abgebaut. Angeforderte Daten werden nicht übertragen.
409Conflict
Der Server kann die angeforderten Daten nicht senden, weil ein Konflikt mit einem anderen Prozess aufgetaucht ist.
Das kann z.B. passieren, wenn ein anderer Prozess eine angeforderte Datei gerade mit einem exklusiven File-Locking (keinerlei Dateizugriff für andere Prozesse erlaubt) versehen hat.
410Gone
Die angeforderten Daten wurden zu einem anderen URI verschoben.
Dem Server ist aber nicht bekannt, wohin. Deshalb kann er sie nicht senden - andernfalls wäre ein Status-Code 301 oder 302 gesendet worden.
411Length Required
Die Daten werden nicht gesendet.
Sie können nur gesendet werden, wenn die Anfrage eine Angabe zu content-length enthält. Der Browser kann versuchen, die Anfrage neu zu formulieren und dabei die Länge der an den Server gesendeten Anfragedaten mit zu übermitteln.
412Precondition Failed
Eine oder mehrere Bedingungen, die bei der Anfrage gestellt wurden, treffen nicht zu.
Die angeforderten Daten werden deshalb nicht übertragen.
413Request Entity Too Large
Der Server kann die Anfrage nicht bearbeiten, weil diese zu viele Zeichen enthält.
Die angeforderten Daten werden deshalb nicht übertragen.
414Request-URL Too Long
Der Server kann die Anfrage nicht bearbeiten, weil die angeforderte Adresse zu viele Zeichen enthält.
Die angeforderten Daten werden deshalb nicht übertragen.
415Unsupported Media Type
Der Server will die Anfrage nicht bearbeiten, weil der MIME-Typ, den der Client in der Anfrage verwendet hat, für diese Anfrage nicht unterstützt wird.
Die angeforderten Daten werden deshalb nicht übertragen.
416Requested Range Not Satisfiable
Die Anfrage enthält Angaben, welcher Byte-Bereich von dem angeforderten URI übertragen werden soll. Sowohl der Anfangswert als auch der Endwert des angegebenen Bereichs liegen außerhalb des verfügbaren Byte-Bereichs, z.B. wenn ein Byte-Bereich von 1000 bis 2000 angegeben wird, die Ressource aber nur 500 Byte hat.
Die angeforderten Daten werden deshalb nicht übertragen.
417Expectation Failed
Die Anfrage enthält im expect-Feld bestimmte Wünsche, die der Server nicht erfüllen kann.
Die angeforderten Daten werden deshalb nicht übertragen.
429Too Many Requests
Der Client hat zu viele Anfragen in einem bestimmten Zeitraum gesendet (festgelegter Schwellenwert von Anfragen pro Minute überschritten).
451Unavailable For Legal Reasons
Die Ressource ist (in einem bestimmten Land) aus rechtlichen Gründen (z.B. Copyright oder Zensur) nicht verfügbar.
5xxServer-Fehler
500Internal Server Error
Der Server kann die angeforderten Daten nicht senden, weil auf dem Server ein Fehler aufgetreten ist.
Beispielsweise konnte das aufgerufene CGI-Script nicht gestartet werden oder ein PHP-Skript enthält Fehler.
Nach meiner Erfahrung tritt dieser Fehler auch auf, wenn in der .htaccess automatisch eine IP gesperrt werden soll und durch einen Fehler statt deny from (IP) dort deny from (ohne IP) eingetragen wird.
Nach Löschung des fehlerhaften Eintrags in der .htaccess war meine Webseite wieder erreichbar.

Dieser Fehler trat bei mir innerhalb 25 Jahren (am 5.3.2025) jetzt zum ersten Mal auf!
501Not Implemented
Die Anfrage enthält Anforderungen, die der Server nicht bearbeiten kann, weil die Voraussetzungen dazu nicht implementiert sind.
Die angeforderten Daten können deshalb nicht gesendet werden.
502Bad Gateway
Zum Bearbeiten der Anfrage musste der Server einen anderen Server aufrufen, erhielt dabei jedoch eine Fehlermeldung.
Die angeforderten Daten können deshalb nicht gesendet werden.
503Service Unavailable
Der Server kann die Anfrage wegen Überlastung oder Wartungsarbeiten nicht bearbeiten.
Die angeforderten Daten können deshalb nicht gesendet werden. In der Statusmeldung kann stehen, wann die Anfrage frühestens wieder bearbeitet werden kann. Im Gegensatz zum Status-Code 202 verarbeitet der Server die Daten nicht, sobald er wieder Kapazitäten hat.
504Gateway Timeout
Zum Bearbeiten der Anfrage musste der Server einen anderen Server aufrufen, erhielt dabei jedoch nach einem festgelegten Maximal-Zeitraum keine Antwort.
Die angeforderten Daten können deshalb nicht gesendet werden.
505HTTP Version Not Supported
Der Server unterstützt die im HTTP-Header der Anfrage angegebene HTTP-Version nicht.
Die angeforderten Daten werden deshalb nicht gesendet.
507Insufficient Storage
Die Anfrage konnte nicht bearbeitet werden, weil der Speicherplatz des Servers dazu zurzeit nicht mehr ausreicht.
508 Loop Detected (Endlosschleife)
Die Operation wurde nicht ausgeführt, weil die Ausführung in eine Endlosschleife gelaufen wäre.
509Bandwidth Limit Exceeded (Übertragungsrate/Datenvolumen überschritten)
Die Anfrage wurde verworfen, weil sonst die verfügbare Bandbreite überschritten würde.
510Not Extended (zu wenig Informationen)
Die Anfrage enthält nicht alle Informationen, die die angefragte Server-Extension zwingend erwartet.
511Network Authentication Required (Identizifierung benötigt)
Der Client muss sich zuerst authentifizieren, um Zugang zum Netzwerk zu erhalten.




© 07.11.2007 HansiHerrmann.de