HTTP-Statuscodes verstehen
HTTP-Statuscodes sind dreistellige Zahlen, die der Server als Teil der Antwort zurücksendet, um den Client über den Ausgang der Anfrage zu informieren. Sie sind in fünf Kategorien eingeteilt, wobei jede Kategorie durch die erste Ziffer des Codes definiert wird.
Kategorien von Statuscodes
Abschnitt betitelt „Kategorien von Statuscodes“1xx: Informational (Informativ)
Abschnitt betitelt „1xx: Informational (Informativ)“Diese Codes zeigen an, dass die Anfrage vom Server empfangen wurde und der Prozess noch läuft.
| Code | Name | Beschreibung |
|---|---|---|
| 100 | Continue | Der Server hat den Anfrage-Header erhalten und erwartet nun den Body |
| 101 | Switching Protocols | Der Server wechselt das Protokoll (z.B. zu WebSockets) |
2xx: Success (Erfolg)
Abschnitt betitelt „2xx: Success (Erfolg)“Diese Codes zeigen an, dass die Anfrage erfolgreich empfangen, verstanden und akzeptiert wurde.
| Code | Name | Beschreibung | Typische Verwendung |
|---|---|---|---|
| 200 | OK | Die Anfrage war erfolgreich | GET, PUT, POST, DELETE erfolgreich |
| 201 | Created | Eine neue Ressource wurde erstellt | POST, das neue Ressourcen anlegt |
| 204 | No Content | Die Anfrage war erfolgreich, aber es gibt keine Inhalte zurückzusenden | DELETE, PUT ohne Rückgabedaten |
3xx: Redirection (Weiterleitung)
Abschnitt betitelt „3xx: Redirection (Weiterleitung)“Diese Codes zeigen an, dass der Client weitere Massnahmen ergreifen muss, um die Anfrage abzuschliessen.
| Code | Name | Beschreibung | Typische Verwendung |
|---|---|---|---|
| 301 | Moved Permanently | Die Ressource wurde dauerhaft an eine andere URL verschoben | Permanente URL-Änderungen |
| 302 | Found / Moved Temporarily | Die Ressource ist vorübergehend unter einer anderen URL zu finden | Temporäre Weiterleitungen |
| 304 | Not Modified | Die Ressource wurde seit der letzten Anfrage nicht geändert | Caching-Optimierung |
4xx: Client Error (Client-Fehler)
Abschnitt betitelt „4xx: Client Error (Client-Fehler)“Diese Codes zeigen an, dass die Anfrage vom Client einen Fehler enthält oder nicht bearbeitet werden kann.
| Code | Name | Beschreibung | Typische Verwendung |
|---|---|---|---|
| 400 | Bad Request | Die Anfrage ist fehlerhaft | Falsche Parameter oder Syntax |
| 401 | Unauthorized | Authentifizierung erforderlich | Fehlende/falsche Login-Daten |
| 403 | Forbidden | Zugriff verweigert | Keine Berechtigung trotz Authentifizierung |
| 404 | Not Found | Die angeforderte Ressource wurde nicht gefunden | URL existiert nicht |
| 409 | Conflict | Konflikt mit aktuellem Zustand der Ressource | Versionskonflikt bei Updates |
| 422 | Unprocessable Entity | Die Anfrage ist syntaktisch korrekt, kann aber semantisch nicht verarbeitet werden | Validierungsfehler |
5xx: Server Error (Server-Fehler)
Abschnitt betitelt „5xx: Server Error (Server-Fehler)“Diese Codes zeigen an, dass der Server bei der Bearbeitung einer ansonsten gültigen Anfrage einen Fehler erfahren hat.
| Code | Name | Beschreibung | Typische Verwendung |
|---|---|---|---|
| 500 | Internal Server Error | Ein unspezifischer Serverfehler ist aufgetreten | Unbehandelte Ausnahmen |
| 502 | Bad Gateway | Der Server fungierte als Gateway und erhielt eine ungültige Antwort | Probleme mit externen Diensten |
| 503 | Service Unavailable | Der Server ist vorübergehend nicht verfügbar | Überlastung oder Wartung |
| 504 | Gateway Timeout | Der Server fungierte als Gateway und erhielt keine rechtzeitige Antwort | Zeitüberschreitung bei externen Diensten |
Häufige Statuscodes in der Praxis
Abschnitt betitelt „Häufige Statuscodes in der Praxis“Erfolgreiche Anfragen
Abschnitt betitelt „Erfolgreiche Anfragen“- 200 OK: Standard-Erfolgsantwort
- 201 Created: Nach erfolgreicher Erstellung einer Ressource
- 204 No Content: Erfolg ohne Rückgabedaten (z.B. nach Löschen)
Clientseitige Fehler
Abschnitt betitelt „Clientseitige Fehler“- 400 Bad Request: Falsche Anfrageparameter oder Syntax
- 401 Unauthorized: Nicht authentifiziert
- 403 Forbidden: Keine Berechtigung
- 404 Not Found: Ressource existiert nicht
- 422 Unprocessable Entity: Validierungsfehler
Serverseitige Fehler
Abschnitt betitelt „Serverseitige Fehler“- 500 Internal Server Error: Allgemeiner Serverfehler
- 503 Service Unavailable: Server temporär nicht verfügbar
Statuscodes und HTTP-Methoden
Abschnitt betitelt „Statuscodes und HTTP-Methoden“Verschiedene HTTP-Methoden erwarten unterschiedliche Statuscodes:
| Methode | Erwartete Erfolgscodes | Typische Fehlercodes |
|---|---|---|
| GET | 200 | 404, 401, 403 |
| POST | 201, 200 | 400, 422, 409 |
| PUT | 200, 204 | 400, 404, 422 |
| DELETE | 204, 200 | 404, 403 |
Übung: Statuscodes mit JSONPlaceholder erkunden
Abschnitt betitelt „Übung: Statuscodes mit JSONPlaceholder erkunden“Zusammenfassung
Abschnitt betitelt „Zusammenfassung“HTTP-Statuscodes sind ein wesentlicher Bestandteil der Webkommunikation und ermöglichen eine standardisierte Fehlerbehandlung:
- 1xx: Informative Nachrichten (selten verwendet)
- 2xx: Erfolgreiche Operationen (200 OK, 201 Created, 204 No Content)
- 3xx: Weiterleitungen (301 Moved Permanently, 302 Found)
- 4xx: Client-Fehler (400 Bad Request, 401 Unauthorized, 404 Not Found)
- 5xx: Server-Fehler (500 Internal Server Error, 503 Service Unavailable)
Das Verständnis von Statuscodes hilft Ihnen, API-Kommunikation zu debuggen und angemessen auf verschiedene Situationen zu reagieren. Im nächsten Kapitel werden wir Postman ausführlicher behandeln, um API-Anfragen strukturiert zu testen und zu analysieren.