HTTP-Statuscodes
Die vollständige Referenz der HTTP-Antwort-Statuscodes: was jeder Code bedeutet, wann Server ihn senden und wie du reagieren solltest — zum Debuggen von Requests, Dokumentieren von APIs und Prüfen von Server-Logs.
Nutze die Sprunglinks, um zwischen den Antwortklassen zu wechseln, oder öffne die ausführlichen Anleitungen für die häufigsten Codes.
Tabelle der HTTP-Antwortcodes
| Code | Name | Bedeutung |
|---|---|---|
| 1xx Informationell | ||
| 100 | Continue | Der Server hat die Request-Header empfangen, und der Client sollte den Request-Body senden. |
| 101 | Switching Protocols | Der Server stimmt zu, zu dem im Upgrade-Header angeforderten Protokoll zu wechseln. |
| 102 | Processing | Der Server hat den vollständigen Request akzeptiert, aber noch nicht abgeschlossen (WebDAV). |
| 103 | Early Hints | Vorläufige Header, meist Link-Preload-Hinweise, die vor der finalen Antwort gesendet werden. |
| 2xx Erfolg | ||
| 200 | OK | Der Request war erfolgreich, und die Antwort enthält die angeforderte Repräsentation. |
| 201 | Created | Der Request war erfolgreich, und es wurde eine neue Ressource erstellt, meist benannt in Location. |
| 202 | Accepted | Der Request wurde für eine asynchrone Verarbeitung akzeptiert, die noch nicht abgeschlossen ist. |
| 203 | Non-Authoritative Information | Die Antwort wurde unterwegs von einem transformierenden Proxy verändert. |
| 204 | No Content | Der Request war erfolgreich, und es gibt absichtlich keinen Response-Body. |
| 205 | Zurücksetzen Content | Der Request war erfolgreich, und der Client sollte die Dokumentenansicht oder das Formular zurücksetzen. |
| 206 | Partial Content | Die Antwort liefert nur den mit dem Range-Header angeforderten Byte-Bereich. |
| 3xx Weiterleitung | ||
| 300 | Multiple Choices | Es existieren mehrere Repräsentationen, und der Client sollte eine davon auswählen. |
| 301 | Moved Permanently | Die Ressource hat eine dauerhafte neue URL, und Links sollten aktualisiert werden. |
| 302 | Found | Die Ressource liegt vorübergehend unter einer anderen URL; nutze weiterhin die ursprüngliche. |
| 303 | See Other | Das Ergebnis ist unter einer anderen URL verfügbar und sollte mit GET abgerufen werden. |
| 304 | Not Modified | Die zwischengespeicherte Kopie ist weiterhin gültig, daher wird kein Body erneut gesendet. |
| 307 | Temporary Redirect | Temporäre Weiterleitung, die die ursprüngliche HTTP-Methode und den Body beibehalten muss. |
| 308 | Permanent Redirect | Dauerhafte Weiterleitung, die die ursprüngliche HTTP-Methode und den Body beibehalten muss. |
| 4xx Client-Fehler | ||
| 400 | Bad Request | Der Server kann den Request nicht verarbeiten, weil er fehlerhaft ist. |
| 401 | Unauthorized | Gültige Authentifizierungsdaten sind erforderlich und fehlen oder sind falsch. |
| 402 | Payment Required | Reservierter Status, der in der Praxis von manchen APIs für Abrechnungslimits genutzt wird. |
| 403 | Forbidden | Der Server hat den Request verstanden, verweigert aber die Autorisierung. |
| 404 | Not Found | Unter der angeforderten URL existiert keine Ressource. |
| 405 | Method Not Allowed | Die URL existiert, unterstützt aber diese HTTP-Methode nicht. |
| 406 | Not Acceptable | Keine Repräsentation entspricht den Accept-Verhandlungs-Headern. |
| 407 | Proxy Authentication Required | Der Client muss sich zuerst beim Proxy authentifizieren. |
| 408 | Request Timeout | Der Server hat die Verbindung geschlossen, weil der Request zu lange gebraucht hat, um einzutreffen. |
| 409 | Conflict | Der Request steht im Konflikt mit dem aktuellen Zustand der Ressource, z. B. eine Bearbeitungskollision. |
| 410 | Gone | Die Ressource wurde absichtlich entfernt und kommt nicht zurück. |
| 411 | Length Required | Der Request muss einen Content-Length-Header enthalten. |
| 412 | Precondition Failed | Ein bedingter Header wie If-Match wurde als falsch ausgewertet. |
| 413 | Content Too Large | Der Request-Body überschreitet die vom Server akzeptierte Größe. |
| 414 | URI Too Long | Die Request-URL ist länger, als der Server verarbeiten kann. |
| 415 | Unsupported Media Type | Das Formatieren des Request-Bodys wird für diese Ressource nicht unterstützt. |
| 416 | Range Not Satisfiable | Der angeforderte Byte-Bereich liegt außerhalb der Ressourcengröße. |
| 417 | Expectation Failed | Der Expect-Request-Header konnte nicht erfüllt werden. |
| 418 | I'm a teapot | Ein Aprilscherz-Status aus RFC 2324; manche APIs nutzen ihn als Easter Egg. |
| 421 | Misdirected Request | Der Request hat einen Server erreicht, der für diese Autorität keine Antwort erzeugen kann. |
| 422 | Unprocessable Content | Der Request ist wohlgeformt, aber semantisch ungültig — häufig bei der REST-Validierung. |
| 425 | Too Early | Der Server weigert sich, einen Request zu verarbeiten, der wiederholt gesendet worden sein könnte (TLS Early Data). |
| 426 | Upgrade Required | Der Client muss zu einem anderen, in Upgrade genannten Protokoll wechseln. |
| 428 | Precondition Required | Der Server verlangt einen bedingten Request, um verlorene Updates zu verhindern. |
| 429 | Too Many Requests | Der Client hat ein Rate-Limit überschritten; Retry-After gibt einen Hinweis, wann es erneut versucht werden sollte. |
| 431 | Request Header Fields Too Large | Header, oft Cookies, überschreiten die Größenlimits des Servers. |
| 451 | Unavailable For Legal Reasons | Der Zugriff ist aus rechtlichen Gründen blockiert, etwa durch Gerichtsbeschlüsse. |
| 5xx Server-Fehler | ||
| 500 | Internal Server Error | Der Server ist bei der Verarbeitung des Requests auf einen unerwarteten Fehler gestoßen. |
| 501 | Not Implemented | Der Server kennt oder unterstützt die Request-Methode nicht. |
| 502 | Bad Gateway | Ein Gateway oder Proxy hat eine ungültige Antwort vom Upstream-Server erhalten. |
| 503 | Service Unavailable | Der Server kann vorübergehend nicht bedienen, wegen Überlastung oder Wartung. |
| 504 | Gateway Timeout | Ein Gateway oder Proxy hat das Warten auf den Upstream-Server aufgegeben. |
| 505 | HTTP Version Not Supported | Der Server unterstützt die verwendete HTTP-Protokollversion nicht. |
| 506 | Variant Also Negotiates | Eine Fehlkonfiguration der Content-Negotiation auf dem Server. |
| 507 | Insufficient Storage | Der Server kann nicht speichern, was zum Abschluss des Requests nötig ist (WebDAV). |
| 508 | Loop Detected | Der Server hat während der Verarbeitung eine Endlosschleife erkannt (WebDAV). |
| 510 | Not Extended | Der Request benötigt weitere Erweiterungen, die nicht mitgeliefert wurden. |
| 511 | Network Authentication Required | Das Netzwerk (z. B. ein Captive Portal) verlangt zuerst eine Authentifizierung. |
1xx Informationell
Informationelle Antworten bestätigen, dass der Request empfangen wurde und der Client fortfahren kann. Sie sind vorläufig: Es folgt immer ein finaler Status. Der Code, dem du in der Praxis tatsächlich begegnest, ist 103 Early Hints, mit dem Server Preload-Hinweise senden können, bevor die vollständige Antwort bereit ist.
2xx Erfolg
Erfolgsantworten bedeuten, dass der Request verstanden und akzeptiert wurde. 200 OK liefert das Ergebnis im Body, 201 Created kündigt eine neue Ressource an, und 204 No Content bestätigt Erfolg mit bewusst leerem Rückgabewert.
3xx Weiterleitung
Weiterleitungsantworten verweisen den Client woanders hin. Der entscheidende Unterschied ist die Dauerhaftigkeit — 301/308 sind dauerhaft, 302/307 temporär — und ob die HTTP-Methode beibehalten werden muss (307/308) oder zu GET wechseln darf (301/302). 304 Not Modified ist der Sonderfall, der das Browser-Caching antreibt.
4xx Client-Fehler
Client-Fehler bedeuten, dass der Request selbst abgelehnt wurde. Die alltäglichen: 400 fehlerhafter Request, 401 Authentifizierung erforderlich, 403 Zugriff verweigert, 404 nichts unter dieser URL und 429 Rate-Limit überschritten.
5xx Server-Fehler
Server-Fehler bedeuten, dass der Server bei einem Request versagt hat, der durchaus gültig gewesen sein kann. 500 ist ein Anwendungsabsturz, 502 und 504 sind Proxys, die einen defekten oder stummen Upstream melden, und 503 ist bewusste, temporäre Nichtverfügbarkeit.
So liest du einen Statuscode
Die erste Ziffer ist die Klasse: 1xx informationell, 2xx Erfolg, 3xx Weiterleitung, 4xx Client-Fehler, 5xx Server-Fehler. Ein Client, der auf einen unbekannten Code trifft, kann ihn gefahrlos wie den x00-Code seiner Klasse behandeln — so bleiben neue Codes abwärtskompatibel. Beim Debuggen lohnt sich immer ein Blick auf die Antwort-Header neben dem Code: Location erklärt Weiterleitungen, Allow erklärt 405, Retry-After erklärt 429 und 503.
Beispiele
200 OK — page served normally 301 Moved Permanently — URL changed for good, follow Location 304 Not Modified — your cached copy is still valid 404 Not Found — nothing exists at this URL 429 Too Many Requests — rate limit hit, wait Retry-After seconds 503 Service Unavailable — temporary downtime or maintenance
FAQ
Was ist HTTP 404?
HTTP 404 bedeutet, dass die angeforderte Ressource unter der angegebenen URL nicht gefunden werden konnte. Die ausführliche 404-Anleitung erklärt Ursachen, Behebung und SEO-Auswirkungen.
Was ist der Unterschied zwischen 301 und 302?
Eine 301-Weiterleitung ist dauerhaft — Links und Suchmaschinen sollten auf die neue URL aktualisiert werden. Eine 302 signalisiert einen temporären Umzug, bei dem die ursprüngliche URL kanonisch bleibt.
Was bedeutet 503?
HTTP 503 bedeutet, dass der Dienst vorübergehend nicht verfügbar ist, meist wegen Wartung oder Überlastung, und der Client es nach einer Verzögerung erneut versuchen sollte.
Was ist der Unterschied zwischen 401 und 403?
401 bedeutet, dass der Server gültige Authentifizierungsdaten benötigt. 403 bedeutet, dass er weiß, wer du bist, und den Zugriff trotzdem verweigert — erneutes Anmelden hilft hier nicht.
Was ist der Unterschied zwischen 502 und 504?
Beide stammen von einem Proxy, der mit einem Upstream-Server spricht: 502 bedeutet, der Upstream hat eine ungültige Antwort zurückgeschickt, 504 bedeutet, er hat innerhalb des Timeouts gar nicht geantwortet.
Welche Statuscodes sind für SEO am wichtigsten?
200 kennzeichnet indexierbare Seiten, 301/308 übertragen Rankings bei dauerhaften Umzügen, 404/410 entfernen tote URLs und 503 schützt Rankings während Ausfallzeiten, wenn es mit Retry-After ausgeliefert wird.