HTTP-Statuscodes sind standardisierte Codes, die von Webservern verwendet werden, um den Client (z. B. einen Browser) über die Ergebnisse seiner Anfragen zu informieren. Diese Codes sind in den HTTP-Spezifikationen definiert und dienen dazu, den Status der angeforderten Ressource zu kennzeichnen sowie Informationen darüber bereitzustellen, welche Maßnahmen zur Abschluss der Anfrage erforderlich sind.
Geschichte und Zweck
HTTP-Statuscodes wurden in der HTTP-Spezifikation eingeführt, um eine standardisierte Kommunikationsmethode zwischen Webservern und Clients bereitzustellen. Diese Codes helfen bei der Automatisierung der Fehlerbehandlung, steuern weitere Client-Aktionen und liefern Diagnoseinformationen. Sie unterscheiden zwischen erfolgreichen und erfolglosen Anfragen sowie Weiterleitungen und weisen auf spezifische Probleme hin.
Struktur und Bereiche der Statuscodes
HTTP-Statuscodes sind dreistellige Zahlen. Die erste Ziffer definiert die Statusklasse und gibt den allgemeinen Antworttyp an. Es gibt fünf Statusklassen:
- 1xx: Informative Antworten
- Diese Codes geben an, dass die Anfrage empfangen wurde und die Verarbeitung fortgesetzt wird.
- 2xx: Erfolgreiche Antworten
- Diese Codes geben an, dass die Anfrage erfolgreich empfangen, verstanden und akzeptiert wurde.
- 3xx: Weiterleitung
- Diese Codes geben an, dass der Client weitere Maßnahmen ergreifen muss, um die Anfrage abzuschließen.
- 4xx: Clientfehler
- Diese Codes weisen auf Fehler hin, die durch fehlerhafte Anfragen des Clients verursacht wurden.
- 5xx: Serverfehler
- Diese Codes weisen auf Fehler hin, die durch Ausfälle auf Serverseite verursacht wurden.
Detaillierte Beschreibung der Statuscodes
1xx: Informative Antworten
- 100 Continue: Der Server hat den ersten Teil der Anfrage empfangen, und der Client sollte fortfahren.
- 101 Switching Protocols: Der Server stimmt dem vom Client angeforderten Protokollwechsel zu.
- 102 Processing: Der Server hat die Anfrage akzeptiert, die Verarbeitung ist jedoch noch nicht abgeschlossen.
2xx: Erfolgreiche Antworten
- 200 OK: Die Anfrage wurde erfolgreich verarbeitet, und der Server hat die angeforderte Ressource zurückgegeben.
- 201 Created: Die Anfrage wurde erfolgreich erfüllt und eine neue Ressource wurde erstellt.
- 202 Accepted: Die Anfrage wurde zur Verarbeitung akzeptiert, die Verarbeitung ist jedoch noch nicht abgeschlossen.
- 203 Non-Authoritative Information: Die Anfrage wurde erfolgreich verarbeitet, die Informationen stammen jedoch aus einer anderen Quelle.
- 204 No Content: Die Anfrage wurde erfolgreich verarbeitet, es gibt jedoch keinen Inhalt, der in der Antwort gesendet werden kann.
- 205 Reset Content: Die Anfrage wurde erfolgreich verarbeitet, und der Client sollte die Ansicht zurücksetzen.
- 206 Partial Content: Der Server gibt als Antwort auf eine Bereichsanfrage einen Teil des Inhalts zurück.
3xx: Weiterleitung
- 300 Multiple Choices: Die Anfrage kann auf mehrere Arten erfüllt werden.
- 301 Moved Permanently: Die angeforderte Ressource wurde dauerhaft an eine neue URL verschoben.
- 302 Found: Die angeforderte Ressource ist vorübergehend unter einer anderen URL verfügbar.
- 303 See Other: Die Ressource sollte über eine GET-Anfrage an eine andere URL abgerufen werden.
- 304 Not Modified: Die angeforderte Ressource wurde seit der letzten Anfrage nicht geändert.
- 305 Use Proxy: Auf die angeforderte Ressource muss über einen Proxy zugegriffen werden.
- 307 Temporary Redirect: Die angeforderte Ressource ist vorübergehend unter einer anderen URL verfügbar.
- 308 Permanent Redirect: Die angeforderte Ressource wurde dauerhaft an eine neue URL verschoben.
4xx: Clientfehler
- 400 Bad Request: Der Server kann die Anfrage aufgrund eines Clientfehlers nicht verarbeiten.
- 401 Unauthorized: Für den Zugriff auf die Ressource ist eine Authentifizierung erforderlich.
- 402 Payment Required: Der Code ist für die zukünftige Verwendung reserviert.
- 403 Forbidden: Der Server verweigert die Erfüllung der Anfrage.
- 404 Not Found: Die angeforderte Ressource konnte nicht gefunden werden.
- 405 Method Not Allowed: Die Anfragemethode ist für die angeforderte Ressource nicht zulässig.
- 406 Not Acceptable: Die angeforderte Ressource kann nicht im akzeptablen Format bereitgestellt werden.
- 407 Proxy Authentication Required: Eine Proxy-Authentifizierung ist erforderlich.
- 408 Request Timeout: Bei der Anfrage ist eine Zeitüberschreitung aufgetreten.
- 409 Conflict: Die Anfrage kann aufgrund eines Konflikts mit dem aktuellen Zustand der Ressource nicht verarbeitet werden.
- 410 Gone: Die angeforderte Ressource ist nicht mehr verfügbar und wird auch nicht wieder verfügbar sein.
- 411 Length Required: Die Anfrage muss die Länge des Inhalts angeben.
- 412 Precondition Failed: Die Vorbedingung in den Anfrage-Headern ist nicht erfüllt.
- 413 Payload Too Large: Die Anfrageentität ist größer, als der Server verarbeiten möchte oder kann.
- 414 URI Too Long: Die Anfrage-URI ist zu lang.
- 415 Unsupported Media Type: Die Anfrageentität hat einen Medientyp, der vom Server oder der Ressource nicht unterstützt wird.
- 416 Range Not Satisfiable: Der Client hat einen Teil der Datei angefordert, aber der Server kann diesen Teil nicht bereitstellen.
- 417 Expectation Failed: Der Server kann die Anforderungen des Expect-Anfrage-Headerfelds nicht erfüllen.
- 418 I’m a teapot: Ein humorvoller Code, der in RFC 2324 eingeführt wurde.
5xx: Serverfehler
- 500 Internal Server Error: Eine allgemeine Fehlermeldung, wenn der Server auf einen unerwarteten Zustand trifft.
- 501 Not Implemented: Der Server unterstützt die zur Erfüllung der Anfrage erforderliche Funktionalität nicht.
- 502 Bad Gateway: Der Server hat eine ungültige Antwort von einem eingehenden Server erhalten.
- 503 Service Unavailable: Der Server ist derzeit nicht verfügbar.
- 504 Gateway Timeout: Der Server hat nicht rechtzeitig eine Antwort von einem Upstream-Server erhalten.
- 505 HTTP Version Not Supported: Die in der Anfrage verwendete HTTP-Version wird vom Server nicht unterstützt.
- 506 Variant Also Negotiates: Die transparente Inhaltsaushandlung für die Anfrage führt zu einer zirkulären Referenz.
- 507 Insufficient Storage: Der Server kann die zur Abschluss der Anfrage erforderliche Repräsentation nicht speichern.
- 508 Loop Detected: Der Server hat bei der Verarbeitung einer Anfrage eine Endlosschleife erkannt.
- 510 Not Extended: Weitere Erweiterungen der Anfrage sind erforderlich, damit der Server sie erfüllen kann.
- 511 Network Authentication Required: Für den Netzwerkzugriff ist eine Authentifizierung erforderlich.
Fazit
HTTP-Statuscodes spielen eine entscheidende Rolle für die Funktionsweise von Webanwendungen und -diensten. Sie ermöglichen eine standardisierte Kommunikation zwischen Servern und Clients und helfen bei der Verwaltung des Datenflusses sowie der Fehlerbehandlung. Das Verständnis dieser Codes ist für Entwickler und Administratoren unerlässlich, da es eine effektive Problemlösung und die Optimierung von Webressourcen ermöglicht.
