Dies ist eine durchsuchbare Referenz aller standardisierten HTTP-Statuscodes aus dem IANA-Register, von <code>100 Continue</code> bis <code>511 Network Authentication Required</code>. Zu jedem Code gibt es eine verständliche Erklärung, Hinweise, wann ein Server oder eine API ihn senden sollte, die zugehörigen Response-Header und einen Link zur RFC, die ihn definiert. Gängige inoffizielle Codes — <code>499</code> von nginx, <code>419</code> von Laravel, <code>520</code>–<code>526</code> von Cloudflare — sind ebenfalls enthalten und deutlich gekennzeichnet. Suchen Sie nach Nummer, Name oder Stichwort wie „redirect“ oder „rate limit“.
So schlagen Sie einen Statuscode nach
- 1Geben Sie einen Code (
404), seinen Anfang (40), eine Klasse (4xx), einen Namen (teapot) oder ein Stichwort ein (rate limit, cache, Retry-After). - 2Grenzen Sie die Liste mit den Filtern 1xx–5xx auf eine Klasse ein oder blenden Sie inoffizielle Codes aus.
- 3Wählen Sie einen Code — mit der Maus oder den Pfeiltasten —, um Bedeutung, Einsatz, zugehörige Header und Spezifikation zu sehen.
- 4Kopieren Sie den Code oder die vollständige Statuszeile, oder teilen Sie die URL der Seite: Sie endet auf
#404 und öffnet direkt diesen Code.
Die fünf Klassen von Statuscodes
Clients, die einen unbekannten Code erhalten, behandeln ihn wie den x00-Code seiner Klasse: Ein unbekannter 499 wird wie 400 behandelt, ein unbekannter 299 wie 200. Deshalb lassen sich neue Codes einführen, ohne alte Software zu beschädigen.
- 1xx Informativ
- Vorläufige Antworten vor der endgültigen: 100 Continue, 101 Switching Protocols für WebSockets, 103 Early Hints zum Vorladen.
- 2xx Erfolg
- Die Anfrage hat funktioniert. 200 OK ist der Standard; 201 Created und 204 No Content sagen genauer, was passiert ist.
- 3xx Umleitung
- Der Client muss woanders nachsehen, meist unter der URL im Location-Header — oder bei 304 Not Modified seine zwischengespeicherte Kopie verwenden.
- 4xx Client-Fehler
- Die Anfrage war fehlerhaft: falsch aufgebaut, nicht authentifiziert, verboten, für etwas Nichtexistentes oder zu häufig. Eine unveränderte Wiederholung hilft nicht.
- 5xx Server-Fehler
- Die Anfrage war womöglich in Ordnung, aber der Server oder etwas dahinter ist ausgefallen. Oft vorübergehend — ein erneuter Versuch mit wachsender Wartezeit (Back-off) lohnt sich.
Den richtigen Code für eine API wählen
Die meisten APIs brauchen nur ein Dutzend Codes. Für Erfolg: 200 mit Body, 201 mit Location-Header, wenn etwas angelegt wurde, 202, wenn die Verarbeitung später erfolgt, und 204, wenn nichts zurückzugeben ist. Für Client-Fehler: 400 für fehlerhaft aufgebaute Anfragen, 422 für korrekt aufgebaute Daten, die die Validierung nicht bestehen, 401, wenn Zugangsdaten fehlen oder ungültig sind, 403, wenn sie gültig, aber nicht ausreichend sind, 404 für unbekannte Ressourcen, 409 für Konflikte wie eine doppelte E-Mail-Adresse und 429 für Rate Limiting. Für Server-Fehler: 500 für Bugs sowie 502, 503 und 504 für Ausfälle der dazwischenliegenden Infrastruktur.
Egal welcher Code: Liefern Sie einen Body, der ihn erklärt. RFC 9457 „Problem Details“ (application/problem+json) gibt diesem Body eine Standardform mit den Feldern type, title, status und detail. Senden Sie nie 200 mit einem Fehler im Body: Caches, Monitoring und Retry-Logik lesen den Statuscode, nicht Ihr JSON. Zum Formatieren eines solchen Bodys nutzen Sie den JSON-Formatierer.
Häufig verwechselte Codes
- 401 vs 403
- 401 Unauthorized heißt „Ich weiß nicht, wer Sie sind“: Melden Sie sich an oder senden Sie ein gültiges Token. 403 Forbidden heißt „Ich weiß, wer Sie sind, und Sie dürfen das nicht“.
- 301 vs 302 vs 307 vs 308
- 301 und 308 sind dauerhaft und geben das Suchmaschinen-Ranking an die neue URL weiter; 302 und 307 sind vorübergehend. 307 und 308 garantieren, dass Methode und Body erhalten bleiben, während Browser bei 301 und 302 aus einem POST ein GET machen.
- 400 vs 422
- 400 gilt für Anfragen, die der Server gar nicht parsen kann; 422 für gültiges JSON, dessen Inhalt gegen Regeln verstößt, etwa ein fehlendes Pflichtfeld.
- 404 vs 410
- 404 sagt, dass hier derzeit nichts ist; 410 sagt, dass hier etwas war und absichtlich entfernt wurde, wodurch Suchmaschinen es schneller aus dem Index nehmen.
- 502 vs 504
- Beide stammen von einem Proxy oder Load Balancer. 502 bedeutet, dass der Upstream etwas Ungültiges geantwortet oder die Verbindung geschlossen hat; 504, dass er nicht rechtzeitig geantwortet hat.
- 500 vs 503
- 500 ist ein unerwarteter Fehler, meist ein Bug. 503 ist ein bekannter, vorübergehender Zustand — Wartung oder Überlastung — und sollte Retry-After mitsenden.
Statuscodes und SEO
Suchmaschinen achten genau auf Statuscodes. Nutzen Sie 301 oder 308, wenn eine Seite dauerhaft umzieht, damit ihr Ranking mitzieht; ein 302 signalisiert, dass weiterhin die alte URL indexiert werden soll. Liefern Sie für fehlende Seiten ein echtes 404 oder 410 — eine „Nicht gefunden“-Seite mit Status 200 ist ein „Soft 404“ und verschwendet Crawl-Budget. Geben Sie während Wartungsarbeiten 503 mit Retry-After zurück, damit Seiten nicht aus dem Index fallen. Legen Sie mit dem robots.txt-Generator fest, was Crawler besuchen dürfen.
Antworten mit 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414, 451 und 501 dürfen von Browsern und CDNs auch ohne explizite Frische-Header zwischengespeichert werden, sodass ein versehentliches 404 oder 301 hängen bleiben kann; setzen Sie Cache-Control hier bewusst.
Inoffizielle Codes, die Ihnen in Logs begegnen
Manche Codes stehen nicht im IANA-Register, sind in der Praxis aber verbreitet. nginx protokolliert 499, wenn der Client vor der Antwort auflegt, und 444, wenn nginx eine Verbindung ohne Antwort geschlossen hat. Cloudflare liefert 520–526, wenn es vom Ursprungsserver keine brauchbare Antwort erhält: 521 bedeutet, dass der Ursprung die Verbindung abgelehnt hat, 522 eine Zeitüberschreitung, 524 eine Antwortzeit von über 100 Sekunden und 525/526 einen TLS-Fehler zum Ursprung. Laravel sendet 419, wenn ein CSRF-Token abgelaufen ist. Diese Codes sind in der Liste als „inoffiziell“ markiert und lassen sich ausblenden.
- Was ist ein HTTP-Statuscode?
- Eine dreistellige Zahl am Anfang jeder HTTP-Antwort, die dem Client sagt, wie die Anfrage verlaufen ist. Die erste Ziffer gibt die Klasse an: 1xx informativ, 2xx Erfolg, 3xx Umleitung, 4xx Client-Fehler und 5xx Server-Fehler.
- Was ist der Unterschied zwischen 401 und 403?
- 401 Unauthorized bedeutet, dass die Anfrage keine gültigen Zugangsdaten enthält; eine Anmeldung kann helfen. 403 Forbidden bedeutet, dass der Server weiß, wer Sie sind, Sie aber keine Berechtigung haben; erneutes Anmelden hilft nicht.
- Soll ich 301 oder 302 für eine Weiterleitung verwenden?
- Verwenden Sie 301 (oder 308) bei einem dauerhaften Umzug, etwa einer geänderten URL oder einem Domainwechsel; Suchmaschinen übertragen das Ranking auf die neue Adresse. Verwenden Sie 302 (oder 307), wenn die ursprüngliche URL zurückkommt.
- Was bedeutet 429 Too Many Requests?
- Der Client wird durch ein Rate Limit gebremst. Warten Sie vor dem nächsten Versuch: Der Header Retry-After gibt, falls vorhanden, an, wie viele Sekunden oder bis wann. Clients sollten die Wartezeit exponentiell erhöhen, statt sofort erneut zu senden.
- Was verursacht einen 502 Bad Gateway-Fehler?
- Ein Proxy, Load Balancer oder CDN vor der Website hat vom dahinterliegenden Server eine ungültige Antwort erhalten — meist weil die Anwendung abgestürzt ist, neu gestartet wurde oder die Verbindung geschlossen hat. Die Lösung liegt auf Serverseite, in den Logs der Upstream-Anwendung.
- Was ist der Statuscode 499?
- Ein nginx-spezifischer Code, der protokolliert wird, wenn der Client die Verbindung geschlossen hat, bevor nginx antworten konnte. Der Client erhält ihn nie. Viele 499er bedeuten meist, dass das Backend zu langsam ist und Clients aufgeben.
- Ist 418 I'm a teapot ein echter Statuscode?
- Er entstand als Aprilscherz in RFC 2324 (1998). Er ist nicht für den echten Einsatz gedacht, aber weil so viel Software ihn implementiert, reserviert RFC 9110 den Code 418, damit er nie für etwas anderes vergeben wird.
- Wie viele HTTP-Statuscodes gibt es?
- Das IANA-Register definiert rund 63 Codes, darunter einige reservierte oder veraltete wie 306 und 305. Möglich sind Codes von 100 bis 599, und Clients behandeln jeden unbekannten Code wie den x00-Code seiner Klasse.