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.

HTTP-Statuscode

Was ist ein HTTP-Statuscode?

HTTP-Statuscode auf Website prüfenBestimmt 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-StatuscodeKurzbeschreibungBedeutung
HTTP 100 ContinueFortfahrenDer 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 ProtocolsProtokoll-TauschEs erfolgt ein Protokoll-Tausch – beispielsweise von HTTP zu WebSocket. Der Code informiert darüber, dass der Wechsel erfolgen darf.
HTTP 102 ProcessingIn BearbeitungDie 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-StatuscodeKurzbeschreibungBedeutung
HTTP 200 OKIn OrdnungDie 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 CreatedErstelltAufgrund der Anfrage wird eine neue Ressource erstellt und die entsprechende Adresse im Header übertragen.
HTTP 202 AcceptedAkzeptiertDie Anfrage wurde angenommen, jedoch noch nicht ausgeführt. Wann die Bearbeitung erfolgt, kann nicht genau vom Server ermittelt werden.
HTTP 203 Non-Authoritative InformationUnverbindliche InformationenProxy am Werk? Die Meta-Informationen stimmen womöglich nicht mit dem ursprünglichen Server überein.
HTTP 204 No ContentOhne InhaltDie Anfrage ist angekommen und wurde anschließend bearbeitet. Es gibt allerdings keinen Inhalt, der zurückgegeben werden kann.
HTTP 205 Reset ContentInhalt zurücksetzenDie 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 ContentTeilweiser InhaltInformiert über (bereits) übertragene Daten – beispielsweise unterbrochene oder wiederaufgenommene Datei-Downloads.
HTTP 207 Multi-StatusMehrere StatuscodesHier 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 ReportedBereits berichtetBei einer WebDAV-Bindung wurden die Mitglieder bereits im Vorfeld aufgezählt und sind daher in dieser Anfrage nicht mehr enthalten.
HTTP 226 IM UsedVerdacht auf Instanz-ManipulationenEine 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-StatuscodeKurzbeschreibungBedeutung
HTTP 300 Multiple ChoicesMehrere MöglichkeitenEs 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 PermanentlyDauerhaft verschobenDie 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 FoundGefundenDie 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 OtherSiehe woandersDie 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 ModifiedNicht verändertDie angefragte Seite hat sich seit dem letzten Mal nicht geändert. Die Antwort enthält daher keine weiteren Daten.
HTTP 305 Use ProxyNutze ProxyFü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 usedNicht verwendet bzw. reserviertDer HTTP-Statuscode 306 wird nicht mehr verwendet, wurde allerdings reserviert. (Wurde früher für „Switch Proxy“ verwendet).
HTTP 307 Temporary RedirectZeitweise UmleitungDie 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 RedirectPermanente UmleitungDie 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-StatuscodeKurzbeschreibungBedeutung
HTTP 400 Bad RequestUngültige AnfrageFehler bei der Anfrage. Möglicherweise war der Syntax falsch oder unvollständig.
HTTP 401 UnauthorizedUnautorisiertOhne 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 RequiredBezahlung erforderlichDer HTTP-Statuscode 402 ist für zukünftige HTTP-Protokolle reserviert und steht für eine erforderliche Bezahlung.
HTTP 403 ForbiddenVerbotenDer Zugriff wurde verboten. Eine Authentifizierung konnte nicht durchgeführt bzw. anerkannt werden.
HTTP 404 Not FoundNicht gefundenDie 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 AllowedMethode nicht erlaubtDie 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 AcceptableNicht akzeptabelDie 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 RequiredAuthentifizierung per Proxy erforderlichEine Authentifizierung ist erfordlerich. Allerdings muss diese per Proxy erfolgen. Das unterscheidet diesen Statuscode beispielsweise von „HTTP 401“.
HTTP 408 Request TimeoutZeitüberschreitung der AnfrageDie 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 ConflictKonflikt aufgetretenEs 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 GoneVerschwundenDie Datei existiert nicht mehr auf dem Server oder wurde dauerhaft entfernt. Ein Weiterleitungsziel gibt es nicht.
HTTP 411 Length RequiredLänge benötigtDie Bearbeitung der Anfrage ohne „Content-Length“ im Header kann nicht forgeführt werden.
HTTP 412 Precondition FailedVorbedingung nicht erfülltEine 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 LargeAnfrage 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 LongAdresse zu langDie URL in der Anfrage ist zu lang. Mögliche Ursachen sind beispielsweise in Endlosschleifen aus Redirects zu finden.
HTTP 415 Unsupported Media TypeNicht unterstützter MedientypDie Anfrage sendet mit einem nicht unterstützten und somit ungültigen Medien- oder MIME-Typ.
HTTP 416 Requested range not satisfiableBereich der Anfrage nicht erfüllbarEin angeforderter Teil einer bestimmten Ressource ist möglicherweise ungültig oder steht derzeit uf dem Server nicht bereit.
HTTP 417 Expectation FailedErwartung nicht erfülltDie 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 teapotAprilscherzHTTP 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 FulfilledBedingung nicht ausreichend erfülltEin vom W3C vorgeschlagener Code, um auszudrücken, dass eine bestimmte Bedingung nicht erfüllt ist.
HTTP 421 Misdirected RequestAnforderung fehlgeleitetDer 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 EntityKeine Verarbeitung möglichWenn 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 LockedGesperrtDie angeforderte Ressource ist gesperrt und somit nicht zugänglich.
HTTP 424 Failed DependencyAbhängigkeit nicht erfülltDie Anfrage konnte nicht durchgeführt werden, weil das Gelingen einer vorherigen Anfrage nicht erfüllt werden konnte.
HTTP 426 Upgrade RequiredUpdate erforderlichDer 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 RequiredVorbedingung erforderlichNicht 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 RequestsZu viele AnfragenEs sind zu viele Anfragen in einem kurzen Zeitraum gestellt worden. Die Bearbeitung wird daher abgebrochen.
HTTP 431 Request Header Fields Too LargeKopfbereich zu langDie maximale Länge in einem oder mehreren Feldern im „Header“ wurde überschritten. Die Anfrage kann daher nicht bearbeitet werden.
HTTP 444 No ResponseKeine AntwortDer Server kann keine Informationen zurücksenden. Die Verbindung ist geschlossen.
HTTP 451 Unavailable For Legal Reasonsaus rechtlichen Gründen nicht verfügbarBestimmte 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-StatuscodeKurzbeschreibungBedeutung
HTTP 500 Internal Server ErrorInterner Server FehlerDer 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 ImplementedNicht implementiertDer 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 GatewaySchlechtes PortalDer 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 UnavailableDienst nicht verfügbarDer Server ist momentan nicht zur Verfügung. Das kann beispielsweise bei Überlastung oder Wartung der Fall sein.
HTTP 504 Gateway TimeoutZeitüberschreitung beim PortalInnerhab 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 supportedHTTP-Version wird nicht unterstütztDie verwendete HTTP-Version wird vom Server nicht unterstützt. Die Verarbeitung wird daher abgelehnt.
HTTP 506 Variant Also NegotiatesZirkelbezug entdecktBei der Anfrage kommt es zu einem Zirkelbezug. Daher wird die Bearbeitung nicht fortgesetzt.
HTTP 507 Insufficient StorageUngenügend SpeicherplatzEs steht ungenügend Speicherplatz auf dem Server bereit. Daher wird die Anfrage nicht bearbeitet.
HTTP 508 Loop DetectedEndlosschleife festgestelltDie Durchführung der Anfrage wird gestoppt, da die Ausführung in eine Endlosschleife gelangen würde.
HTTP 509 Bandwidth Limit ExceededBegrenzung der Bandbreite erreichtDie vom Server zur Verfügung stehende bzw. festgelegte Bandbreite wurde erreicht. Daher wird die Verarbeitung abgebrochen.
HTTP 510 Not ExtendedFehlende InformationenBei der Anfrage fehlen wichtige Informationen. Daher findet an dieser Stelle keine weitere Bearbeitung statt.
HTTP 511 Network Authentication RequiredNetzwerk-Authentifizierung benötigtEs 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.

HTTP Status Code CheckerIm 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.

Kommentieren

Ich akzeptiere die Datenschutzerklärung.