HTTP-Statuscodes
Die Codes, die du bei APIs und CDNs am häufigsten siehst. Seltene Experimente fehlen.
| Code | Name | Bedeutung |
|---|---|---|
| 200 | OK | Erfolg mit Inhalt |
| 201 | Erstellt | Ressource erstellt |
| 204 | Kein Inhalt | Erfolg, leerer Inhalt |
| 301 | Dauerhaft verschoben | Permanente Weiterleitung |
| 302 | Gefunden | Vorübergehende Weiterleitung |
| 304 | Nicht geändert | Zwischengespeicherte Kopie nutzen |
| 400 | Ungültige Anfrage | Clientanfrage ungültig |
| 401 | Nicht autorisiert | Auth erforderlich oder fehlgeschlagen |
| 403 | Verboten | Authentifiziert, aber abgelehnt |
| 404 | Nicht gefunden | Ressource existiert nicht |
| 405 | Methode nicht erlaubt | Falsche HTTP-Methode |
| 408 | Zeitüberschreitung | Client zu langsam |
| 409 | Konflikt | Zustandskonflikt |
| 410 | Verschwunden | Dauerhaft entfernt |
| 422 | Nicht verarbeitbare Entität | Semantik ungültig |
| 429 | Zu viele Anfragen | Ratenlimitiert |
| 500 | Interner Serverfehler | Serverfehler |
| 502 | Falsches Gateway | Upstream-Antwort ungültig |
| 503 | Dienst nicht verfügbar | Überlastet oder ausgefallen |
| 504 | Gateway-Zeitüberschreitung | Upstream-Zeitüberschreitung |
Hinweise
- 401 vs 403: fehlende/fehlgeschlagene Anmeldung vs. angemeldet ohne Recht.
- Ein CDN kann 5xx liefern, wenn der Origin unerreichbar ist.
Die fünf Klassen der Statuscodes
Die erste Ziffer gibt an, wer verantwortlich ist und grob, was passiert ist. 1xx sind Informations-Codes und werden von Clients selten gesehen. 2xx bedeuten Erfolg — 200 OK mit einem Body, 204 No Content ohne einen, 206 für einen Teildownload. 3xx bedeuten, dass die Ressource woanders zu finden ist. 4xx bedeuten, dass die Anfrage selbst fehlerhaft ist: schlechte Syntax, fehlende Anmeldeinformationen oder ein Rate-Limit. 5xx bedeuten, dass der Server versagt hat, obwohl die Anfrage in Ordnung war. Bereits die erste Ziffer zu lesen, verrät Ihnen, ob Sie am Client etwas beheben oder die Serverseite eskalieren müssen.
Den richtigen Redirect wählen
301 und 308 bedeuten beide dauerhaft; 302 und 307 bedeuten beide temporär. Der Unterschied liegt in der Behandlung der Methode: 301 und 302 ließen Clients historisch eine POST-Anfrage in eine GET-Anfrage umwandeln, während 307 und 308 die ursprüngliche Methode und den Body beibehalten, was für APIs und Formularübermittlungen wichtig ist. Verwenden Sie 301 für eine URL, die tatsächlich dauerhaft verschoben wurde, und 302 oder 307 für temporäres Routing wie Wartungsseiten oder A/B-Tests. Achten Sie auf Ketten — jeder zusätzliche Hop kostet Latenz und Link-Rank, also leiten Sie direkt zum endgültigen Ziel weiter.
4xx-Fehler einorden
401 bedeutet, dass eine Authentifizierung fehlt oder fehlschlägt, also kann das Senden gültiger Anmeldeinformationen das Problem lösen; 403 bedeutet, dass die Anfrage verstanden und authentifiziert wurde, aber nicht erlaubt ist, und ein Wiederholen mit denselben Anmeldeinformationen hilft nicht. 404 bedeutet, dass die Ressource nicht existiert; 410 signalisiert, dass sie existierte, aber bewusst entfernt wurde. 429 bedeutet, dass Sie ein Rate-Limit erreicht haben und zurückfahren sollten, wobei Retry-After-Header zu beachten sind. 400 bedeutet normalerweise ungültige Eingaben, 405 bedeutet, dass die Methode für diese URL falsch ist, und 422 bedeutet, dass die Syntax gültig war, aber der Inhalt die Validierung nicht bestanden hat.
5xx-Codes lesen
500 ist ein generischer interner Fehler; 502 Bad Gateway bedeutet, dass ein Upstream-Server etwas Unbrauchbares zurückgegeben hat; 503 bedeutet, dass der Dienst temporär nicht verfügbar oder überlastet ist; 504 bedeutet, dass ein Upstream in einem Timeout gelaufen ist. Das sind Serverprobleme, nicht des Aufrufers, also ist die Lösung: Wiederholen mit Backoff, die Upstream-Gesundheit prüfen oder Last abbauen. Ein CDN kann 502, 503 oder 504 im Namen eines Origins ausgeben, den es nicht erreichen kann — deshalb kann derselbe Fehler aus zwei völlig unterschiedlichen Quellen stammen. Prüfen Sie die Server- und Cache-Status-Header, um herauszufinden, welcher Fall vorliegt.
Statuscodes in der Praxis: APIs und Caching
Zwei alltägliche Anwendungsfälle lohnen besondere Aufmerksamkeit. Erstens Caching: 200 mit einem Cache-Control-Header kann zwischengespeichert werden, 304 Not Modified teilt dem Client mit, seine lokale Kopie erneut zu verwenden, und ein 5xx sollte nicht zwischengespeichert werden. Zweitens APIs: Eine POST, die eine Ressource erstellt, sollte 201 mit einem Location-Header zurückgeben, DELETE gibt häufig 204 zurück, und ein PATCH, das nichts ändert, kann 200 oder 204 zurückgeben. Wohlverhalten Clients entscheiden zunächst nach der Klasse (2xx, 4xx, 5xx) und erst danach nach dem genauen Code, was Retry- und Backoff-Logik einfach und vorhersehbar hält.
Häufige Fragen
- Was bedeutet der HTTP-Statuscode 403?
- 403 Forbidden bedeutet, dass der Server die Anfrage verstanden und authentifiziert hat, aber den Zugriff verweigert. Anders als bei 401 hilft eine erneute Anmeldung nicht.
- Was ist der Unterschied zwischen den HTTP-Weiterleitungen 301 und 302?
- 301 bedeutet einen dauerhaften Umzug: Clients und Suchmaschinen sollen künftig die neue URL verwenden. 302 ist eine temporäre Weiterleitung, die alte URL bleibt gültig.
- Was bedeutet HTTP 429 und wie behebt man es?
- 429 bedeutet, dass ein Ratenlimit erreicht wurde. Senden Sie Anfragen langsamer und beachten Sie den Retry-After-Header, falls vorhanden.