Übersicht der häufig vorkommenden HTTP Status-Codes und deren Bedeutung
Was sind HTTP Status-Codes?
Egal ob du nun das Webportal deiner Hausbank oder deine eigene Internetseite über das HyperTextTransferProtokoll (HTTP) aufrufst, werden bei jedem Aufruf HTTP-Statuscodes zwischen dem Server und deinem Client ausgetauscht.
Diese Status-Codes teilen dem Client mit, ob und wie die Anfrage bearbeitet werden konnte. Gerde bei der Fehlersuche sind die Status-Codes ein wichtiges Werkzeug und ein unschätzbares Hilfsmittel zur Diagnose um entsprechend handeln zu können.
Der wohl am bekanntesten ist wohl der Status-Code 404, wenn ein Dokument nicht gefunden wird.
Die Status-Codes sind in fünf verschiedene Statusklassen unterteilt und an der ersten Zahl des Codes erkenn- und kategorisierbar.
Liste der HTTP-Statuscodes
Klasse 1xx – Informationscodes
100 – Continue
Diese Zwischenantwort wird verwendet, um den Client darüber zu informieren, dass der erste Teil der Anforderung empfangen wurde, vom Server noch nicht abgelehnt ist und der Client fortfahren soll, indem er den Rest der Anfrage sendet
101 – Switching-Protokolle
Der Server versteht und ist bereit, eine Anfrage mit gesetztem „Upgrade“-Header-Feld zu empfangen und ist mit dem Wechsel zu einem anderen Protokoll einverstanden.
102 – Processing
Dieser kommt zur Anwendung, wenn der Server eine zeitintensive Anfrage bearbeitet und ein Timeout verhindert werden soll.
103 – Early Hints
Mit diesem Code werden bereits einige Antwortheader zurückgegeben, bevor der Rest der Antwort des Servers fertig ist.
Klasse 2xx – Erfolgreiche Operation
200 – OK
Die Anfrage wurde erfolgreich bearbeitet und die Antwort übertragen.
201 – Created
Die Anfrage wurde erfolgreich bearbeitet und die gewünschte Ressource wurde vor der Antwort erstellt.
202 – Accepted
Die Anfrage wurde zur Verarbeitung angenommen, die Verarbeitung wurde jedoch
noch nicht abgeschlossen und später durchgeführt. Die Antwort 202 ist auch absichtlich unverbindlich und das Gelingen kann nicht garantiert werden.
203 – Non-Authoritative Information
Die zurückgegebene Metainformation im Header ist nicht die definierte wie vom Ursprungsserver. Der Server agiert als Proxy und hat ein 200 – OK von der Quelle bekommen und antwortet mit einem veränderten Dokument der Quelle.
203 – No Content
Die Anfrage wurde erfolgreich bearbeitet und die Antwort enthält bewusst keinen Inhalt.
205 – Reset Content
Die Anfrage wurde erfolgreich bearbeitet und der Client soll das Dokument neu aufbauen.
206 – Partial Content
Der angeforderte Teil wurde erfolgreich übertragen und kann zum Beispiel mit einem Content-Range-Header oder dem Content-Type multipart/byteranges verwendet werden um einen Client eventuell über einen Downloadfortschritt zu informieren. Dies ermöglicht es deinem Browser auch pausierte Downloads erneut aufzunehmen
207 – Multi-Status
Wie der Name schon sagt, enthält die Antwort mehrere Statuscodes, welche über ein XML-Dokument zu unabhängig voneinander durchgeführten Operationen informiert.
Klasse 3xx – Umleitungen
300 – Multiple Choices
Bei diesem Statuscode steht die angeforderte Ressource in verschiedenen Arten zur Verfügung. Die Antwort enthält eine Liste der verfügbaren Arten und der Browser muss nun zwischen diesen Ressourcen wählen.
301 – Moved Permanently
die angeforderte Ressource steht nicht mehr am ursprünglichen Ort zur Verfügung und dem Client wird der neue Ort mitgeteilt.
302 – Moved Permanently
Die angeforderte Ressource steht nur vorübergehend an einem anderen Ort, welcher im „Location“-Header angegebenen ist bereit.
303 – See Other
Dieser Code teilt dem Client mit, dass der Server die Ressource gefunden hat, welcher zum Beispielt über POST angefordert wurde, dieses jedoch über GET unter der entsprechenden URL abzurufen ist.
304 – Not Modified
Der Inhalt der angeforderten Ressource hat sich seit der letzten Abfrage des Clients nicht verändert und wird deshalb nicht übertragen. Hier wird der Browser die Ressource dann aus seinem Cache ausgeben.
305 – Use Proxy
Dem Client wird mitgeteilt, dass die angeforderte Ressource nur über einen Proxy erreichbar ist und der Location-Header die Adresse des Proxys enthält.
306 – Reserved
Dieser Statuscode wird in der Regel nicht mehr mehr verwendet und ist nur noch reserviert. Ursprünglich wurde er für als Status-Code „Switch Proxy“ verwendet.
307 -Temporary Redirect
Die angeforderte Ressource steht vorübergehend unter einer anderen Adresse bereit und die alte Adresse bleibt gültig. Im Unterschied zur 302 und 303 soll der Client jedoch der ursprünglichen Requestmethode folgen (einem POST folgt POST).
308 – Permanent Redirect
Die angeforderte Ressource steht ab sofort unter einer anderen Adresse bereit und die alte Adresse ist nicht mehr gültig. Der Client soll der ursprünglichen Requestmethode folgen (einem POST folgt POST).
4xx – Client-Fehler
400 – Bad Request
Die Anfrage-Nachricht war fehlerhaft aufgebaut.
401 – Unauthorized
Der Statuscode weisst auf eine fehlerhafte Authentifizierung hin und die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden.
402 – Payment Required
Dieser Code ist für die zukünftige Verwendung reserviert. Der Name lässt aber auf sich schließen, wofür.
403 – Forbidden
Der Zugriff auf die angeforderte Ressource ist verboten.
404 – Not Found
Die angeforderte Ressource wurde nicht gefunden.
405 – Method Not Allowed
Die angeforderte Ressource darf nur mit der im Header definierten Regel abgerufen werden und ist so nicht erlaubt. (Zum Beispiel GET statt POST)
406 – Not Acceptable
Die angeforderte Ressource steht nicht in der angeforderten und gewünschten Form zur Verfügung.
407 – Proxy Authentication Required
Im Gegensatz zum Statuscode 401 ist hier zunächst eine Authentifizierung des Clients gegenüber dem verwendeten Proxy erforderlich.
408 – Request Timeout
Es wurde keine vollständige Anfrage des Clients innerhalb der vom Server erlaubten Zeitspanne empfangen.
409 – Conflict
Die Anfrage kann vom Server aufgrund einer falschen Annahme nicht verarbeitet werden.
Dies kann zum Beispiel aufgrund mehrerer gleichzeitiger Bearbeitungen auftreten.
410 – Gone
Die angeforderte Ressource wird nicht länger bereitgestellt und ist dauerhaft entfernt.
411 – Length Required
Die Anfrage kann ohne ein Content-Length-Header nicht bearbeitet werden.
412 – Precondition Failed
Eine in der Anfrage übertragene Voraussetzung, zum Beispiel in Form eines If-Match-Header, traf nicht zu.
413 – Payload Too Large
Die gestellte Anfrage war zu groß, um vom Server bearbeitet werden zu können.
414 – URI Too Long
Die URL der Anfrage war zu lang und konnte nicht mehr vom Server verarbeitet werden.
415 – Unsupported Media Type
Der Inhalt der Anfrage wurde mit einem ungültigen oder nicht erlaubten Medientyp übermittelt.
416 – Range Not Satisfiable
Der angeforderte Ressource war ungültig oder steht auf dem Server nicht zur Verfügung.
417 – Expectation Failed
Das im Header geforderte Verhalten des Servers kann nicht erfüllt werden.
Dieser StatusCode wird Verwendet im Zusammenhang mit einem Expect-Header.
418 – I’m a teapot
Dieser Code hat keinen wirklichen Fehlerhintergrund und ist als Aprilscherz gedacht.
Er zeigt an, dass fälschlicherweise eine Teekanne anstatt einer Kaffeekanne verwendet für den Kaffee verwendet wurde.
420 – Policy Not Fulfilled
Dieser Code vorgeschlagen, um mitzuteilen, dass eine Bedingung nicht erfüllt wurde.
421 – Misdirected Request
Dieser Statuscode würde mit HTTP/2 eingeführt. Die Anfrage wurde an einen Server gesendet, der nicht in der Lage ist, eine Antwort zu senden.
422 – Unprocessable Entity
Wird Verwendet, wenn weder die Rückgabe von Statuscode 415 noch 400 gerechtfertigt wäre, die Verarbeitung der Anfrage jedoch zum Beispiel wegen semantischer Fehler abgelehnt wird.
423 – Locked
Die angeforderte Ressource ist zur Zeit gesperrt.
424 – Failed Dependency
Die Anfrage konnte nicht durchgeführt werden, weil sie das Gelingen einer anderen Anfrage voraussetzt.
425 – Too Early
Der Server bittet den Client die Anfrage erneut zu senden, da die TLS-Verbindung noch nicht vollständig hergestellt wurde.
426 – Upgrade Required
Der Server verlangt vom Client, dass er die Anfrage mit einem anderen Protokoll wiederholt. Hier wäre die Umschaltung von HTTP zu HTTP mit Transport Layer Security als Beispiel zu nennen.
428 – Precondition Required
Für die Anfrage waren nicht alle Vorbedingungen erfüllt
429 – Too Many Requests
Der Client hat zu viele Anfragen in einem bestimmten Zeitraum gesendet.
431 – Request Header Fields Too Large
Die Maximallänge eines Headerfelds oder des Gesamtheaders wurde überschritten.
444 – No Response
Wird von Nginx verwendet, um anzuzeigen, dass der Server keine Informationen zum Client zurückgesendet und die Verbindung geschlossen hat.
449 – The request should be retried after doing the appropriate action
Dieser Code wird nur in Antworten eine Microsoft Exchange Servers genutzt.
451 – Unavailable For Legal Reasons
Dieser Statuscode soll darauf hinweisen, dass die angeforderte Ressource aufgrund von gesetzlichen nicht verfügbar ist. Hier wären als Beispiel länderspezifische Copyrighteinschränkungen oder Zensur zu nennen.
499 – Client Closed Request
Ein Statuscode, welcher von Nginx für den Fall eingeführt wurde, dass ein Client die Verbindung schließt, während die Anforderung noch verarbeitet wird.
5xx – Serverseitige Fehler
500 – Internal Server Error
Dieser Statuscode steht für unerwartete Serverfehler, welcher meist auf fehlerhafte Scripte zurückzuführen ist.
501 – Not Implemented
Die Anfrage konnte nicht bearbeitet werden, da die Funktionalität, um diese zu bearbeiten, wird von diesem Server nicht bereitgestellt wird.
502 – Bad Gateway
Der Server konnte seine Funktion als Gateway nicht erfüllen, weil er seinerseits eine ungültige Antwort erhalten hat.
503 – Service Unavailable
Der Server steht temporär nicht zur Verfügung.
504 – Gateway Timeout
Der Server konnte seine Aufgabe nicht erfüllen, weil er innerhalb einer festgelegten Zeitspanne keine Antwort von seinerseits benutzten Diensten erhalten hat.
505 – HTTP Version not supported
Die benutzte HTTP-Version wird vom Server nicht unterstützt oder abgelehnt.
506 – Variant Also Negotiates
Der Statuscode zeigt einen internen Serverkonfigurationsfehler an, bei dem die ausgewählte Variante selbst für die Inhaltsverhandlung konfiguriert ist und somit eine Enlosschleife ensteht.
507 – Insufficient Storage
Dieser Code weist auf einen Problem mit dem Speicher des Server hin.
508 -Loop Detected
Der Server hat die Anfrage nicht ausgeführt und gestoppt, da die Ausführung in eine Endlosschleife gelaufen wäre.
509 – Bandwidth Limit Exceeded
Die Anfrage vom Client wurde verworfen, weil sonst die verfügbare Bandbreite überschritten würde
510 – Not Extended
Die Anfrage enthält fehlende Informationen, welche die angefragte Server-Extension jedoch zwingend erwartet.
511 – Network Authentication Required
Der Client muss sich authentifizieren, um Zugang zum gewünschten Netzwerk zu erhalten.
9xx – Proprietäre Fehler
Diese haben wir hier nicht aufgelistet, da diese nur von wenigen Softwareherstellern in proprietärer Software verwendet werden und bei HostPress nicht auftauchen.