Strumento per sviluppatori

Codici di stato HTTP

Cerca per numero o per nome. Cosa significa ogni codice e quando usarlo.

Codici di stato HTTP Funziona sul tuo dispositivo
  • Funziona nel tuo browser — il tuo testo non viene mai inviato da nessuna parte
  • Nessuna registrazione, nessuna quota, gratis da usare quante volte vuoi

Come funziona

La maggior parte dei codici di stato è ovvia e alcuni sono davvero confusi — in particolare quelli che suonano simili. Digita un numero, una parola come forbidden, o 4xx per vedere un'intera classe.

401 e 403, la coppia che tutti confondono

401 Unauthorized in realtà significa non autenticato: il server non sa chi sei, e inviare le credenziali potrebbe risolvere. 403 Forbidden significa che sa esattamente chi sei e comunque non ti è permesso. I nomi sono storici e poco utili; la distinzione conta perché uno invita ad accedere e l'altro no.

301 contro 302, e perché conta per la SEO

301 è permanente e trasferisce i segnali di posizionamento al nuovo indirizzo. 302 è temporaneo e li lascia su quello originale. Usare 302 per uno spostamento permanente è un errore comune e silenziosamente costoso. 307 e 308 sono gli equivalenti moderni che in più garantiscono che il metodo non cambi — un POST resta un POST, cosa che storicamente 301 e 302 non facevano.

422 per la validazione

400 Bad Request significa che il server non ha compreso affatto la richiesta. 422 Unprocessable Content significa che l'ha compresa perfettamente e che il contenuto è sbagliato — un campo mancante, un'email non valida. La maggior parte delle API dovrebbe restituire 422 per gli errori di validazione e invece restituisce 400 per abitudine.

Le classi

1xx informativi, 2xx successo, 3xx reindirizzamento, 4xx colpa del client, 5xx colpa del server. Quest'ultima distinzione è quella a cui ricorrere per attribuire le responsabilità durante un incidente: un picco di 4xx significa che chi chiama sta sbagliando qualcosa, un picco di 5xx significa che stai sbagliando tu.

418

I'm a teapot, nato da uno scherzo del pesce d'aprile del 1998, poi standardizzato sul serio dopo che un tentativo di rimuoverlo dalle implementazioni provocò una protesta. Non è pensato per un uso reale, ed è una parte autentica della specifica.

FAQ

Codici di stato HTTP — domande

Qual è la differenza tra 401 e 403?

401 significa non autenticato — il server non sa chi sei. 403 significa che lo sa e comunque non ti è permesso.

Devo usare 301 o 302?

301 per uno spostamento permanente, che trasferisce il posizionamento. 302 per uno temporaneo. Usa 308 e 307 se il metodo HTTP non deve cambiare.

Quale codice deve restituire un errore di validazione?

422 Unprocessable Content. 400 significa che la richiesta non è stata compresa affatto.

Il 418 esiste davvero?

Sì. È nato come scherzo del pesce d'aprile del 1998 ed è davvero standardizzato, anche se non per un uso reale.

Cosa significa 502?

Un proxy ha ricevuto una risposta non valida dal server che ha dietro — di solito l'applicazione è ferma o va in crash.