Info
Info

Statuscodes

HTTP-Statuscodes


Allgemeine Einordnung


CodeBezeichnungBeschreibung
1##Information
(Informational)
Diese Codes sind hauptsächlich experimentell genutzt.
Sie gibt an, daß der Request erhalten wurde und das Programm (Server) fortfährt.
2##Erfolgreiche Übertragung
(Success)
Die Code mit der Kennung 2xx werden zurückgegeben, wenn die Übertragung erfolgreich war, verstanden und erlaubt.
Typischerweise wird der Status Code 200 bei der erfolgreichen Übertragung einer Webseite angegeben.
3##Weiterleitung
(Redirection)
Diese Status Codes werden verwendetx um anzuzeigen, daß eine weitere Aktion vorgenommen werden muß bevor eine Seite zurückgegeben werden kann.
So sagt der Code 301, daß die Seite verschoben wurde und verweist gleichzeitig auf die neue URL.
4##Eingabe- oder Browserfehler
(Client Error)
Diese Code-Klasse wird zurückgegeben, falls die Anfrage falsch oder ungültig war.
So bedeutet »404: URL not found«, daß der Request auf eine nicht (mehr) existente Seite verweist.
5##Serverfehler
(Server Error)
Falls diese Code-Klasse zurüchgeliefert wird, kam es zu einem Fehler bei dem Server, den man nach einer URL gefragt hat.


Detaillierte Auflistung


CodeBezeichnungBeschreibung
100Continue
(Fortfahren)
Die laufende Anfrage an den Server wurde noch nicht zurückgewiesen.
Der Client kann nun mit der potentiell sehr großen Anfrage fortfahren.
101Switching Protocols
(Protokoll wechseln)
Wird verwendet, wenn der Server eine Anfrage mit gesetztem »Upgrade«-Header-Feld empfangen hat und mit dem Wechsel zu einem anderen Protokoll einverstanden ist.
Anwendung findet dieser Status-Code beispielsweise im Wechsel von HTTP zu WebSocket.
102Processing
(Verarbeitung läuft)
Wird verwendet, um ein Timeout zu vermeiden, während der Server eine zeitintensive Anfrage bearbeitet.
200OKDer Server kann die angeforderten Daten wie gewünscht versenden.
Dies ist der Normalfall, wenn keine Probleme auftauchen. Der größere Anteil aller Anfragen an den Web-Server sollte mit diesem Statuscode enden, ansonsten stimmt etwas nicht.
201CreatedEin 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-Übertragungsmethoden post oder put erfolgte und eine Anweisung zum Erstellen des entsprechenden Objekts enthielt.
202AcceptedDer 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 InformationDieser Statuscode 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 ContentDer Server hat die Anfrage erhalten, sendet jedoch keine Daten zurück.
Gut verwendbar ist dieser Statuscode 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 ContentDer angegebene Server existiert nicht bzw. der Server, der diese Antwort gibt, ist nicht der angefragte Server und kann den angefragten Server nicht finden. Die angeforderten Daten können deshalb nicht versendet werden.
206Partial ContentDie angeforderten Daten werden auf HTTP-Protokollebene in mehreren Portionen versendet.
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.
207Multi-Status Die Antwort enthält ein XML-Dokument, das mehrere Statuscodes zu unabhängig voneinander durchgeführten Operationen enthält.
208Already Reported Die Mitglieder einer WebDAV-Bindung wurden bereits zuvor aufgezählt und sind in dieser Anfrage nicht mehr vorhanden. (WebDAV RFC 5842)
226IM Used Der Server hat eine GET-Anforderung für die Ressource erfüllt, die Antwort ist eine Darstellung des Ergebnisses von einem oder mehreren Instanz-Manipulationen, bezogen auf die aktuelle Instanz. (RFC 3229)
300Multiple Choices
(Mehrfache Auswahl)
Die angeforderten Daten sind unter mehreren verschiedenen URIs vorhanden (Mirror). Anstelle der Daten werden die verfügbaren URIs als Liste übertragen. Der Web-Browser kann den Anwender anschließend in einem Dialog einen URI auswählen lassen.
301Moved Permanently
(Dauerhaft verschoben)
Die angeforderten Daten befinden sich nicht mehr unter dem URI, sie 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 Temporarialy
(Vorübergehend verschoben)
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
(Siehe an anderer Stelle)
Die angeforderten Daten sind unter einem angegebenen URI verfügbar und sollte von dort mit Hilfe der get-Methode angefordert werden. Dieser Statuscode 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
(Nicht verändert)
Die angeforderten Daten haben sich seit dem angegebenen Zeitpunkt nicht geändert und werden deshalb nicht gesendet. Dieser Statuscode ist neben dem Code 200 einer der häufigsten in der Praxis. Er wird verursacht durch Web-Browser, die aufgrund ihrer Cache-Einstellungen Daten erst wieder nach einer bestimmten Zeit vom Original-Server laden. Davor fragen sie nur mit dem Zeitpunkt, zu dem die Daten zuletzt geladen wurden, an, ob die Daten auf dem Server seitdem geändert wurden.
305Use ProxyDie angeforderten Daten sollen statt von diesem Server von dem in der Statusmeldung angegebenen Proxy-Server angefordert werden.
306[Unused]Reserviert. Wird nicht mehr verwendet, wurde für »Switch Proxy« genutzt.
307Temporary Redirect
(Vorübergehend umgeleitet)
Die angeforderte Ressource steht vorübergehend unter der im »Location«-Header-Feld angegebenen Adresse bereit. Die alte Adresse bleibt gültig.
Der Browser soll mit derselben Methode folgen wie beim ursprünglichen Request, d. h. einem POST folgt ein POST im Unterschied zu 302/303.
308Permanent Redirect
(Dauerhaft umgeleitet)
Die angeforderte Ressource steht ab sofort unter der im »Location«-Header-Feld angegebenen Adresse bereit, die alte Adresse ist nicht länger gültig.
Der Browser soll mit derselben Methode folgen wie beim ursprünglichen Request, d. h. einem POST folgt ein POST im Unterschied zu 302/303. (Experimentell eingeführt via RFC)
400Bad Request
(Ungültige Anfrage)
Die Anfrage enthält Syntaxfehler. Der Server kann die Anfrage deshalb nicht bearbeiten.
Das kann beispielsweise vorkommen, wenn die Anfrage dadurch zustande kam, dass ein Anwender versuchte, einen URI händisch in die Adresszeile des Browsers einzugeben und dabei ungültige Zeichen verwendete.
401Unauthorized
(Unautorisiert)
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
htacess zugangsgeschützt ist. Der Web-Browser zeigt dann, nachdem er diesen Statuscode 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
(Bezahlung erforderlich)
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
(Verboten)
Die angeforderten Daten sind zugangsgeschützt. Die angegebenen Daten, mit denen der Zugang erlaubt werden soll, sind ungültig.
Das kann z.B. vorkommen, wenn zuvor der Statuscode 401 zurückgeliefert worden war und der Browser nun die nächste Anfrage mit den Zugangsdaten gestartet hat, die er vom Anwender im Dialog abgefragt hat, und diese Daten aber ungültig sind. Manche Web-Browser wiederholen den Dialog zum Eingeben der Zugangsdaten dann noch zwei mal, und nach der dritten Falscheingabe wird dem Anwender die Fehlermeldung »Forbidden« ausgegeben.
404Not Found
(Nicht gefunden)
Der angeforderte URI existiert nicht. Dies ist neben den Statuscodes 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, und diese Adresse aber nicht existiert.
405Method Not Allowed
(Methode nicht erlaubt)
Die angegebene Übertragungsmethode ist auf dem Server nicht erlaubt. Die Daten werden deshalb nicht übertragen. Das kann beispielsweise vorkommen, wenn in der Konfiguration des Web-Servers 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
(Nicht akzeptabel)
Die Anfrage ist in dieser Form nicht akzeptabel. Die Daten werden deshalb nicht übertragen.
407Proxy Authentication Required
(Proxy-Anmeldung erforderlich)
Der anfragende Client ist ein Proxy-Server. Die Daten werden an diesen Server nur übertragen, wenn er sich als gültiger Proxy-Server ausweist.
Dieser Statuscode findet derzeit noch keine Verwendung. Damit soll auf die Dauer ein ähnliches Handling wie mit dem Statuscode 401 etabliert werden, jedoch nicht für anfragende Browser, sondern für anfragende Proxy-Server. Auf diese Weise könnte es Web-Anbietern möglich werden, in der Serverkonfiguration unerwünschte Proxy-Server vom Zwischenspeichern der eigenen Daten auszusperren.
408Request Timeout
(Anfrage-Auszeit)
Der Server hat eine erwartete Anfrage nicht innerhalb des dafür festgelegten Maximalzeitraums erhalten. Die Verbindung zum anfragenden Browser wird deshalb abgebaut. Angeforderte Daten werden nicht übertragen.
409Conflict
(Konflikt)
Der Server kann die angeforderten Daten nicht senden, weil ein Konflikt mit einem anderen Prozess aufgetaucht ist.
Das kann beispielsweise passieren, wenn ein anderer Prozess eine angeforderte Datei gerade mit einem exklusiven File-Locking (keinerlei Dateizugriff für andere Prozesse nicht erlaubt) versehen hat.
410Gone
(Verschoben)
Die angeforderten Daten wurden zu einem anderen URI verschoben. Dem Server ist aber nicht bekannt, wohin. Deshalb kann er sie nicht senden, andernfalls würde ein Statuscode 301 oder 302 gesendet worden.
411Length Required
(Länge erforderlich)
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
(Bedingung nicht erfüllt)
Eine oder mehrere Bedingungen, die bei der Anfrage gestellt wurden, treffen nicht zu. Die angeforderten Daten werden deshalb nicht übertragen.
413Request Entity Too Large
(Anfrage zu lang)
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
(Angefragte URL zu lang)
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
(Nicht unterstützter Medientyp)
Der Server kann die Anfrage nicht bearbeiten, weil er keinen Mime-Type für den angeforderten Datentyp kennt. Die angeforderten Daten werden deshalb nicht übertragen.
416Requested Range Not SatisfiableDie 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 Bytebereichs, z.B. wenn ein Bytebereich von 1000 bis 2000 angegeben wird, die Ressource aber nur 500 Byte hat. Die angeforderten Daten werden deshalb nicht übertragen.
417Expectation FailedDie Anfrage enthält im »Expect«-Feld bestimmte Wünsche, die der Server nicht erfüllen kann. Die angeforderten Daten werden deshalb nicht übertragen.
500Internal Server Error
(Interner Server-Fehler)
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.
501Not Implemented
(Nicht implementiert)
Die Anfrage enthält Anforderungen, die der Server nicht bearbeiten kann, weil die Voraussetzunen dazu nicht implementiert sind. Die angeforderten Daten können deshalb nicht gesendet werden.
502Bad Gateway
(Schlechtes Portal)
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
(Dienst nicht verfügbar)
Der Server kann die Anfrage wegen Überlastung 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 Statuscode 202 verarbeitet der Server die Daten nicht, sobald er wieder Kapazitäten hat.
504Gateway Timeout
(Portal-Auszeit)
Zum Bearbeiten der Anfrage musste der Server einen anderen Server aufrufen, erhielt dabei jedoch nach einem festgelegten Maximalzeitraum keine Antwort. Die angeforderten Daten können deshalb nicht gesendet werden.
505HTTP Version Not Supported
(HTTP-Version nicht unterstützt)
Der Server unterstützt die im HTTP-Header der Anfrage angegebene HTTP-Version nicht. Die angeforderten Daten werden deshalb nicht gesendet.
506Variant Also NegotiatesDie Inhaltsvereinbarung der Anfrage ergibt einen Zirkelbezug.
507Insufficient Storage
(Nicht genügend Speicherplatz)
Die Anfrage konnte nicht bearbeitet werden, weil der Speicherplatz des Servers dazu zurzeit nicht mehr ausreicht.
508Loop Detected
(Schleife entdeckt)
Die Operation wurde nicht ausgeführt, weil die Ausführung in eine Endlosschleife gelaufen wäre.
Definiert in der Binding-Erweiterung für WebDAV gemäß RFC 5842, weil durch Bindings zyklische Pfade zu WebDAV-Ressourcen entstehen können.
509Bandwidth Limit Exceeded
(Bandbreitengrenze erreicht)
Die Anfrage wurde verworfen, weil sonst die verfügbare Bandbreite überschritten würde (inoffizielle Erweiterung einiger Server).
510Not Extended Die Anfrage enthält nicht alle Informationen, die die angefragte Server-Extension zwingend erwartet.

Quellen:
de.selfhtml.org
de.wikipedia.org

© jb 2015