Menu

HTTP-Statuscodes

Durchsuchbare Referenz für jeden HTTP-Statuscode mit verständlichen Erklärungen.

Zuletzt aktualisiert

  • 100Continue

    1xx

    Der erste Teil der Anfrage wurde empfangen; der Client soll den Body weitersenden.

  • 101Switching Protocols

    1xx

    Der Server stimmt dem Protokollwechsel zu (z. B. HTTP/1.1 zu WebSocket).

  • 102Processing

    1xx

    WebDAV — die Anfrage wurde akzeptiert, ist aber noch nicht abgeschlossen.

  • 103Early Hints

    1xx

    Wird mit dem Link-Header verwendet, damit der Client Ressourcen vor der endgültigen Antwort vorab laden kann.

  • 200OK

    2xx

    Die Anfrage war erfolgreich. Die genaue Bedeutung hängt von der Methode ab.

  • 201Created

    2xx

    Die Anfrage war erfolgreich und eine neue Ressource wurde erstellt.

  • 202Accepted

    2xx

    Die Anfrage wurde zur Verarbeitung akzeptiert, ist aber noch nicht abgeschlossen (asynchrone Arbeit).

  • 203Non-Authoritative Information

    2xx

    Die zurückgegebenen Metadaten stammen von einem transformierenden Proxy, nicht vom Ursprungsserver.

  • 204No Content

    2xx

    Die Anfrage war erfolgreich, aber es gibt keinen Body zurückzugeben.

  • 205Reset Content

    2xx

    Weist den Client an, die Dokumentansicht zurückzusetzen, die die Anfrage gesendet hat (z. B. das Formular zu leeren).

  • 206Partial Content

    2xx

    Wird als Antwort auf eine Range-Anfrage verwendet — der Body enthält nur den angeforderten Byte-Bereich.

  • 300Multiple Choices

    3xx

    Die Ressource hat mehrere Darstellungen; der Client muss eine auswählen.

  • 301Moved Permanently

    3xx

    Die Ressource hat eine neue permanente URL. Suchmaschinen aktualisieren ihren Index.

  • 302Found

    3xx

    Die Ressource befindet sich vorübergehend an einer anderen URL. Verwenden Sie 307, wenn die Methode erhalten bleiben muss.

  • 303See Other

    3xx

    Nach einem POST leitet den Client weiter, um das Ergebnis mit GET abzurufen (Post/Redirect/Get).

  • 304Not Modified

    3xx

    Die Cache-Kopie ist noch aktuell — wird als Antwort auf bedingte GETs gesendet (ETag / If-Modified-Since).

  • 307Temporary Redirect

    3xx

    Wie 302, aber die Anfrage­methode darf beim Folgen der Weiterleitung nicht geändert werden.

  • 308Permanent Redirect

    3xx

    Wie 301, aber die Anfrage­methode darf beim Folgen der Weiterleitung nicht geändert werden.

  • 400Bad Request

    4xx

    Der Server kann oder will die Anfrage wegen eines Client-Fehlers nicht verarbeiten (fehlerhafte Syntax, ungültiges Framing).

  • 401Unauthorized

    4xx

    Authentifizierung ist erforderlich und fehlgeschlagen oder nicht bereitgestellt. (Trotz des Namens geht es um Authentifizierung, nicht Autorisierung.)

  • 402Payment Required

    4xx

    Für zukünftige Verwendung reserviert. Wird gelegentlich von APIs verwendet, um zu signalisieren, dass ein zahlungspflichtiges Kontingent erreicht ist.

  • 403Forbidden

    4xx

    Der Server hat die Anfrage verstanden, lehnt sie aber ab. Eine erneute Authentifizierung hilft nicht.

  • 404Not Found

    4xx

    Der Server kann die angeforderte Ressource nicht finden.

  • 405Method Not Allowed

    4xx

    Die Methode ist dem Server bekannt, wird aber von der Zielressource nicht unterstützt.

  • 406Not Acceptable

    4xx

    Der Server kann keine Antwort erzeugen, die den vom Client gesendeten Accept-Headern entspricht.

  • 407Proxy Authentication Required

    4xx

    Wie 401, aber die Authentifizierung ist für einen Proxy erforderlich.

  • 408Request Timeout

    4xx

    Beim Warten auf die Anfrage trat ein Timeout am Server auf.

  • 409Conflict

    4xx

    Die Anfrage steht im Konflikt mit dem aktuellen Zustand der Zielressource (z. B. Versionskonflikt).

  • 410Gone

    4xx

    Die Ressource wurde dauerhaft gelöscht, ohne Weiterleitungsadresse.

  • 411Length Required

    4xx

    Der Server benötigt einen Content-Length-Header.

  • 412Precondition Failed

    4xx

    Eine Vorbedingung in den Anfrage-Headern (z. B. If-Match) wurde vom Server nicht erfüllt.

  • 413Payload Too Large

    4xx

    Der Anfrage-Body ist größer, als der Server zu verarbeiten bereit ist.

  • 414URI Too Long

    4xx

    Die URI ist länger, als der Server interpretieren möchte.

  • 415Unsupported Media Type

    4xx

    Der Anfrage-Body verwendet einen Medientyp, den der Server oder die Ressource nicht unterstützt.

  • 416Range Not Satisfiable

    4xx

    Der Range-Header fordert einen Bereich außerhalb der Datei an.

  • 418I'm a teapot

    4xx

    Ein Aprilscherz aus RFC 2324. Wird von Servern zurückgegeben, die sich weigern, Kaffee zu kochen.

  • 421Misdirected Request

    4xx

    Die Anfrage wurde an einen Server gesendet, der keine Antwort liefern kann (z. B. falsche HTTP/2-Verbindung).

  • 422Unprocessable Entity

    4xx

    Die Anfrage ist wohlgeformt, enthält aber semantische Fehler (von APIs häufig für Validierungsfehler verwendet).

  • 423Locked

    4xx

    WebDAV — die zugegriffene Ressource ist gesperrt.

  • 425Too Early

    4xx

    Der Server will keine Anfrage verarbeiten, die möglicherweise wiederholt wird.

  • 426Upgrade Required

    4xx

    Der Client muss auf ein anderes Protokoll (z. B. TLS) umstellen, um die Anfrage abzuschließen.

  • 428Precondition Required

    4xx

    Der Server verlangt, dass die Anfrage bedingt ist (hilft, das Lost-Update-Problem zu vermeiden).

  • 429Too Many Requests

    4xx

    Der Client hat in einer bestimmten Zeit zu viele Anfragen gesendet (Rate Limiting).

  • 431Request Header Fields Too Large

    4xx

    Der Server lehnt die Anfrage ab, weil ein Header-Feld — oder die Header insgesamt — zu groß ist.

  • 451Unavailable For Legal Reasons

    4xx

    Die Ressource ist aus rechtlichen Gründen nicht verfügbar (benannt nach Fahrenheit 451).

  • 500Internal Server Error

    5xx

    Der Server stieß auf eine unerwartete Bedingung. Der allgemeine 5xx-Fehler.

  • 501Not Implemented

    5xx

    Der Server erkennt die Anfrage­methode nicht.

  • 502Bad Gateway

    5xx

    Der Server, der als Gateway fungiert, hat eine ungültige Antwort vom Upstream-Server erhalten.

  • 503Service Unavailable

    5xx

    Der Server ist nicht bereit, die Anfrage zu bearbeiten — meist überlastet oder in Wartung.

  • 504Gateway Timeout

    5xx

    Der Server, der als Gateway fungiert, hat keine rechtzeitige Antwort vom Upstream-Server erhalten.

  • 505HTTP Version Not Supported

    5xx

    Der Server unterstützt die in der Anfrage verwendete HTTP-Version nicht.

  • 507Insufficient Storage

    5xx

    WebDAV — der Server kann die zur Bearbeitung erforderliche Darstellung nicht speichern.

  • 508Loop Detected

    5xx

    WebDAV — der Server hat während der Verarbeitung eine Endlosschleife festgestellt.

  • 511Network Authentication Required

    5xx

    Der Client muss sich für den Netzwerkzugriff authentifizieren (Captive Portals).

Was sind HTTP-Statuscodes?

HTTP-Statuscodes sind die dreistelligen Zahlen, die ein Server am Anfang jeder Antwort zurückgibt, um zusammenzufassen, was passiert ist. Anhand dieser Codes entscheiden Browser, Clients, Proxies und CDNs, ob sie cachen, weiterleiten, erneut versuchen oder einen Fehler an den Nutzer durchreichen.

Jeder Statuscode gehört — abhängig von der ersten Ziffer — zu einer von fünf Klassen: 1xx informativ, 2xx Erfolg, 3xx Weiterleitung, 4xx Client-Fehler, 5xx Server-Fehler. Sobald du die Klasse kennst, weißt du meistens schon grob, was los ist, auch ohne den konkreten Code nachzuschlagen.

Die meisten Anwendungen kommen mit einem überschaubaren Kern aus (200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503). Zu wissen, was jeder davon *wirklich* bedeutet — und worin der Unterschied zwischen 401 Unauthorized und 403 Forbidden oder 301 Moved Permanently und 302 Found liegt — macht dich zu einem souveräneren Backend- bzw. API-Entwickler.

Was du beim Stöbern in dieser Referenz lernst

  • Die erste Ziffer verrät immer die Klasse: 1xx Info, 2xx Erfolg, 3xx Redirect, 4xx Client-Fehler, 5xx Server-Fehler.
  • Statuscodes sind *Teil des Vertrags*, den eine API anbietet — Clients sollten sich am Code orientieren, nicht Fehlermeldungen aus dem Body parsen.
  • 4xx heißt: Der Client hat etwas falsch gemacht (ungültige Eingabe, fehlende Auth, fehlende Ressource). 5xx heißt: Der Server ist gescheitert, egal was der Client gemacht hat.

So nutzt du die Statuscode-Referenz Schritt für Schritt

  1. Nach Code oder Name suchen

    Tippe eine Zahl (404, 429) oder ein Stichwort (auth, redirect, rate limit) — die passenden Codes werden live gefiltert.

  2. Nach Klasse filtern

    Mit den Klassen-Chips (1xx, 2xx, 3xx, 4xx, 5xx) grenzt du die Liste ein, wenn du eher stöbern als gezielt suchen willst.

  3. Die verständliche Erklärung lesen

    Jeder Eintrag erklärt, wann der Code geschickt wird, wie sich Clients typischerweise verhalten und was die häufigste Ursache ist.

  4. Verwandte Codes vergleichen

    Über die Querverweise zwischen oft verwechselten Paaren (401 vs 403, 301 vs 302) findest du den richtigen Code für deine API.

Klassen von HTTP-Statuscodes

Die fünf Klassen der HTTP-Statuscodes auf einen Blick. Definiert in RFC 9110 und registriert in der IANA HTTP Status Code Registry.

KlasseBedeutungHäufige Codes
1xx InformationalAnfrage angekommen, wird verarbeitet100, 101, 103
2xx SuccessDie Anfrage hat geklappt200, 201, 204, 206
3xx RedirectionSchau woanders nach301, 302, 304, 307, 308
4xx Client ErrorAn der Anfrage stimmt etwas nicht400, 401, 403, 404, 409, 422, 429
5xx Server ErrorDer Server hat eine gültige Anfrage nicht verarbeitet500, 502, 503, 504

Wichtige HTTP-Statuscodes, die du kennen solltest

200 OK vs 201 Created vs 204 No Content

200 OK

Der Standard-Code für „alles hat geklappt“ — mit Body.

201 Created

Durch die Anfrage wurde eine neue Ressource angelegt — typischerweise nach einem POST.

204 No Content

Erfolg, aber ohne Body. Üblich nach DELETE- oder PUT-Aufrufen, bei denen es nichts zurückzugeben gibt.

Alle drei sind Erfolgs-Codes — der Unterschied liegt darin, was die Antwort transportiert. 201 sollte einen Location-Header enthalten, der auf die neue Ressource zeigt; 204 ist per Definition leer.

301 Moved Permanently vs 302 Found

301

Dauerhafte Weiterleitung. Browser und Suchmaschinen merken sich das; die alte URL ist faktisch tot.

302

Temporäre Weiterleitung. Browser fragen die ursprüngliche URL bei jedem Request neu ab; Bookmarks bleiben auf der alten URL.

Nimm 301, wenn du eine Ressource tatsächlich umgezogen hast (Rebranding, URL-Umstrukturierung). Nimm 302 für kurzlebige Weiterleitungen wie A/B-Tests, Login-Redirects oder Wartungsseiten.

401 Unauthorized vs 403 Forbidden

401

Du bist nicht authentifiziert. Der Server weiß nicht, wer du bist.

403

Der Server weiß, wer du bist, aber du hast keine Berechtigung für diese Ressource.

Wenn andere Credentials das Problem lösen könnten, gib 401 zurück. Wenn keine Credentials etwas ändern würden (die Ressource ist für diesen User schlicht tabu), gib 403 zurück.

500 vs 502 vs 503 vs 504

500

Allgemeiner Server-Fehler — dein Code hat eine Exception geworfen, die niemand abgefangen hat.

502

Bad Gateway — ein vorgeschalteter Proxy (CDN, Load Balancer) konnte den Upstream-Server nicht erreichen.

503

Service Unavailable — der Server läuft, ist aber überlastet oder im Wartungsmodus.

504

Gateway Timeout — ein Proxy hat den Upstream zwar erreicht, aber keine rechtzeitige Antwort bekommen.

Alle vier sind Server-Fehler, erzählen beim Debuggen aber sehr unterschiedliche Geschichten. 500 zeigt auf deine App; 502 und 504 zeigen auf den Netzwerkpfad; 503 zeigt auf die Kapazität.

Häufige Fehler bei HTTP-Statuscodes

  • 200 OK mit {"error": "..."} im Body zurückgeben. Der Statuscode ist Teil des Vertrags — nimm den richtigen (400, 404, 500), damit Clients sich darauf verlassen können.
  • 401 für Berechtigungsfehler verwenden. 401 ist für die Authentifizierung; verweigerte Berechtigungen sind 403.
  • 200 für neu angelegte Ressourcen statt 201 mit Location-Header.

FAQ zu HTTP-Statuscodes

Was bedeutet HTTP 404?
404 Not Found heißt: Der Server hat die Anfrage verstanden, aber unter dieser URL gibt es keine Ressource. Meist ist der Pfad falsch, die Ressource wurde gelöscht oder die URL ist vertippt.
Was ist der Unterschied zwischen 401 und 403?
401 Unauthorized heißt: Du bist nicht authentifiziert — der Server weiß nicht, wer du bist. 403 Forbidden heißt: Du bist zwar authentifiziert, hast aber keine Berechtigung für die Ressource. Andere Credentials können 401 lösen; bei 403 helfen sie nicht.
Was ist der Unterschied zwischen 301 und 302?
301 Moved Permanently ist eine dauerhafte Weiterleitung — Browser und Suchmaschinen aktualisieren ihre Einträge. 302 Found ist eine temporäre Weiterleitung — Clients rufen weiterhin die ursprüngliche URL auf. Nimm 301 für endgültige Umzüge, 302 für vorübergehende Umwege.
Was bedeutet HTTP 500?
500 Internal Server Error ist ein allgemeiner serverseitiger Fehler, der meist geworfen wird, wenn eine Exception nach oben durchschlägt, ohne abgefangen zu werden. Der Client hat nichts falsch gemacht — dein Server hat eine gültige Anfrage nicht verarbeitet.
Sollte ich immer einen spezifischen Statuscode verwenden?
Ja. Generisches 200 OK für Fehler oder 500 für alles, was schiefläuft, macht APIs unbrauchbar. Wähle den spezifischsten passenden Code — Clients, Proxies, Monitoring und Retry-Logik richten sich alle nach dem Statuscode.
Was bedeutet HTTP 429?
429 Too Many Requests wird gesendet, wenn ein Client ein Rate-Limit erreicht hat. Die Antwort sollte einen Retry-After-Header enthalten, der dem Client sagt, wann er es wieder versuchen darf.

Mehr erfahren

Weitere Entwickler-Tools

Lerne mit Coddy zu programmieren

LOS GEHT'S