HTTP-Statuscodes in der Übersicht
Der HTTP-Statuscode gibt Auskunft darüber, wie oder wo HTTP-Anfragen bearbeitet werden. Doch was bedeuten Codes wie 404, 200, 500 oder 403 wirklich? Diese verständliche Übersicht mit HTTP-Statuscode hilft Web Developern und Kreativen weiter.
Übersicht:
Was ist ein HTTP-Statuscode?
Bestimmt hat der eine oder andere schon mal Fehler 404 – Seite nicht gefunden oder Fehler 403 – Zugriff nicht gestattet auf einer Website gesehen. Der entsprechende Code voran kommt nicht von ungefähr. Erfolgt beispielsweise ein Seitenaufruf auf einer Website, dann muss der Server daraufhin reagieren.Mit dieser sogenannten Server-Antwort (Englisch: „Response“) erfolgt zugleich auch die Rückgabe eines HTTP-Statuscodes. Dieser, aus einer dreistelligen Zahl sowie einer kurzen Beschreibung bestehenden Rückgabe, übermittelt, ob alles richtig ausgeliefert wurde (HTTP-Statuscode 200) oder ob es zum Beispiel einen internen Fehler (HTTP 500) gab. Der HTTP-Statuscode ist also ein Teil der vom Server zurückgelieferten Antwort, die beispielsweise beim Aufruf einer Seite erfolgt.
HTTP-Statuscodes und deren Bedeutungen
Da auf dem Weg vom Browser zum Server einiges passieren kann, gibt es viele dieser HTTP-Statuscodes. Bei der Übertragung kann es zudem vorkommen, dass die Fehler mal mehr oder weniger detailliert erfasst werden. So eine Maschine ist halt manchmal auch nur ein Mensch 😉
Häufige Codes wie HTTP 404, HTTP 403 oder HTTP 500 sind sicherlich geläufig. Doch es gibt noch viele Codes die einiges an Erklärungsbedarf haben. Daher kommt hier eine Übersicht mit HTTP-Statuscodes, sortiert nach Funktion bzw. Kategorie der HTTP-Rückgabe:
HTTP-Statuscodes 1xx
HTTP-Statuscodes, die mit 1 beginnen, sind informativer Natur. Zumeist ist mit diesem Code gemeint, dass die Anfrage eben noch dauert.
HTTP-Statuscode | Kurzbeschreibung | Bedeutung |
---|---|---|
HTTP 100 Continue | Fortfahren | Der Server hat womöglich eine große Anfrage erkannt. Der HTTP-Statuscode informiert, dass die Anfrage akzeptiert wurde und es mit der Bearbeitung weitergehen kann. (Dieser Code erscheint eigentlich nur, wenn ein „Header Expect: 100-continue“ vom Browser mitgesendet wurde.) |
HTTP 101 Switching Protocols | Protokoll-Tausch | Es erfolgt ein Protokoll-Tausch – beispielsweise von HTTP zu WebSocket. Der Code informiert darüber, dass der Wechsel erfolgen darf. |
HTTP 102 Processing | In Bearbeitung | Die Bearbeitung läuft. Die Anfrage ist jedoch so zeitaufwendig, dass dieser HTTP-Statuscode darüber informieren muss, damit es zu keinen „Timeouts“ kommt. |
HTTP-Statuscodes 2xx
Alle HTTP-Statuscodes, die mit 2 beginnen, informieren über eine erfolgreich durchgeführte Anfrage. Die Antwort kann somit weiterverwendet werden.
HTTP-Statuscode | Kurzbeschreibung | Bedeutung |
---|---|---|
HTTP 200 OK | In Ordnung | Die Anfrage ist erfolgreich. Das Ergebnis wird in der Antwort übertragen. Typischer Rückgabewert für Seiten einer Website (sofern sie richtig dargestellt werden). |
HTTP 201 Created | Erstellt | Aufgrund der Anfrage wird eine neue Ressource erstellt und die entsprechende Adresse im Header übertragen. |
HTTP 202 Accepted | Akzeptiert | Die Anfrage wurde angenommen, jedoch noch nicht ausgeführt. Wann die Bearbeitung erfolgt, kann nicht genau vom Server ermittelt werden. |
HTTP 203 Non-Authoritative Information | Unverbindliche Informationen | Proxy am Werk? Die Meta-Informationen stimmen womöglich nicht mit dem ursprünglichen Server überein. |
HTTP 204 No Content | Ohne Inhalt | Die Anfrage ist angekommen und wurde anschließend bearbeitet. Es gibt allerdings keinen Inhalt, der zurückgegeben werden kann. |
HTTP 205 Reset Content | Inhalt zurücksetzen | Die Anfrage war erfolgreich und das Dokument soll jetzt neu aufgebaut werden. Es gilt, die Formulareingaben zurückzusetzen (ähnlich, wie bei einem Reset-Button im HTML-Formular). |
HTTP 206 Partial Content | Teilweiser Inhalt | Informiert über (bereits) übertragene Daten – beispielsweise unterbrochene oder wiederaufgenommene Datei-Downloads. |
HTTP 207 Multi-Status | Mehrere Statuscodes | Hier gibt es als Antwort eine XML-Datei zurück, die mehrere Statuscodes zu unabhängig voneinander durchgeführten Operationen beinhaltet – eben „Multi-Status«. |
HTTP 208 Already Reported | Bereits berichtet | Bei einer WebDAV-Bindung wurden die Mitglieder bereits im Vorfeld aufgezählt und sind daher in dieser Anfrage nicht mehr enthalten. |
HTTP 226 IM Used | Verdacht auf Instanz-Manipulationen | Eine GET-Anforderung wurde erfüllt, jedoch stellt die Antwort eine mögliche Instanz-Manipulation dar. |
HTTP-Statuscodes 3xx
Die HTTP-Statuscodes, die mit 3 beginnen, behandeln das Thema „Umleitung“ in den unterschiedlichsten Varianten und Möglichkeiten.
HTTP-Statuscode | Kurzbeschreibung | Bedeutung |
---|---|---|
HTTP 300 Multiple Choices | Mehrere Möglichkeiten | Es existieren sogleich mehrere Ressourcen, die zur Verfügung stehen. Die Anwort vom Server gibt diese in Form einer Liste zurück. Der Bereich „Location“ im Header enthält womöglich die bevorzugte Adresse. |
HTTP 301 Moved Permanently | Dauerhaft verschoben | Die angeforderte Seite wurde permanent einer anderen Adresse zugewiesen. Der „Location-Header“ informiert entsprechend darüber. Im Zuge dessen wird ebenfalls mitgeteilt, dass die alte Adresse nicht mehr gültig ist. |
HTTP 302 Found | Gefunden | Die angeforderte Seite steht vorübergehend an dieser Adresse bereit. Der „Location-Header“ informiert über den Standort. Allerdings bleibt die alte Adresse weiterhin gültig. |
HTTP 303 See Other | Siehe woanders | Die Server-Antwort steht unter einer anderen Adresse bereit und ist per GET-Methode abholbereit. Somit soll nach einer POST-Anfrage ohne große Umwege direkt zur entsprechenden Ressource weitergeleitet werden. |
HTTP 304 Not Modified | Nicht verändert | Die angefragte Seite hat sich seit dem letzten Mal nicht geändert. Die Antwort enthält daher keine weiteren Daten. |
HTTP 305 Use Proxy | Nutze Proxy | Für den Zugriff auf die Seite ist unbedingt ein Proxy erforderlich. Die entsprechende Adresse für den Server wird im „Location-Header“ zurückgegeben. |
HTTP 306 Not used | Nicht verwendet bzw. reserviert | Der HTTP-Statuscode 306 wird nicht mehr verwendet, wurde allerdings reserviert. (Wurde früher für „Switch Proxy“ verwendet). |
HTTP 307 Temporary Redirect | Zeitweise Umleitung | Die angeforderte Ressource steht lediglich vorübergehend unter der im „Location-Header“ angegebenen Adresse bereit. Die alte Adresse bleibt weiterhin gültig. Der Browser soll mit dieser Methode der ursprünglichen Anfrage folgen. |
HTTP 308 Permanent Redirect | Permanente Umleitung | Die angeforderte Seite bzw. Ressource ist ab sofort unter einer neuen Adresse verfügbar. Die bisherige Adresse ist nicht mehr gültig. Der Browser soll seine Anfrage entsprechend folgen. |
HTTP-Statuscodes 4xx
Der Statuscode bezieht sich auf Fehler, die aufgetreten sind. Die Ursache bei HTTP 4xx liegt möglicherweise an der Eingabe bzw. Verbindung mit der entsprechenden Software, die eine Anfrage sendet.
HTTP-Statuscode | Kurzbeschreibung | Bedeutung |
---|---|---|
HTTP 400 Bad Request | Ungültige Anfrage | Fehler bei der Anfrage. Möglicherweise war der Syntax falsch oder unvollständig. |
HTTP 401 Unauthorized | Unautorisiert | Ohne Authentifzierung kann die Anfrage nicht ausgeführt werden. Das ist beispielsweise bei geschützten Seiten der Fall, wenn Name und/oder Passwort nicht richtig angegeben wurden. |
HTTP 402 Payment Required | Bezahlung erforderlich | Der HTTP-Statuscode 402 ist für zukünftige HTTP-Protokolle reserviert und steht für eine erforderliche Bezahlung. |
HTTP 403 Forbidden | Verboten | Der Zugriff wurde verboten. Eine Authentifizierung konnte nicht durchgeführt bzw. anerkannt werden. |
HTTP 404 Not Found | Nicht gefunden | Die Seite bzw. Ressource konnte nicht gefunden werden. Der HTTP-Statuscode 404 kann zudem dafür verwendet werden, um Anfragen ohne weitere Gründe abzuweisen. |
HTTP 405 Method Not Allowed | Methode nicht erlaubt | Die Methode, mit der übermittelt wird, ist nicht erlaubt. Beispielsweise lässt ich einstellen, dass Anfragen nur mit HTTP übertragen werden dürfen. Gültige Übertragungsmethoden werden im Header unter „Allow“ gelistet. |
HTTP 406 Not Acceptable | Nicht akzeptabel | Die angeforderte Datei steht nicht in der gewünschten Form zur Verfügung. Beispielsweise wurde ein nicht gültiger bzw. falscher „Content-Type“ angegeben. |
HTTP 407 Proxy Authentication Required | Authentifizierung per Proxy erforderlich | Eine Authentifizierung ist erfordlerich. Allerdings muss diese per Proxy erfolgen. Das unterscheidet diesen Statuscode beispielsweise von „HTTP 401“. |
HTTP 408 Request Timeout | Zeitüberschreitung der Anfrage | Die Anfrage hat scheinbar zu lange gedauert und die vom Server festgelegte Zeitspanne überschritten. Das kann beispielsweise beim Upload von größeren Dateien oder beim Ausführungen von sehr aufwendigen Scripts der Fall sein. |
HTTP 409 Conflict | Konflikt aufgetreten | Es ist ein Konflikt bei der Anfrage aufgetreten. Möglicherweise wurde eine Ressource zwischenzeitlich verändert (zum Beispiel per PUT-Methode), so dass es an dieser Stelle nicht mehr weitergehen kann. |
HTTP 410 Gone | Verschwunden | Die Datei existiert nicht mehr auf dem Server oder wurde dauerhaft entfernt. Ein Weiterleitungsziel gibt es nicht. |
HTTP 411 Length Required | Länge benötigt | Die Bearbeitung der Anfrage ohne „Content-Length“ im Header kann nicht forgeführt werden. |
HTTP 412 Precondition Failed | Vorbedingung nicht erfüllt | Eine wichtige Vorbedingung wurde bei der Anfrage an den Server nicht erfüllt. Das kann beispielsweise ein „If-Match“ im Header sein. |
HTTP 413 Request Entity Too Large | Anfrage zu groß | Die Anfrage an den Server ist so groß, dass diese nicht bearbeitet werden kann. Der HTTP-Statuscode 413 kann beispielsweise bei größeren Uploads von Dateien auftreten. |
HTTP 414 URI Too Long | Adresse zu lang | Die URL in der Anfrage ist zu lang. Mögliche Ursachen sind beispielsweise in Endlosschleifen aus Redirects zu finden. |
HTTP 415 Unsupported Media Type | Nicht unterstützter Medientyp | Die Anfrage sendet mit einem nicht unterstützten und somit ungültigen Medien- oder MIME-Typ. |
HTTP 416 Requested range not satisfiable | Bereich der Anfrage nicht erfüllbar | Ein angeforderter Teil einer bestimmten Ressource ist möglicherweise ungültig oder steht derzeit uf dem Server nicht bereit. |
HTTP 417 Expectation Failed | Erwartung nicht erfüllt | Die Erwartung der Anfrage konnte nicht erfüllt werden. Kann beispielsweise in Zusammenhang mit „Expect“ im Header bei Proxy-Servern auftreten. |
HTTP 418 I’m a teapot | Aprilscherz | HTTP 418 ist ein Aprilscherz der IETF und stellt ein „Protokoll zum Kaffeekochen“ dar – das sogenannte „Hyper Text Coffee Pot Control Protocol«. |
HTTP 420 Policy Not Fulfilled | Bedingung nicht ausreichend erfüllt | Ein vom W3C vorgeschlagener Code, um auszudrücken, dass eine bestimmte Bedingung nicht erfüllt ist. |
HTTP 421 Misdirected Request | Anforderung fehlgeleitet | Der HTTP-Statuscode 421 informiert darüber, dass eine Anfrage an einen Server gesendet wurde, der nicht fähig ist, darauf zu antworten. Eingeführt wurde der Statuscode in HTTP/2. |
HTTP 422 Unprocessable Entity | Keine Verarbeitung möglich | Wenn eine Anfrage infolge von HTTP 400 oder HTTP 415 noch möglich wäre, die eigentliche Verarbeitung beispielsweise wegen (programmier-)sprachlicher Fehler nicht erfolgen kann. |
HTTP 423 Locked | Gesperrt | Die angeforderte Ressource ist gesperrt und somit nicht zugänglich. |
HTTP 424 Failed Dependency | Abhängigkeit nicht erfüllt | Die Anfrage konnte nicht durchgeführt werden, weil das Gelingen einer vorherigen Anfrage nicht erfüllt werden konnte. |
HTTP 426 Upgrade Required | Update erforderlich | Der Server fordert dazu auf, die Anfrage mit einem anderen Protokoll erneut zu wiederholen. Möglicherweise soll auf HTTP mit Transport Layer Security umgeschaltet werden. |
HTTP 428 Precondition Required | Vorbedingung erforderlich | Nicht alle für die Anfrage erforderlichen Vorbedingungen konnten erfüllt werden. Mit diesem Statuscode sollen Problemen durch sogenannte Wettlaufsituationen vermieden werden. |
HTTP 429 Too Many Requests | Zu viele Anfragen | Es sind zu viele Anfragen in einem kurzen Zeitraum gestellt worden. Die Bearbeitung wird daher abgebrochen. |
HTTP 431 Request Header Fields Too Large | Kopfbereich zu lang | Die maximale Länge in einem oder mehreren Feldern im „Header“ wurde überschritten. Die Anfrage kann daher nicht bearbeitet werden. |
HTTP 444 No Response | Keine Antwort | Der Server kann keine Informationen zurücksenden. Die Verbindung ist geschlossen. |
HTTP 451 Unavailable For Legal Reasons | aus rechtlichen Gründen nicht verfügbar | Bestimmte Inhalte sind aus rechtlichen Gründen nicht verfügbar. Das kann beispielsweise wegen gelender Copyrights oder Ländereinschränkungen der Fall sein. |
HTTP-Statuscodes 5xx
Wenn ein HTTP-Statuscode mit 5 am Anfang erscheint, dann handelt es sich höchstwahrscheinlich um einen Fehler des Servers.
HTTP-Statuscode | Kurzbeschreibung | Bedeutung |
---|---|---|
HTTP 500 Internal Server Error | Interner Server Fehler | Der Server hat einen internen Fehler festgestellt und kann daher die Anfrage nicht bearbeiten. Auch Scriptsprachen wie PHP können „HTTP 500“ auslösen. |
HTTP 501 Not Implemented | Nicht implementiert | Der Server verfügt nicht über die Möglichkeiten, die Anfrage entsprechend zu bearbeiten. Eine nicht erkannte oder unterstützte HTTP-Methode kann unter Umständen zu diesem Fehlercode führen. |
HTTP 502 Bad Gateway | Schlechtes Portal | Der Server kann (in der Funktion als Gateway oder Proxy) die Anfrage nicht durchführen, weil er eine ungültige Antwort erhalten hat. |
HTTP 503 Service Unavailable | Dienst nicht verfügbar | Der Server ist momentan nicht zur Verfügung. Das kann beispielsweise bei Überlastung oder Wartung der Fall sein. |
HTTP 504 Gateway Timeout | Zeitüberschreitung beim Portal | Innerhab einer bestimmten Zeitspanne konnte der Server (in der Funktion als Gateway oder Proxy) keine Antwort erhalten. Die Verarbeitung wird daher abgebrochen. |
HTTP 505 HTTP Version not supported | HTTP-Version wird nicht unterstützt | Die verwendete HTTP-Version wird vom Server nicht unterstützt. Die Verarbeitung wird daher abgelehnt. |
HTTP 506 Variant Also Negotiates | Zirkelbezug entdeckt | Bei der Anfrage kommt es zu einem Zirkelbezug. Daher wird die Bearbeitung nicht fortgesetzt. |
HTTP 507 Insufficient Storage | Ungenügend Speicherplatz | Es steht ungenügend Speicherplatz auf dem Server bereit. Daher wird die Anfrage nicht bearbeitet. |
HTTP 508 Loop Detected | Endlosschleife festgestellt | Die Durchführung der Anfrage wird gestoppt, da die Ausführung in eine Endlosschleife gelangen würde. |
HTTP 509 Bandwidth Limit Exceeded | Begrenzung der Bandbreite erreicht | Die vom Server zur Verfügung stehende bzw. festgelegte Bandbreite wurde erreicht. Daher wird die Verarbeitung abgebrochen. |
HTTP 510 Not Extended | Fehlende Informationen | Bei der Anfrage fehlen wichtige Informationen. Daher findet an dieser Stelle keine weitere Bearbeitung statt. |
HTTP 511 Network Authentication Required | Netzwerk-Authentifizierung benötigt | Es ist zunächst eine Authentifizierung erforderlich, ehe es an eine Bearbeitung der entsprechenden Anfrage gehen kann. |
HTTP Status Code Checker
Um zu prüfen, ob Seiten mit betimmten HTTP-Statuscodes versehen sind und beispielsweise Weiterleitungen von Websites so funktionieren, wie sie geplant wurden, bieten sich eine Reihe von sogenannten HTTP Status Codes Checkern an. Mit diesen Online-Tools lässt ich feststellen, ob sich nicht doch noch irgendwoe ein ungewünschter „Redirect“ versteckt hat.
Im Chrome Web Store findet man beispielsweise „Redirect Path“. Mit dieser Erweiterung lassen sich Weiterleitungen auf Seiten ausfindig machen. Ermittelt werden die HTTP Status Codes 301, 302, 404 und 500.
Mit dem HTTP Status Codes Checker von httpstatus.io lassen sich mehrere Adressen auf einmal prüfen. Das Ergebnis der Analyse kann direkt als CSV-Datei heruntergeladen werden.
Ebenfalls kommt der Status Code Checker von http://www.visiospark.com/status-code-checker/ mit mehreren Adressen zurecht. Hier steht das Result anschließend optional als Excel-Datei zum Download zur Verfügung.