Zum Inhalt springen
SDETRole
SDETRole

Glossar · API-Testing

HTTP-Statuscode

Englisch: HTTP status code

Auch genannt: HTTP-Statuscodes, Statuscode, Statuscodes, Response Code

Definition

Die dreistellige Zahl in jeder HTTP-Response, die angibt, ob der Request erfolgreich war, umgeleitet wurde oder an Client oder Server gescheitert ist.

Ein HTTP-Statuscode ist die kurze Antwort des Servers auf einen Request. Die erste Ziffer gibt die Klasse an: 1xx informativ, 2xx Erfolg, 3xx Umleitung, 4xx Client-Fehler (der Request war falsch) und 5xx Server-Fehler (der Request war womöglich in Ordnung, aber der Server hat versagt). Den exakten Statuscode zu prüfen, ist in jedem API-Test meist die erste Assertion.

Die Codes, die Tester am häufigsten brauchen

Code Bedeutung Typischer Einsatz
200 OK Erfolg mit Body GET oder ein Update, das die Ressource zurückgibt
201 Created Eine Ressource wurde angelegt POST, mit Location-Header
204 No Content Erfolg, kein Body DELETE, manche PUTs
301 / 302 / 304 Verschoben, anderswo gefunden, nicht geändert Redirects und Caching
400 Bad Request Fehlerhafter oder ungültiger Request Kaputtes JSON, falsche Typen
401 Unauthorized Nicht authentifiziert Fehlendes, abgelaufenes oder ungültiges Token
403 Forbidden Authentifiziert, aber nicht berechtigt Gültiger Nutzer, falsche Rolle
404 Not Found Ressource existiert nicht Unbekannte ID oder Verbergen einer verbotenen Ressource
409 Conflict Kollidiert mit dem aktuellen Zustand Doppelte E-Mail, Versionskonflikt
422 Unprocessable Content Formal korrekt, aber Validierung schlägt fehl Verstöße gegen Geschäftsregeln
429 Too Many Requests Rate Limit überschritten Oft mit Retry-After
500 / 502 / 503 / 504 Serverfehler, Bad Gateway, nicht verfügbar, Gateway-Timeout Bugs und Infrastruktur

401 vs. 403

Trotz seines Namens geht es bei 401 Unauthorized um Authentifizierung: Der Server weiß nicht, wer Sie sind. Abhilfe schafft ein Login oder ein gültiges Token, und die Response sollte einen WWW-Authenticate-Header enthalten. Bei 403 Forbidden geht es um Autorisierung: Der Server weiß, wer Sie sind, und Sie dürfen das nicht. Ein erneuter Login hilft nicht. Eine Testsuite sollte beides abdecken: kein Token, ein abgelaufenes Token und ein gültiges Token für einen Nutzer ohne die passende Berechtigung.

Häufige Fehler

  • Nur auf 200 prüfen. Die meisten Fehler stecken in den Fehlerpfaden. Ungültige Eingaben sollten ein 4xx liefern; ein 500 bedeutet unbehandelte Eingaben und ist einen Bugreport wert.
  • Fehler mit Status 200. Eine Fehlermeldung in einem 200-Body bricht Clients und Monitoring.
  • Uneinheitliche Konventionen. Manche APIs verwenden 400 für alle ungültigen Eingaben, andere reservieren 422 für Validierungsfehler. Beides ist in Ordnung; beides innerhalb einer API zu mischen, ist der Bug.

Tippen Sie, um SDETRole zu durchsuchen.

Volltextsuche mit Pagefind · läuft in Ihrem Browser Suchseite öffnen →