Einleitung
Die HTTP-Statuscodes geben Auskunft darüber, ob eine bestimmte HTTP-Anfrage erfolgreich abgeschlossen wurde. Die Statuscodes sind in fünf Gruppen eingeteilt: Informationen, erfolgreiche Operation, Umleitungen, Client-Fehler und Server-Fehler.
Informationen
Diese Statuscodes erscheinen, wenn die aktuelle Anfrage noch bearbeitet wird.
100 Continue
Dieser Status zeigt an, dass die Anfrage soweit akzeptiert wurde. Der Client kann nun mit der Anfrage fortfahren beziehungsweise die Antwort ignorieren, falls die Anfrage bereits abgeschlossen ist.
101 Switching Protocols
Als Antwort auf eine Upgrade:
Anfrage des Protokolls erscheint dieser Statuscode, wenn der Server mit dem Wechsel einverstanden ist.
Erfolgreiche Operation
Ein solcher Statuscode erscheint, wenn die Anfrage erfolgreich war.
200 OK
Die Anfrage wurde erfolgreich beendet. Abhängig von der eingesetzten HTTP-Methode hat dieser Statuscode unterschiedliche Bedeutungen:
GET
- Die Ressource wurde angefordert und wird im Nachrichteninhalt übertragen. HEAD
- Im Nachrichteninhalt befindet sich der Header. POST
- Die angeforderte Ressource als Ergebnis der Anfrage ist im Nachrichteninhalt angehängt. TRACE
- Im Nachrichteninhalt befindet sich die Anfrage in der Form, in der sie beim Server eingetroffen ist.
201 Created
Die Anfrage wurde korrekt bearbeitet und die Ressource erstellt. Üblicherweise erscheint dieser Statuscode als Antwort auf eine PUT-Anfrage.
202 Accepted
Der Server hat die Anfrage erhalten und akzeptiert, diese aber noch nicht bearbeitet. Dieser Status ist für die Stapelverarbeitung gedacht oder den Fall, dass ein anderer Server oder Prozess die Anfrage bearbeitet, da es in HTTP keine asynchronen Antworten gibt.
203 Non-Authoritative Information
Dieser Statuscode deutet an, dass die zurückgesendeten Meta-Daten nicht direkt vom Server stammen, sondern von einer dritten oder lokalen Quelle kopiert wurden. Außer bei dieser Bedingung sollte der Status 200 OK für diese Form der Rückmeldung verwendet werden.
204 No Content
Auf die Anfrage wurde kein Inhalt versendet, jedoch könnte der Header wichtige Informationen bereitstellen. Der User kann den zwischengespeicherten Header mit den neuen Daten aktualisieren.
205 Reset Content
Dieser Statuscode wird übermittelt, wenn die Anfrage zur Zurücksetzung eines Dokuments abgeschlossen wurde.
206 Partial Content
Dieser Statuscode wird empfangen, wenn der Client eine Anfrage gesendet hat, den Download in mehrere Streams aufzuteilen.
Umleitungen
Diese HTTP-Statuscodes deuten an, dass weitere Schritte notwendig sind, um die Anfrage korrekt zu bearbeiten.
300 Multiple Choice
Die Anfrage führte zu mehreren gültigen Antworten. In der Antwort findet sich eine Liste, sodass der User eine genauere Auswahl treffen kann.
301 Moved Permanently
Die angeforderte Ressource ist nicht verfügbar, da sie permanent verschoben wurde. Möglicherweise findet sich in der Antwort die neue URI.
302 Found
Die angeforderte Ressource ist nicht verfügbar, da sie temporär verschoben wurde. Die ursprüngliche Adresse bleibt gültig und sollte weiterhin verwendet werden.
303 See Other
Vom Server wird dieser Statuscode als Antwort versendet, wenn die mit GET angeforderte Ressource an einer anderen URI bereitgestellt wird.
304 Not Modified
Dieser Statuscode kommt im Zusammenhang mit zwischengespeicherten Daten zum Einsatz. Er teilt dem Client mit, dass die Antwort nicht verändert wurde und die Information aus dem Cache weiterhin gültig ist.
305 Use Proxy
Dieser Statuscode zeigt an, dass ein Proxy eingesetzt werden muss, um Zugang zur Ressource zu erhalten. Der Code wird aufgrund von Sicherheitsbedenken nur selten unterstützt.
306 unused
Dieser Statuscode wird nicht mehr verwendet und ist zurzeit reserviert. Er kam in HTTP 1.1 zum Einsatz.
307 Temporary Redirect
Ein Server verschickt diesen Status, wenn die angeforderte Ressource an einer anderen URI mit der gleichen Methode angefordert werden soll. Der Status ähnelt dem 302 Found
, jedoch wird hier verhindert, dass der Client die HTTP-Methode ändern kann. So muss bei der zweiten Anfragen ebenfalls POST
verwendet werden, wenn die ursprüngliche Anfrage POST
nutzte.
308 Permanent Redirect
Dieser Status zeigt an, dass die angeforderte Ressource permanent unter einen anderen URI verfügbar ist. Die Ressource ist unter der im Location:
HTTP Header angegebenen Adresse zu finden. Der Statuscode hat eine ähnliche Funktion wie 301 Moved Permanently
, mit der Ausnahme, dass der Client hier die HTTP-Methode nicht verändern darf. Wenn ursprünglich POST
verwendet wurde, wird auch bei der zweiten Anfrage POST
genutzt.
Client-Fehler
Bei diesen Statusmeldungen liegt ein Fehler auf der Client-Seite vor, die zum Scheitern der Anfrage führte.
400 Bad Request
Der Server konnte die gesendete Anfrage aufgrund einer fehlerhafter Syntax nicht verstehen.
401 Unauthorized
Zur Verarbeitung der Anfrage ist ein gülige Authentifizierung erforderlich. Liegt diese nicht vor, weist der Server den Client mit diesem Status Code ab.
402 Payment Required
Dieser Status ist für zukünftige Funktionen reserviert. Er ist für digitale Zahlungssysteme vorgesehen, wird aktuell jedoch nicht verwendet.
403 Forbidden
Dem Client fehlen die entsprechenden Berechtigungen (Authorisierung), sodass der Server die Anfrage ablehnt.
404 Not Found
Der Server kann die angeforderte Ressource nicht finden. Dieser Status ist einer der bekanntesten, da er häufig bei fehlerhaften Webadressen angezeigt wird.
405 Method Not Allowed
Die Anforderung des Clients ist dem Server bekannt, wurde jedoch deaktiviert. Dieser Status kann bei allen Methoden als Antwort erscheinen, mit Ausnahme der beiden Standards GET
und HEAD
406 Not Acceptable
Diese Antwort wird versendet, wenn der Server auf der Suche nach einer Antwort keinen passenden Inhalt zur Anfrage des Clients gefunden hat.
407 Proxy Authentication Required
Ähnlich wie der Status 401, jedoch ist eine Anmeldung über einen Proxy notwendig.
408 Request Timeout
Dieser Status wird an Clients gesendet, die über einen bestimmten Zeitraum hinweg inaktiv waren. Diese Meldung wird ohne Anfrage des Clients versendet. Der Server möchte in diesem Fall die Verbindung unterbrechen und freigeben. In Kombination mit bestimmten Browsern, wie Chrome oder IE9, taucht diese Meldung häufiger auf, da hier Techniken zum Einsatz kommen, um das Surfen zu beschleunigen. Einige Server beenden inaktive Verbindungen auch ohne diese Meldung.
409 Conflict
Bei dieser Meldung besteht ein Konflikt zwischen der Anforderung und dem aktuellen Status des Servers.
410 Gone
Dieser Statuscode wird übertragen, wenn die angeforderte Ressource vom Server entfernt wurde.
411 Length Required
Der Server hat die Anforderung abgelehnt, da die Content-Length
, also die Länge des Inhalts, im Header nicht definiert wurde, der Server dies jedoch zwingend erfordert.
412 Precondition Failed
Der Client hat bei der Anfrage Eigenschaften im Header definiert, die nicht mit dem Server kompatibel sind.
413 Payload Too Large
Die Anfrage ist größer, als das Maximum, das vom Server vorgegeben wurde. Eventuell beendet der Server die Verbindung oder sendet eine Retry-After
Anforderung.
414 URI Too Long
Die vom Client angefragte URI ist länger als was der Server akzeptiert.
415 Unsupported Media Type
Der Server hat die Anfrage abgelehnt, da das Medienformat nicht unterstützt wird.
416 Requested Range Not Satisfiable
Die im Header definierte Wert für Range
kann nicht erfüllt werden. Möglicherweise liegt der angegebene Wert außerhalb der maximalen Größe für die mögliche Ziel-URI.
417 Expectation Failed
Dieser Statuscode deutet an, dass der Wert, der im Header unter Expect
definiert wurde, vom Server nicht erfüllt werden kann.
421 Misdirected Request
Die Anfrage wurde in einer Art gestellt, die vom Server nicht verarbeitet werden kann. Eventuell ist der Server so konfiguriert, dass er keine Antworten auf Anfragen senden kann, die in der Anforderungs-URI aus einer Kombination aus Schema und Berechtigung bestehen.
426 Upgrade Required
Der Server weigert sich, die Anfrage mit dem aktuellen Protokoll auszuführen. Nach einem Upgrade des Client-Protokolls ist eine Ausführung der Anfrage eventuell möglich. Der Server muss bei diesem Statuscode im Upgrade-Header-Feld einen kompatiblen Protokolltyp nennen.
428 Precondition Required
Der ursprüngliche Server erfordert, dass die Anfrage unter Vorbehalt ausgeführt wird. Dies soll verhindern, dass ein Client den Status eine Ressource abruft, ändert oder an den Server zurücksendet und sich dieser Status durch einen dritten Server verändert hat, was zu einem Konflikt führen würde.
429 Too Many Requests
Der Nutzer hat in zu kurzer Zeit zu viele Anfragen an den Server gesendet und der Server limitiert die Anzahl an Anfragen.
431 Request Header Fields Too Large
Der Server lehnt die Verarbeitung der Anfrage ab, da das Header-Feld zu groß ist. Sobald die Größe limitiert wurde, kann die Anfrage erneut gesendet und verarbeitet werden.
451 Unavailable For Legal Reasons
Die vom Benutzer angefragte Ressource ist illegal. Beispielsweise handelt es sich um eine Webseite, die von der Regierung zensiert wurde.
Server-Fehler
Diese HTTP-Status Codes deuten auf eine fehlerhaft Verarbeitung seitens des Servers hin. Die Anfrage konnte nicht korrekt verarbeitet werden.
500 Internal Server Error
Der Server ist auf einen internen Fehler gestoßen und kann diesen nicht umgehen.
501 Not Implemented
Die Anfragemethode wird vom Server nicht unterstützt und kann deshalb nicht verarbeitet werden. Grundsätzlich sind Server nur dazu verpflichtet, GET
und HEAD
zu unterstützen.
502 Bad Gateway
Der Server hat, während er als Gateway agierte, eine ungültige Antwort auf eine Anforderung erhalten, sodass eine Bearbeitung nicht möglich war.
503 Service Unavailable
Aktuell steht der Server nicht zur Verfügung. Die Gründe für den temporären Ausfall können Wartungsarbeiten oder eine Überlastung sein. Über Retry-After:
im Header kann der Server dem Client übermitteln, wann der Service wieder zur Verfügung steht.
504 Gateway Timeout
Diese Statusmeldung erscheint, wenn der Server als Gateway agiert und in der vorgegebenen Frist keine passende Antwort erhalten hat.
505 HTTP Version Not Supported
Die in der Anfrage verwendete HTTP-Version wird vom Server nicht unterstützt.
506 Variant Also Negotiates
Auf dem Server ist ein interner Konfigurationsfehler aufgetreten. Die Anforderung führte zu einem Zirkelbezug, der nicht aufgelöst werden kann.
507 Variant Also Negotiates
Ein interner Konfigurationsfehler ist aufgetreten. Die Anfrage führte zu einer Schleife, sodass kein gültiger Start- oder Endpunkt festgelegt werden konnte.
511 Network Authentication Required
Dieser Statuscode zeigt an, dass der Client sich anmelden muss, um Zugriff zum Netzwerk zu erhalten.