HTTP-Statuscodes im Überblick
Jede HTTP-Antwort beginnt mit einem dreistelligen Statuscode, der dem Client mitteilt, was mit seiner Anfrage passiert ist. Hier finden Sie alle Codes nach Klassen geordnet, mit verständlichen Erklärungen, Beispielantworten und der Bedeutung jedes Codes für Weiterleitungen und SEO.
1xx Information
Die Anfrage wurde empfangen, die Verarbeitung läuft noch. Diese vorläufigen Antworten kommen vor der endgültigen Antwort und beenden nie eine Weiterleitungskette.
- 100
Continue
Vorläufige Antwort: Der Server hat die Anfrage-Header akzeptiert, und der Client, der „Expect: 100-continue“ gesendet hat, soll jetzt den Body senden. - 101
Switching Protocols
Der Server nimmt die Upgrade-Anfrage des Clients an und wechselt auf dieser Verbindung zu einem anderen Protokoll, in der Praxis fast immer zu WebSocket. - 102
Processing
Veraltete vorläufige WebDAV-Antwort: Der Server arbeitet noch an einer langen Anfrage, und der Client soll weiter warten. - 103
Early Hints
Vorläufige Antwort mit Link-Headern vor der endgültigen Antwort, damit Browser Ressourcen vorladen oder Verbindungen aufbauen, solange der Server arbeitet.
2xx Erfolg
Die Anfrage wurde empfangen, verstanden und angenommen. Eine fehlerfreie Weiterleitungskette endet mit einem dieser Codes, meist mit 200 OK.
- 200
OK
Die Anfrage war erfolgreich; bei GET enthält der Body die angeforderte Ressource. Jede Weiterleitungskette sollte auf einer URL enden, die 200 liefert. - 201
Created
Die Anfrage war erfolgreich und hat eine neue Ressource angelegt, meist nach POST oder PUT. Ein etwaiger Location-Header verweist auf die neue Ressource. - 202
Accepted
Die Anfrage wurde zur Verarbeitung angenommen, ist aber noch nicht abgeschlossen. Üblich bei asynchronen Jobs; das Endergebnis ist nicht garantiert. - 203
Non-Authoritative Information
Die Anfrage war erfolgreich, aber ein transformierender Proxy hat die Antwort verändert. Der Inhalt ist nicht genau der, den der Ursprungsserver gesendet hat. - 204
No Content
Die Anfrage war erfolgreich, und es gibt keinen Inhalt zu senden. Browser bleiben auf der aktuellen Seite; üblich bei DELETE, Beacons und CORS-Preflight. - 205
Reset Content
Die Anfrage war erfolgreich, und der Client soll die Dokumentansicht zurücksetzen, zum Beispiel das gerade abgesendete Formular leeren. - 206
Partial Content
Der Server sendet nur die Byte-Bereiche, die der Client per Range-Header angefordert hat, etwa beim Video-Streaming und bei fortsetzbaren Downloads. - 207
Multi-Status
WebDAV-Antwort, die für mehrere Ressourcen oder Eigenschaften jeweils einen eigenen Statuscode in einem XML-Body vom Typ multistatus liefert. - 208
Already Reported
Nur innerhalb einer WebDAV-207-Antwort: Die Mitglieder dieser Collection wurden bereits aufgeführt. Das verhindert endlose Wiederholungen bei Binding-Schleifen. - 226
IM Used
Der Server hat ein GET mit Delta-Kodierung (RFC 3229) beantwortet: Der Body enthält nur die Änderungen gegenüber einer Version, die der Client schon hat.
3xx Weiterleitung
Der Client muss einen weiteren Schritt ausführen, in der Regel die URL aus dem Location-Header anfordern. Aus diesen Codes setzt sich eine Weiterleitungskette zusammen.
- 300
Multiple Choices
Die Ressource hat mehrere Repräsentationen, und der Client kann eine wählen. Browser folgen einer 300 nicht automatisch, auch nicht mit Location-Header. - 301
Moved Permanently
Die Ressource hat eine neue, dauerhafte URL, die im Location-Header steht. Clients und Suchmaschinen sollen ab sofort die neue URL verwenden. - 302
Found
Die Ressource liegt vorübergehend unter einer anderen URL. Clients folgen dem Location-Header, sollen künftig aber weiter die ursprüngliche URL verwenden. - 303
See Other
Leitet den Client auf eine andere URL weiter, die per GET abzurufen ist, meist eine Ergebnisseite nach dem Absenden eines Formulars (Post/Redirect/Get). - 304
Not Modified
Antwort auf ein bedingtes GET oder HEAD: Die Kopie im Cache des Clients ist noch gültig, also sendet der Server keinen Body, und die Kopie wird weiterverwendet. - 305
Use Proxy
Veraltet. Forderte den Client auf, die Anfrage über den in Location angegebenen Proxy zu wiederholen; Browser ignorieren den Code aus Sicherheitsgründen. - 306
Nicht verwendet (früher Switch Proxy)
Reserviert und darf nicht verwendet werden. 306 war einst als „Switch Proxy“ vorgeschlagen, wurde aber verworfen; Clients werten ihn als unbekannten 3xx-Code. - 307
Temporary Redirect
Temporäre Weiterleitung: Die Anfrage muss mit gleicher Methode und gleichem Body an die Location-URL gehen. Bei 302 darf dagegen aus POST ein GET werden. - 308
Permanent Redirect
Permanente Weiterleitung, die Anfragemethode und Body beibehält. Wie bei 301 gilt ab sofort die neue URL, aber aus POST wird nie ein GET.
4xx Client-Fehler
Die Anfrage kann so, wie sie gesendet wurde, nicht erfüllt werden: Die Seite existiert nicht, der Zugriff wird verweigert oder der Client hat zu viele Anfragen gesendet.
- 400
Bad Request
Der Server verarbeitet die Anfrage wegen eines Client-Fehlers nicht, etwa wegen fehlerhafter Syntax, einer ungültigen URL oder zu großer Cookies. - 401
Unauthorized
Die Anfrage erfordert gültige Anmeldedaten. Der Server muss im WWW-Authenticate-Header angeben, wie sich der Client authentifiziert, etwa per Basic oder Bearer. - 402
Payment Required
Von HTTP für künftige Nutzung reserviert. In der Praxis verwenden manche APIs und Dienste den Code, wenn eine Zahlung, Guthaben oder ein Abo nötig ist. - 403
Forbidden
Der Server hat die Anfrage verstanden, verweigert aber die Autorisierung. Anders als bei 401 hilft es nicht, dieselben Anmeldedaten einfach erneut zu senden. - 404
Not Found
Der Server hat unter dieser URL nichts oder will nicht verraten, ob etwas existiert. Ob das Fehlen vorübergehend oder dauerhaft ist, bleibt offen. - 405
Method Not Allowed
Die URL existiert, unterstützt die verwendete HTTP-Methode aber nicht, etwa POST an eine statische Seite. Der Allow-Header nennt die erlaubten Methoden. - 406
Not Acceptable
Der Server kann keine Antwort erzeugen, die zu den Accept-Headern des Clients (Format, Sprache, Kodierung) passt, und sendet auch keine Standardvariante. - 407
Proxy Authentication Required
Wie 401, nur verlangt hier ein Proxy zwischen Client und Server eine Authentifizierung. Der Proxy-Authenticate-Header gibt das Verfahren an. - 408
Request Timeout
Der Server hat nicht rechtzeitig eine vollständige Anfrage erhalten und schließt die Verbindung. Der Client kann sie über eine neue Verbindung erneut senden. - 409
Conflict
Die Anfrage steht im Konflikt mit dem aktuellen Zustand der Ressource, etwa wegen einer parallelen Bearbeitung, eines Duplikats oder einer falschen Version. - 410
Gone
Die Ressource wurde absichtlich entfernt und kommt voraussichtlich nicht zurück. Ein deutlicheres, dauerhaftes Signal als 404 Not Found. - 411
Length Required
Der Server lehnt eine Anfrage mit Body, aber ohne Content-Length-Header ab. Der Client kann sie mit einer gültigen Content-Length erneut senden. - 412
Precondition Failed
Eine Bedingung in den Anfrage-Headern, etwa If-Match oder If-Unmodified-Since, war nicht erfüllt, daher hat der Server die Änderung nicht ausgeführt. - 413
Content Too Large
Der Body der Anfrage ist größer, als der Server annimmt, etwa bei zu großen Uploads. Früher „Payload Too Large“ bzw. „Request Entity Too Large“ genannt. - 414
URI Too Long
Die angeforderte URL ist länger, als der Server verarbeitet, zum Beispiel weil eine Weiterleitungsschleife immer neue Parameter an die URL anhängt. - 415
Unsupported Media Type
Der Server lehnt den Body der Anfrage ab, weil sein Format (Content-Type) oder seine Inhaltskodierung (Content-Encoding) nicht unterstützt wird. - 416
Range Not Satisfiable
Der Byte-Bereich im Range-Header der Anfrage liegt außerhalb der Datei, etwa wenn ein Download hinter dem Ende einer geänderten Datei fortgesetzt wird. - 417
Expectation Failed
Der Server kann die Erwartung im Expect-Header der Anfrage nicht erfüllen. In der Praxis heißt das: Expect: 100-continue wird nicht unterstützt. - 418
I’m a Teapot
Ein Aprilscherz aus dem Kaffeekannen-Protokoll von 1998 (RFC 2324). In HTTP als nicht verwendet reserviert, manche Websites liefern ihn aber absichtlich. - 421
Misdirected Request
Die Anfrage erreichte einen Server, der für diesen Hostnamen nicht antworten kann, oft wegen falscher TLS-SNI oder einer wiederverwendeten HTTP/2-Verbindung. - 422
Unprocessable Content
Die Anfrage ist formal korrekt, ihr Inhalt aber semantisch ungültig, typischerweise ein Validierungsfehler in einer API. Früher „Unprocessable Entity“. - 423
Locked
WebDAV: Die Ressource ist gesperrt, die Methode kann gerade nicht angewendet werden. Der Client braucht das Lock-Token oder muss das Ende der Sperre abwarten. - 424
Failed Dependency
WebDAV: Die Methode wurde nicht ausgeführt, weil eine Aktion, von der sie abhing, fehlschlug, etwa eine einzelne Eigenschaft in einem PROPPATCH. - 425
Too Early
Der Server verarbeitet keine als TLS Early Data (0-RTT) gesendete Anfrage, da sie per Replay wiederholbar wäre. Der Client sendet sie nach dem Handshake erneut. - 426
Upgrade Required
Der Server lehnt es ab, die Anfrage über das aktuelle Protokoll zu bearbeiten, und verlangt ein Upgrade auf das im Upgrade-Header genannte Protokoll. - 428
Precondition Required
Der Server verlangt eine bedingte Anfrage (If-Match), um verlorene Aktualisierungen zu verhindern, wenn mehrere Clients dieselbe Ressource bearbeiten. - 429
Too Many Requests
Der Client hat in einem bestimmten Zeitraum zu viele Anfragen gesendet (Rate-Limit). Ein Retry-After-Header kann angeben, wie lange er warten soll. - 431
Request Header Fields Too Large
Der Server lehnt die Anfrage ab, weil ihre Header zu groß sind, meist weil der Browser zu viele oder zu große Cookies sendet. - 444
No Response
nginx Nicht standardisierter nginx-Code: Der Server schließt die Verbindung, ohne eine Antwort zu senden. Clients sehen eine leere Antwort und nie einen 444. - 451
Unavailable For Legal Reasons
Zugriff wegen einer rechtlichen Forderung verweigert, etwa durch Gerichtsbeschluss oder behördliche Sperre. Benannt nach Ray Bradburys Roman Fahrenheit 451. - 499
Client Closed Request
nginx Nicht standardisierter Code, den nginx ins Access-Log schreibt, wenn der Client die Verbindung geschlossen hat, bevor der Server seine Antwort gesendet hat.
5xx Server-Fehler
Der Server konnte eine scheinbar gültige Anfrage nicht ausführen. Anhaltende 5xx-Fehler sperren Besucher und Crawler gleichermaßen aus.
- 500
Internal Server Error
Allgemeiner Fehler auf dem Server: Dort ist etwas schiefgelaufen, etwa ein Absturz der Anwendung oder eine fehlerhafte Konfigurationsdatei. - 501
Not Implemented
Der Server unterstützt die Funktion nicht, die zur Ausführung der Anfrage nötig ist, typischerweise eine HTTP-Methode, die er nicht kennt. - 502
Bad Gateway
Ein Gateway oder Proxy hat vom Upstream-Server eine ungültige Antwort erhalten, zum Beispiel weil die Anwendung hinter nginx abgestürzt ist. - 503
Service Unavailable
Der Server kann die Anfrage wegen Überlastung oder Wartung vorübergehend nicht bearbeiten. Retry-After kann angeben, wann ein neuer Versuch sinnvoll ist. - 504
Gateway Timeout
Ein Gateway oder Proxy hat vom Upstream-Server nicht rechtzeitig eine Antwort erhalten, typischerweise weil die Anwendung zu langsam ist. - 505
HTTP Version Not Supported
Der Server unterstützt die in der Anfrage verwendete HTTP-Hauptversion nicht oder lehnt sie ab. Heute deutet das oft auf eine fehlerhafte Request-Line hin. - 506
Variant Also Negotiates
Konfigurationsfehler bei der transparenten Content Negotiation (RFC 2295): Die gewählte Variante wird ihrerseits ausgehandelt, sodass eine Schleife entsteht. - 507
Insufficient Storage
WebDAV: Der Server kann die zur Ausführung der Anfrage nötigen Daten nicht speichern, zum Beispiel weil eine Festplatte oder ein Nutzerkontingent voll ist. - 508
Loop Detected
WebDAV: Der Server brach eine Operation mit Depth: infinity ab, weil er eine Endlosschleife aus Bindings fand. Hat nichts mit Weiterleitungsschleifen zu tun. - 510
Not Extended
Aus dem veralteten HTTP Extension Framework (RFC 2774): Der Anfrage fehlt eine erforderliche Erweiterungsdeklaration. Historisch und praktisch ungenutzt. - 511
Network Authentication Required
Das Netzwerk, meist ein WLAN-Captive-Portal, verlangt vor dem Zugang eine Anmeldung. Gesendet von abfangenden Netzwerken, nicht von Ursprungsservern. - 520
Web Server Returned an Unknown Error
Cloudflare Cloudflare-spezifisch: Der Ursprungsserver lieferte eine leere, unbekannte oder unerwartete Antwort, zum Beispiel nach einem Absturz oder Verbindungsabbruch. - 521
Web Server Is Down
Cloudflare Cloudflare-spezifisch: Der Ursprungsserver hat die Verbindung von Cloudflare abgelehnt, meist weil der Webserver nicht läuft oder Cloudflare blockiert. - 522
Connection Timed Out
Cloudflare Cloudflare-spezifisch: Cloudflare konnte nicht rechtzeitig eine TCP-Verbindung zum Ursprungsserver aufbauen, oder dieser hat die Anfrage nicht bestätigt. - 523
Origin Is Unreachable
Cloudflare Cloudflare-spezifisch: Cloudflare erreicht den Ursprungsserver gar nicht, typischerweise wegen eines Routing-Problems oder einer falschen IP-Adresse im DNS. - 524
A Timeout Occurred
Cloudflare Cloudflare-spezifisch: Die Verbindung zum Ursprungsserver steht, doch vor Ablauf des Read-Timeouts (standardmäßig etwa zwei Minuten) kam keine HTTP-Antwort. - 525
SSL Handshake Failed
Cloudflare Cloudflare-spezifisch: Der TLS-Handshake zwischen Cloudflare und dem Ursprungsserver ist fehlgeschlagen, etwa weil dieser kein gültiges Zertifikat hat. - 526
Invalid SSL Certificate
Cloudflare Cloudflare-spezifisch: Im Modus Full (strict) ist das Zertifikat des Ursprungsservers ungültig, etwa abgelaufen, selbstsigniert oder für einen anderen Namen. - 530
Cloudflare-Fehler 1xxx
Cloudflare Cloudflare-spezifisch: Wird zusammen mit einem Cloudflare-Fehler 1xxx gesendet, etwa 1016 (Origin DNS error) oder 1033 (Cloudflare Tunnel error).
So lesen Sie einen HTTP-Statuscode
Die erste Ziffer gibt die Klasse der Antwort an, die beiden anderen bestimmen die genaue Bedeutung innerhalb dieser Klasse. Kennt ein Client einen bestimmten Code nicht, behandelt er ihn wie den x00-Code seiner Klasse. Ein unbekannter 4xx-Code wird also wie 400 Bad Request behandelt.
Der Statustext nach der Zahl, etwa Not Found oder Moved Permanently, ist nur eine Beschreibung für Menschen. Clients richten sich allein nach der Zahl, und HTTP/2 und HTTP/3 übertragen überhaupt keinen Statustext.
Statuscodes für Weiterleitungen im Überblick
- 301 Moved Permanently: permanent; Browser dürfen aus einer POST- eine GET-Anfrage machen. Die übliche Wahl für umgezogene Seiten.
- 302 Found: temporär; die Methode kann sich ändern. In vielen Frameworks der Standard.
- 303 See Other: temporär; das neue Ziel wird immer per GET abgerufen. Üblich nach dem Absenden von Formularen.
- 307 Temporary Redirect: temporär; Methode und Body bleiben erhalten.
- 308 Permanent Redirect: permanent; Methode und Body bleiben erhalten.
- 304 Not Modified: keine Weiterleitung auf eine andere URL, sondern ein Signal, dass die Kopie im Cache des Clients noch gültig ist.
Wann Sie welchen Code einsetzen, erfahren Sie im Artikel HTTP-Statuscodes für Weiterleitungen erklärt.
Statuscodes in einer Weiterleitungskette
Eine Weiterleitungskette ist eine Folge von 3xx-Antworten, die mit einer endgültigen Antwort endet. Beim Besucher oder Crawler kommt nur der letzte Statuscode tatsächlich an. Eine Kette, die mit einem 404 endet, ist deshalb ein defekter Link, ganz gleich, wie sauber die Weiterleitungen davor aussehen. Mit dem URL-Redirect-Checker sehen Sie den Statuscode jedes Hops (jedes einzelnen Schritts der Kette), mit dem Bulk-Redirect-Checker prüfen Sie viele URLs auf einmal.
URL-Redirect-Checker
Prüfen Sie mit dem kostenlosen Redirect-Checker von TrueURL Hop für Hop, welche Statuscodes eine URL zurückgibt.