HTTP Statusklassen 2xx und 4xx
Dieser Beitrag ist eine Begriffserklärung zu den wichtigsten 2xx- und 4xx-Statuscodes – inklusive Prüfungsfragen und Tags.
In a Nutshell
2xx signalisiert erfolgreiche Verarbeitung. 4xx kennzeichnet Clientfehler. Korrekte Codes verbessern Verständlichkeit, Caching, Idempotenz und robuste APIs.
Kompakte Fachbeschreibung
Typische 2xx:
200 OK(lesen/erfolgreich)201 Created+Location(Ressource erstellt)202 Accepted(asynchron gestartet)204 No Content(kein Body)
Typische 4xx:
400 Bad Request(syntaktisch/validierung)401 Unauthorized(fehlende Auth)403 Forbidden(keine Berechtigung)404 Not Found409 Conflict(Konflikt)422 Unprocessable Content(semantisch ungültig)429 Too Many Requests(Rate Limit) +Retry-After
Einheitliche Fehlerobjekte nach RFC 7807 (Problem Details) erleichtern Debugging und Doku.
Prüfungsrelevante Stichpunkte
- 201 immer mit
Location - 204 nur, wenn wirklich kein Body
- 202 + Status-Endpunkt (Location) für Async
- 401 vs 403 sauber trennen
- 409/412 bei Parallelität/ETag
- Keine sensiblen Details in Fehlern
- In OpenAPI pro Endpoint Statuscodes dokumentieren
Kernkomponenten
- 2xx: 200/201/202/204
- 4xx: 400/401/403/404/409/422/429
- Header: Location, Retry-After, ETag, Content-Type
- Bedingte Requests (If-Match)
- Problem Details (type/title/status/detail/instance)
- Tests (Negativtests/Contracttests)
Praxisbeispiel
POST /orders
→ 201 Created
Location: /orders/42
ETag: W/"7c9"
PUT /orders/42 (If-Match: W/"7c9")
→ 412 Precondition Failed bei Versionskonflikt
GET /orders/9999
→ 404 Not Found
Vorteile und Nachteile
Vorteile
- Klare Semantik
- Weniger Integrationsfehler
- Besseres Caching/Retry-Verhalten
Nachteile
- Falsche Codes verwirren
- Framework-Defaults führen zu Inkonistenzen
- Mehr Sorgfalt/Tests nötig
Typische Prüfungsfragen (mit Kurzantwort)
- Wann 201 und welcher Header?
Bei Erstellung;
Locationzeigt neue URI. - 200 vs 204? 200 mit Body, 204 ohne Body.
- 401 vs 403? 401 Auth fehlt/ungültig; 403 keine Rechte.
- Wann 422 statt 400? JSON syntaktisch ok, aber semantisch ungültig.
Freie Antwort
Lege pro Endpoint fest: zulässige Codes, wann sie auftreten, welche Header gesetzt werden und wie Fehlerobjekte aussehen. So sinkt Supportaufwand erheblich.
Lernstrategie
- Statuscodes einer öffentlichen API analysieren.
- Sequenzdiagramm für 202-Workflow skizzieren.
- Karteikarten (Code → Bedeutung → Header) üben.
- 200 nicht „für alles“ nutzen.
Wichtigste Quellen
- https://www.rfc-editor.org/rfc/rfc9110
- https://developer.mozilla.org/docs/Web/HTTP/Status
- https://www.rfc-editor.org/rfc/rfc7807