Jeder Aufruf einer Website stößt die Kommunikation zwischen dem Browser und einem Server an. Es beginnt eine Kette von (An-)Fragen und Antworten, die im Hypertext Transfer Protocol (HTTP) festgeschrieben sind. Hierbei generiert der Server Zustandsmeldungen, die auf den Erfolg der Kommunikation oder einen Fehler hinweisen. Diese Meldungen sind als HTTP Status Codes definiert.
HTTP Status Codes werden in fünf Klassen unterteilt und in Form von dreistelligen Nummern codiert, wobei die erste Ziffer die jeweilige Klassenzugehörigkeit angibt. Neben den 63 Standard-Codes gibt es weitere serverspezifische.
1. Rein informationell (100 - 199) - 4 Codes
Bestätigung über den Eingang der Anfrage und Hinweis zur Weiterverarbeitung.
NR. | Bezeichnung |
---|---|
100 | Continue |
101 | Switching Protocols |
102 | Processing |
103 | Early Hints |
2. Erfolg (200 - 299) - 10 Codes
Ein zweihunderter-Code zeugt von einer erfolgreichen Kommunikation. Der User bekommt diese in der Regel nur in Form einer funktionierenden Seite mit, doch eine erfolgreiche Kommunikation bedeutet nicht zwingend immer auch eine funktionierende Seite.
Der Statuscode 200 – OK zeigt die erfolgreiche Verarbeitung der Anfrage. Je nach HTTP Methode bedeutet dies bei GET, HEAD, PUT/DELETE, POST, OPTIONS und TRACE etwas anderes, doch es ist in jedem Fall ein Zeichen dafür, das alles so funktioniert, wie es soll.
NR. | Bezeichnung |
---|---|
200 | OK |
201 | Created |
202 | Accepted |
203 | Non-Authoritative Information |
204 | No Content |
205 | Reset Content |
206 | Partial Content |
207 | Multi-Status |
208 | Already Reported |
226 | IM Used |
3. Weiterleitung (300 - 399) - 09 Codes
Statuscodes der Klasse drei werden ausgegeben, wenn die Ressourcen sich an einer anderen Stelle befinden und die angefragte Adresse drauf umleitet.
Hier sind insbesondere die Codes 301 und 302 weit verbreitet. Die Zustandsmeldung mit der Nummer 301 gibt einen Hinweis darüber, dass die angefragte URL dauerhaft verschoben wurde und die neue URL, auf die verwiesen wird, als Antwort ausgegeben wird. Hierbei wird die Linkstärke der verweisenden URL übernommen, sodass beim Suchmaschinenranking nicht von Null begonnen wird.
Für vorübergehende Umleitungen wird hingegen die 302 genutzt.
NR. | Bezeichnung |
---|---|
300 | Multiple Choices |
301 | Moved Permanently |
302 | Found |
303 | See Other |
304 | Not Modified |
305 | Use Proxy |
306 | (Unused) |
307 | Temporary Redirect |
308 | Permanent Redirect |
4. Clientseitige Fehler (400 - 499) - 28 Codes
Fehler im Browser oder der gesendeten Anfrage. Zustandsmeldungen der Klasse vier treten auf, wenn eine Zeitüberschreitung vorliegt, keine Inhalte gefunden wurden oder der Zugriff verwehrt wurde.
Liegt der Code 400 – Bad Request vor, enthält die Anfrage vom Client Syntaxfehler, sodass diese vom Server nicht verarbeitet werden kann.
Der wohl bekannteste Fehler ist der 404 Fehler – Seite nicht gefunden. Ist der Server nicht in der Lage, die angefragten Ressourcen zu lokalisieren, wird der 404 Fehlerausgegeben. Hierbei gibt der Code jedoch keine Auskunft darüber, ob das Problem dauerhaft oder temporär besteht. Ist dieser Zustand jedoch dauerhaft der Fall, wird die Meldung 410 - Gone bevorzugt.
Der Code 418 ist das Resultat eines Aprilscherzes. 1998 wurde der Code als Seitenhieb für die „schlechten“ HTTP Extensions entwickelt. Das „Hyper Text Coffee Pot Control Protocol“ gibt an, dass der Versuch, Kaffee mit einer Teekanne zu kochen, verweigert wird. Da sich der Code jedoch so weit verbreitet hat und von Größen wie beispielsweise Google implementiert wurde, ist die Nummer hierfür reserviert und trägt mehr oder minder offiziell den Namen „I´m A Teapot“.
NR. | Bezeichnung |
---|---|
400 | Multiple Choices |
401 | Unauthorized |
402 | Payment Required |
403 | Forbidden |
404 | Not Found |
405 | Method Not Allowed |
406 | Not Acceptable |
407 | Proxy Authentication Required |
408 | Request Timeout |
409 | Conflict |
410 | Gone |
411 | Length Required |
412 | Precondition Failed |
413 | Content Too Large |
414 | URI Too Long |
415 | Unsupported Media Type |
416 | Range Not Satisfiable |
417 | Expectation Failed |
418 | I´m A Teapot |
421 | Misdirected Request |
422 | Unprocessable Content |
423 | Locked |
424 | Failed Dependency |
425 | Too Early |
426 | Upgrade Required |
428 | Precondition Required |
429 | Too Many Requests |
431 | Request Header Fields Too Large |
451 | Unavailable For Legal Reasons |
5. Serverseitige Fehler (500 - 599) - 12 Codes
Zustandsmeldungen auf fünfhunderter-Level sind ein Hinweis darauf, dass das Problem auf der Server-Seite liegt.
Innerhalb der Klasse fünf ist wohl der Statuscode 503 einer der Bekanntesten. Ist das Besucheraufkommen sehr hoch und damit auch die Zahl der Anfragen, kann es dazu kommen, dass der Server diese nicht mehr bearbeiten kann und somit vorübergehend nicht erreichbar ist. Auch im Fall von Wartungsarbeiten wird die Zustandsmeldung 503 zurückgegeben.
NR. | Bezeichnung |
---|---|
500 | Internal Server Error |
501 | Not Implemented |
502 | Bad Gateway |
503 | Service Unavailable |
504 | Gateway Timeout |
505 | HTTP Version Not Supported |
506 | Variant Also Negotiates |
507 | Insufficient Storage |
508 | Loop Detected |
509 | Unassigned |
510 | Not Extended (Obsolet) |
511 | Network Authentication Required |
Weitere Spezifikationen sind unter https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes und https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml zu finden.
Um keine Dead Ends und falsch gesetzte Links zu übersehen und im Ranking von Google dadurch nicht an Punkten zu verlieren oder komplett aus dem Index entfernt zu werden, empfiehlt es sich die Statuscodes der eigenen Seite mit der Google Search Konsole zu überprüfen.
Quellen
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/418
https://httpwg.org/specs/rfc9110.html#overview.of.status.codes