Was ist ein HTTP Status Code?

Wenn der Browser eines Internetnutzers versucht, eine Webseite zu öffnen, dann schickt er eine HTTP-Anfrage an den betreffenden Server.

HTTP (Hypertext Transfer Protocol) ist ein Protokoll für die Übertragung von Daten, meist Webseiten: Darin sind die Grundlagen der Kommunikation zwischen den beteiligten Partnern festgelegt, dem Client (also meist der Browser des Nutzers) und dem Server (hier der Webserver, der Inhalte bereitstellt).

Der Server antwortet auf eine solche Anfrage, und übergibt dabei als ersten Teil seiner Antwort einen HTTP Status Code. Dieser gibt grundlegende Information über den Erfolg der Anfrage: Konnte sie bearbeitet werden, war sie fehlerhaft, war sie zulässig, ging sie ins Leere?

 

Wie sieht ein HTTP Status Code aus?

HTTP Status Codes bestehen stets aus drei Ziffern. Sie sind in verschiedene Statusklassen unterteilt, Kennzeichen für die Klasse ist die erste Ziffer. (Es passen aber nicht unbedingt alle Meldungen in dieses Schema.)

Regelmäßig benutzt werden die Klassen 1 bis 5. Hierbei übermitteln die Codes nach Schema 1XX Informationen, während die Anfrage noch andauert. 200er Codes teilen mit, dass die Anfrage erfolgreich war. 3XX Codes dienen in der Regel dazu mitzuteilen, dass eine URL sich geändert hat, und geben Anweisungen wie damit umzugehen ist. Die Codes 4XX und 5XX sind Fehlermeldungen, wobei erstere den Fehler beim Client sehen und letztere Serverfehler darstellen.

Darüber hinaus gibt es noch Codes nach dem Muster 9XX, diese sind nicht offiziell festgelegt, sondern werden von Softwareherstellern im Rahmen ihrer Programme verwendet.

1XX = in Bearbeitung …

Status Codes mit Anfangsziffer 1 können z.B. gesendet werden, wenn die Bearbeitung einer Anfrage länger dauert. Es gibt dann immerhin eine Rückmeldung, dass die Anfrage angekommen ist und die Verbindung aufrechterhalten wird.

2XX = Anfrage erfolgreich!

2XX Status Codes melden, dass die Anfrage erfolgreich angekommen ist.
Der Status 200 bedeutet OK, die angefragte Ressource wird bereitgestellt – sei es eine HTML-Seite oder eine andere Datei. Es gibt weitere Codes, die differenziertere Antworten geben: 201 (Created) = die Ressource wurde erstellt, oder 202 (Accepted) = Anfrage akzeptiert, aber Ausführung erfolgt erst später.
„Erfolgreich angekommen“ heißt also nicht in jedem Fall, dass der User auch etwas zu sehen bekommt!

3XX = Umleitungen und ähnliche

Unter dem etwas unscharfen Begriff Umleitungen werden Statusmeldungen zusammengefasst, die den Client veranlassen, weitere Schritte zu unternehmen.
Mit einer 301-Weiterleitung wird dem Client mitgeteilt, unter welcher neuen Adresse ein Dokument zu finden ist. Code 301 bedeutet „Moved Permanently“, also dauerhaft umgezogen.
Daneben gibt es unter anderem auch 302 = „Moved Temporarily“, also nur zeitweilig verzogen. Diese Einstellung kann aber zu massiven Verständigungsproblemen mit den Suchmaschinen führen, von der Benutzung wird abgeraten.
Wie man den Status Code 301 in der Praxis nutzt, erfahren Sie in unserem Glossar-Artikel zu 301 Weiterleitung.

4XX = Fehler (von Seiten der Anfrage)

Status Codes zwischen 400 und 499 deuten auf einen Fehler auf Seite des Client hin, d.h. die Anfrage selbst ist für den Fehler verantwortlich. Das kann z.B. bedeuten, dass versucht wurde, eine nichtexistierende URL aufzurufen (der bekannte 404 Error).
Neben vielen weiteren gibt es hier Code 401 (Unauthorized), wenn eine Authentifizierung nötig ist, oder 403 (Forbidden), wenn ein Nutzer nicht über die nötige Berechtigung verfügt.

5XX = Fehler (auf Seite des Servers)

Dies sind eine Reihe von Fehlern, deren Ursache eher auf Serverseite zu suchen ist. Allerdings ist die Abgrenzung nicht immer eindeutig. Die Nummer 500 (Internal Server Error) steht für unerwartete Serverfehler ohne eine eindeutige Ursache zu benennen. 503 (Service Unavailable) kann besagen, dass ein Server wegen Wartung oder Überlastung nicht verfügbar ist.

 

Wer eine Liste möglicher Status Codes sehen möchte, es gibt sie u.a. bei Wikipedia:
https://de.wikipedia.org/wiki/HTTP-Statuscode