Codici di stato HTTP
Cerca per numero o per nome. Cosa significa ogni codice e quando usarlo.
- 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.
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.