Codici di stato HTTP

Il riferimento completo dei codici di stato di risposta HTTP: cosa significa ogni codice, quando i server lo inviano e come reagire — per il debug delle richieste, la documentazione delle API e l'analisi dei log del server.

Usa i link di scorrimento rapido per spostarti tra le classi di risposta, oppure apri le guide dettagliate per i codici più comuni.

Tabella dei codici di risposta HTTP

Code Nome Significato
1xx Informativi
100 Continue Il server ha ricevuto gli header della richiesta e il client dovrebbe inviare il corpo della richiesta.
101 Switching Protocols Il server accetta di passare al protocollo richiesto nell'header Upgrade.
102 Processing Il server ha accettato la richiesta completa ma non l'ha ancora completata (WebDAV).
103 Early Hints Header preliminari, principalmente suggerimenti di preload Link, inviati prima della risposta finale.
2xx Successo
200 OK La richiesta è andata a buon fine e la risposta contiene la rappresentazione richiesta.
201 Created La richiesta è andata a buon fine ed è stata creata una nuova risorsa, di solito indicata in Location.
202 Accepted La richiesta è stata accettata per un'elaborazione asincrona non ancora terminata.
203 Non-Authoritative Information La risposta è stata modificata da un proxy di trasformazione lungo il percorso.
204 No Content La richiesta è andata a buon fine e non c'è intenzionalmente alcun corpo di risposta.
205 Reimposta Content La richiesta è andata a buon fine e il client dovrebbe reimpostare la visualizzazione del documento o del modulo.
206 Partial Content La risposta fornisce solo l'intervallo di byte richiesto con l'header Range.
3xx Reindirizzamento
300 Multiple Choices Esistono più rappresentazioni e il client dovrebbe sceglierne una.
301 Moved Permanently La risorsa ha un nuovo URL permanente e i link dovrebbero essere aggiornati.
302 Found La risorsa si trova temporaneamente a un URL diverso; continua a usare quello originale.
303 See Other Il risultato è disponibile a un altro URL e dovrebbe essere recuperato con GET.
304 Not Modified La copia in cache è ancora valida, quindi il corpo non viene inviato di nuovo.
307 Temporary Redirect Reindirizzamento temporaneo che deve mantenere il metodo HTTP e il corpo originali.
308 Permanent Redirect Reindirizzamento permanente che deve mantenere il metodo HTTP e il corpo originali.
4xx Errori del client
400 Bad Request Il server non può elaborare la richiesta perché è malformata.
401 Unauthorized Sono richieste credenziali di autenticazione valide, ma mancano o sono errate.
402 Payment Required Stato riservato, usato in pratica da alcune API per i limiti di fatturazione.
403 Forbidden Il server ha compreso la richiesta ma rifiuta di autorizzarla.
404 Not Found Non esiste alcuna risorsa all'URL richiesto.
405 Method Not Allowed L'URL esiste ma non supporta questo metodo HTTP.
406 Not Acceptable Nessuna rappresentazione corrisponde agli header di negoziazione Accept.
407 Proxy Authentication Required Il client deve prima autenticarsi con il proxy.
408 Request Timeout Il server ha chiuso la connessione perché la richiesta ha impiegato troppo tempo ad arrivare.
409 Conflict La richiesta è in conflitto con lo stato attuale della risorsa, ad esempio una collisione di modifiche.
410 Gone La risorsa è stata rimossa deliberatamente e non tornerà.
411 Length Required La richiesta deve includere un header Content-Length.
412 Precondition Failed Un header condizionale come If-Match è risultato falso.
413 Content Too Large Il corpo della richiesta supera la dimensione accettata dal server.
414 URI Too Long L'URL della richiesta è più lungo di quanto il server possa analizzare.
415 Unsupported Media Type Il formato del corpo della richiesta non è supportato per questa risorsa.
416 Range Not Satisfiable L'intervallo di byte richiesto è al di fuori della dimensione della risorsa.
417 Expectation Failed L'header di richiesta Expect non ha potuto essere soddisfatto.
418 I'm a teapot Uno stato da pesce d'aprile della RFC 2324; alcune API lo usano come easter egg.
421 Misdirected Request La richiesta ha raggiunto un server che non può produrre una risposta per questa autorità.
422 Unprocessable Content La richiesta è ben formata ma semanticamente non valida, comune nella validazione REST.
425 Too Early Il server rifiuta di elaborare una richiesta che potrebbe essere ripetuta (dati TLS early data).
426 Upgrade Required Il client deve passare a un protocollo diverso come indicato in Upgrade.
428 Precondition Required Il server richiede una richiesta condizionale per evitare aggiornamenti persi.
429 Too Many Requests Il client ha superato un limite di richieste; Retry-After suggerisce quando riprovare.
431 Request Header Fields Too Large Gli header, spesso i cookie, superano i limiti di dimensione del server.
451 Unavailable For Legal Reasons L'accesso è bloccato per motivi legali, come ordinanze del tribunale.
5xx Errori del server
500 Internal Server Error Il server ha riscontrato un errore imprevisto durante la gestione della richiesta.
501 Not Implemented Il server non riconosce o non supporta il metodo di richiesta.
502 Bad Gateway Un gateway o un proxy ha ricevuto una risposta non valida dal server upstream.
503 Service Unavailable Il server è temporaneamente incapace di rispondere, per sovraccarico o manutenzione.
504 Gateway Timeout Un gateway o un proxy ha smesso di aspettare il server upstream.
505 HTTP Version Not Supported Il server non supporta la versione del protocollo HTTP utilizzata.
506 Variant Also Negotiates Una configurazione errata della negoziazione dei contenuti sul server.
507 Insufficient Storage Il server non può archiviare ciò che serve per completare la richiesta (WebDAV).
508 Loop Detected Il server ha rilevato un ciclo infinito durante l'elaborazione (WebDAV).
510 Not Extended La richiesta necessita di ulteriori estensioni che non sono state fornite.
511 Network Authentication Required La rete (ad esempio un captive portal) richiede prima l'autenticazione.

1xx Informativi

Le risposte informative confermano che la richiesta è stata ricevuta e che il client può continuare. Sono provvisorie: segue sempre uno stato finale. Quella che incontrerai davvero è 103 Early Hints, che permette ai server di inviare suggerimenti di preload prima che la risposta completa sia pronta.

2xx Successo

Le risposte di successo indicano che la richiesta è stata compresa e accettata. 200 OK restituisce il risultato nel corpo, 201 Created annuncia una nuova risorsa e 204 No Content conferma il successo senza nulla da restituire, deliberatamente.

3xx Reindirizzamento

Le risposte di reindirizzamento indicano al client di andare altrove. La distinzione chiave è la permanenza — 301/308 sono permanenti, 302/307 temporanei — e se il metodo HTTP deve essere preservato (307/308) o può cambiare in GET (301/302). 304 Not Modified è il caso speciale che rende possibile la cache del browser.

4xx Errori del client

Gli errori del client indicano che la richiesta stessa è stata rifiutata. I più comuni: 400 richiesta malformata, 401 autenticazione richiesta, 403 accesso negato, 404 nulla a questo URL e 429 limite di richieste superato.

5xx Errori del server

Gli errori del server indicano che il server ha fallito su una richiesta che poteva essere perfettamente valida. 500 è un crash dell'applicazione, 502 e 504 sono proxy che segnalano un upstream rotto o silenzioso, e 503 è un'indisponibilità temporanea e deliberata.

Come leggere un codice di stato

La prima cifra indica la classe: 1xx informativo, 2xx successo, 3xx reindirizzamento, 4xx errore del client, 5xx errore del server. Un client che incontra un codice sconosciuto può tornare in sicurezza a trattarlo come il codice x00 della sua classe — è così che i nuovi codici restano compatibili con le versioni precedenti. Durante il debug, controlla sempre gli header di risposta accanto al codice: Location spiega i reindirizzamenti, Allow spiega il 405, Retry-After spiega il 429 e il 503.

Esempi

200 OK                    — page served normally
301 Moved Permanently     — URL changed for good, follow Location
304 Not Modified          — your cached copy is still valid
404 Not Found             — nothing exists at this URL
429 Too Many Requests     — rate limit hit, wait Retry-After seconds
503 Service Unavailable   — temporary downtime or maintenance

FAQ

Cos'è HTTP 404?

HTTP 404 significa che la risorsa richiesta non è stata trovata all'URL specificato. Consulta la guida dettagliata al 404 per cause, soluzioni e impatto SEO.

Qual è la differenza tra 301 e 302?

Un reindirizzamento 301 è permanente — i link e i motori di ricerca dovrebbero aggiornarsi al nuovo URL. Un 302 segnala uno spostamento temporaneo in cui l'URL originale resta quello canonico.

Cosa significa 503?

HTTP 503 significa che il servizio è temporaneamente non disponibile, di solito per manutenzione o sovraccarico, e il client dovrebbe riprovare dopo un ritardo.

Qual è la differenza tra 401 e 403?

401 significa che il server ha bisogno di credenziali di autenticazione valide. 403 significa che sa chi sei e rifiuta comunque l'accesso — effettuare di nuovo il login non aiuterà.

Qual è la differenza tra 502 e 504?

Entrambi provengono da un proxy che comunica con un server upstream: 502 significa che l'upstream ha restituito una risposta non valida, 504 significa che non ha risposto entro il timeout.

Quali codici di stato contano di più per la SEO?

200 contraddistingue le pagine indicizzabili, 301/308 trasferiscono il posizionamento in caso di spostamenti permanenti, 404/410 rimuovono gli URL morti e 503 protegge il posizionamento durante i fermi quando servito con Retry-After.