Vai al contenuto
SDETRole
SDETRole

Glossario · Testing delle API

Status code HTTP (codice di stato)

In inglese: HTTP status code

Detto anche: codici di stato HTTP, status code, codice di risposta, codici di risposta

Definizione

Il numero di tre cifre presente in ogni risposta HTTP che indica se la richiesta è riuscita, è stata reindirizzata o è fallita per colpa del client o del server.

Uno status code HTTP (codice di stato) è la risposta sintetica del server a una richiesta. La prima cifra indica la classe: 1xx informativa, 2xx successo, 3xx reindirizzamento, 4xx errore del client (la richiesta era sbagliata) e 5xx errore del server (la richiesta poteva anche essere corretta, ma il server ha fallito). Verificare lo status code esatto è di solito il primo controllo in qualsiasi test di API.

I codici che i tester usano di più

Codice Significato Uso tipico
200 OK Successo con un body GET, o un aggiornamento che restituisce la risorsa
201 Created È stata creata una risorsa POST, con un header Location
204 No Content Successo, nessun body DELETE, alcune PUT
301 / 302 / 304 Spostato, trovato altrove, non modificato Redirect e cache
400 Bad Request Richiesta malformata o non valida JSON rotto, tipi errati
401 Unauthorized Non autenticato Token mancante, scaduto o non valido
403 Forbidden Autenticato ma non autorizzato Utente valido, ruolo sbagliato
404 Not Found Risorsa inesistente Id sconosciuto, o per nascondere una risorsa vietata
409 Conflict In conflitto con lo stato attuale Email duplicata, conflitto di versione
422 Unprocessable Content Ben formata ma non supera la validazione Violazioni delle regole di business
429 Too Many Requests Rate limit superato Spesso con Retry-After
500 / 502 / 503 / 504 Errore del server, bad gateway, non disponibile, timeout del gateway Bug e infrastruttura

401 e 403 a confronto

Nonostante il nome, 401 Unauthorized riguarda l’autenticazione: il server non sa chi sei. La soluzione è effettuare il login o inviare un token valido, e la risposta dovrebbe includere un header WWW-Authenticate. 403 Forbidden riguarda l’autorizzazione: il server sa chi sei e non ti è permesso fare quella cosa. Rifare il login non serve. Una suite di test dovrebbe coprire entrambi i casi: nessun token, un token scaduto e un token valido per un utente senza i permessi corretti.

Errori comuni

  • Controllare solo il 200. La maggior parte dei difetti si trova nei percorsi di errore. Un input non valido dovrebbe ricevere un 4xx; un 500 indica un input non gestito e merita una segnalazione di bug.
  • Errori con status 200. Un messaggio di errore nel body di un 200 manda in tilt client e monitoraggio.
  • Convenzioni incoerenti. Alcune API usano 400 per tutti gli input errati, altre riservano 422 agli errori di validazione. Vanno bene entrambe; il bug è mescolarle all’interno della stessa API.

Scrivi per cercare in tutto SDETRole.

Ricerca full-text con Pagefind · funziona nel tuo browser Apri la pagina di ricerca →