Cosa significano i codici di stato HTTP
Aggiornato 2026-07-06
Ogni volta che il tuo browser carica una pagina o un'app chiama un'API, il server risponde con un codice di stato a tre cifre. Il più delle volte non lo vedi mai, ma quando qualcosa si rompe — un 404, un 500 — quel numero è il primo indizio. Questa guida ti insegna a leggere i codici di stato a colpo d'occhio.
Leggi la prima cifra
Il trucco è che la prima cifra ti dice la categoria, così puoi capire l'intento di un codice mai visto:
- 1xx — Informational: ricevuto, ancora in elaborazione (raro nell'uso quotidiano).
- 2xx — Success: ha funzionato.
- 3xx — Redirection: la risorsa è altrove.
- 4xx — Client error: la richiesta era sbagliata (lato tuo).
- 5xx — Server error: la richiesta andava bene, il server ha fallito.
Quella divisione 4xx contro 5xx è la distinzione più utile nel debug: 4xx significa correggi la richiesta; 5xx significa che la colpa è del server.
I codici che incontrerai davvero
Successo e reindirizzamenti
- 200 OK — la risposta standard «ha funzionato».
- 201 Created — una nuova risorsa è stata creata (dopo un POST).
- 301 Moved Permanently — questo URL si è spostato in modo permanente; aggiorna i tuoi link. Importante per la SEO.
- 302 Found — un reindirizzamento temporaneo; continua a usare l'URL originale.
- 304 Not Modified — la tua copia in cache è ancora valida, quindi non è stato rinviato nulla.
Errori del client (4xx)
- 400 Bad Request — la richiesta era malformata.
- 401 Unauthorized — devi autenticarti (accedere).
- 403 Forbidden — sei autenticato ma non autorizzato.
- 404 Not Found — la risorsa non esiste.
- 429 Too Many Requests — sei soggetto a rate limit; rallenta.
Errori del server (5xx)
- 500 Internal Server Error — un guasto generico lato server.
- 502 Bad Gateway — un server a monte ha restituito una risposta errata.
- 503 Service Unavailable — il server è sovraccarico o offline per manutenzione.
- 504 Gateway Timeout — un server a monte non ha risposto in tempo.
401 vs. 403: una confusione comune
Questi due sembrano simili ma differiscono di una parola. 401 Unauthorized in realtà significa «non autenticato» — il server non sa chi sei, quindi accedi. 403 Forbidden significa che il server sa chi sei e non sei comunque autorizzato. Uno riguarda l'identità, l'altro il permesso.
L'elenco completo
Per ogni codice registrato con il suo significato — ricercabile e raggruppato per classe — vedi il nostro riferimento completo dei codici di stato HTTP. Se stai facendo il debug delle risposte API, le nostre guide su JWT e codifica URL trattano altre due cose in cui ti imbatterai di continuo.
Altro su Web & sviluppatori
Vedi tutte le guide di Web & sviluppatori →Strumenti citati in questa guida