nicetool.dev logo

Codici di stato HTTP

Cerca per numero o nome, oppure filtra per classe. Ogni codice rimanda alla sua specifica.

1xx Informativi

La richiesta è stata ricevuta e l'elaborazione continua. Raro nel codice applicativo.

100

Continue

Il server ha ricevuto le intestazioni e il client può inviare il corpo. Si usa con "Expect: 100-continue" prima di upload grandi.

RFC 9110
101

Switching Protocols

Il server accetta di cambiare protocollo come richiesto, ad esempio da HTTP/1.1 a WebSocket.

RFC 9110
102

Processing

WebDAV: il server ha accettato la richiesta e ci sta ancora lavorando, quindi il client non deve andare in timeout.

RFC 2518
103

Early Hints

Invia presto intestazioni Link così il browser precarica CSS o font mentre il server prepara la risposta finale.

RFC 8297

2xx Successo

La richiesta è stata ricevuta, compresa e accettata.

200

OK

La richiesta è riuscita. Il corpo contiene la risorsa richiesta o il risultato dell'azione.

RFC 9110
201

Created

È stata creata una nuova risorsa, di solito dopo una POST. L'intestazione Location dovrebbe puntarvi.

RFC 9110
202

Accepted

La richiesta è stata accettata ma non è ancora conclusa, ad esempio un job in coda.

RFC 9110
203

Non-Authoritative Information

Risposta riuscita ma modificata da un proxy di trasformazione, quindi non è esattamente quella dell'origine.

RFC 9110
204

No Content

Successo senza corpo da restituire. Comune per DELETE o per salvare un modulo senza ricaricare la pagina.

RFC 9110
205

Reset Content

Successo; il client dovrebbe azzerare il modulo o la vista che ha inviato la richiesta.

RFC 9110
206

Partial Content

Viene restituita solo una parte della risorsa, come richiesto da Range. Usato per download ripresi e per spostarsi nei video.

RFC 9110
207

Multi-Status

WebDAV: il corpo contiene più codici di stato per più operazioni.

RFC 4918
208

Already Reported

WebDAV: i membri già elencati prima nella risposta non vengono ripetuti.

RFC 5842
226

IM Used

Il server ha applicato una codifica delta alla risposta. Usato molto raramente.

RFC 3229

3xx Reindirizzamento

Serve un'altra azione, di solito seguire un altro URL, per completare la richiesta.

300

Multiple Choices

Esistono più rappresentazioni (ad esempio lingue o formati) e il client deve sceglierne una.

RFC 9110
301

Moved Permanently

La risorsa ha un nuovo URL permanente, indicato in Location. I motori trasferiscono il posizionamento.

RFC 9110
302

Found

La risorsa è temporaneamente a un altro URL. I client continuano a usare l'originale; i browser possono trasformare una POST in GET.

RFC 9110
303

See Other

Il risultato si trova a un altro URL tramite GET. Usato dopo la POST di un modulo per evitare reinvii (Post/Redirect/Get).

RFC 9110
304

Not Modified

La copia in cache è ancora valida (If-None-Match o If-Modified-Since corrispondono), quindi non viene inviato il corpo.

RFC 9110
307

Temporary Redirect

Reindirizzamento temporaneo che mantiene metodo e corpo: una POST resta POST.

RFC 9110
308

Permanent Redirect

Reindirizzamento permanente che mantiene metodo e corpo. La versione rigorosa del 301.

RFC 9110

4xx Errore del client

La richiesta è errata: sintassi sbagliata, autenticazione mancante, nessun permesso o risorsa inesistente.

400

Bad Request

Il server non può elaborare la richiesta perché è malformata: sintassi errata, JSON rotto o parametri sbagliati.

RFC 9110
401

Unauthorized

L'autenticazione manca o non è valida. La risposta include WWW-Authenticate con il metodo di accesso.

RFC 9110
402

Payment Required

Riservato a futuri sistemi di pagamento digitale; alcune API lo usano quando va pagato un abbonamento o una quota.

RFC 9110
403

Forbidden

Il server sa chi sei ma rifiuta l'azione perché non hai i permessi. Rifare l'accesso non aiuta.

RFC 9110
404

Not Found

La risorsa non esiste, oppure il server non vuole rivelare che esiste.

RFC 9110
405

Method Not Allowed

Il metodo HTTP non è supportato per questo URL, ad esempio POST su una risorsa di sola lettura. Allow elenca i metodi validi.

RFC 9110
406

Not Acceptable

Il server non può produrre una risposta compatibile con le intestazioni Accept (tipo, lingua o codifica).

RFC 9110
407

Proxy Authentication Required

Come il 401, ma il client deve prima autenticarsi presso il proxy.

RFC 9110
408

Request Timeout

Il server ha aspettato troppo che il client finisse di inviare la richiesta e ha chiuso la connessione.

RFC 9110
409

Conflict

La richiesta è in conflitto con lo stato attuale, ad esempio modifiche concorrenti o chiave univoca duplicata.

RFC 9110
410

Gone

La risorsa è stata eliminata di proposito e non tornerà. I motori la rimuovono prima che con un 404.

RFC 9110
411

Length Required

Il server richiede l'intestazione Content-Length per questa richiesta.

RFC 9110
412

Precondition Failed

Un'intestazione condizionale come If-Match non corrisponde; si usa spesso per non sovrascrivere modifiche altrui.

RFC 9110
413

Content Too Large

Il corpo della richiesta supera la dimensione consentita (prima "Payload Too Large").

RFC 9110
414

URI Too Long

L'URL è più lungo di quanto il server accetti, spesso per troppi dati nella query string di una GET.

RFC 9110
415

Unsupported Media Type

Il formato del corpo (Content-Type) non è supportato, ad esempio XML inviato a una API solo JSON.

RFC 9110
416

Range Not Satisfiable

L'intestazione Range chiede una parte del file che non esiste.

RFC 9110
417

Expectation Failed

Il server non può soddisfare quanto richiesto nell'intestazione Expect.

RFC 9110
418

I'm a teapot

Uno scherzo del primo aprile dal protocollo di controllo delle caffettiere: una teiera non può fare il caffè. Alcuni siti lo usano come easter egg.

RFC 2324
421

Misdirected Request

La richiesta è arrivata a un server che non può rispondere per questo host, ad esempio quando una connessione HTTP/2 riutilizzata punta all'origine sbagliata.

RFC 9110
422

Unprocessable Content

La sintassi è corretta ma il contenuto non è valido, ad esempio regole di validazione non rispettate (prima "Unprocessable Entity").

RFC 9110
423

Locked

WebDAV: la risorsa è bloccata.

RFC 4918
424

Failed Dependency

WebDAV: la richiesta è fallita perché dipendeva da un'altra richiesta fallita.

RFC 4918
425

Too Early

Il server non elabora una richiesta che potrebbe essere riprodotta, come gli early data di TLS 1.3.

RFC 8470
426

Upgrade Required

Il client deve passare a un altro protocollo, indicato nell'intestazione Upgrade.

RFC 9110
428

Precondition Required

Il server richiede richieste condizionali (If-Match) per evitare aggiornamenti persi.

RFC 6585
429

Too Many Requests

Il client ha inviato troppe richieste in poco tempo (rate limiting). Retry-After indica quando riprovare.

RFC 6585
431

Request Header Fields Too Large

Le intestazioni sono troppo grandi nel complesso o una lo è, spesso per cookie enormi.

RFC 6585
451

Unavailable For Legal Reasons

La risorsa è bloccata per motivi legali, come censura o ordine di un tribunale. Il numero richiama "Fahrenheit 451".

RFC 7725

5xx Errore del server

La richiesta sembrava valida ma il server non è riuscito a gestirla.

500

Internal Server Error

Errore generico: qualcosa di inatteso è andato storto sul server. Controlla i log del server.

RFC 9110
501

Not Implemented

Il server non supporta la funzione o il metodo necessari per soddisfare la richiesta.

RFC 9110
502

Bad Gateway

Un gateway o proxy ha ricevuto una risposta non valida dal server a monte, ad esempio quando l'app dietro Nginx si è bloccata.

RFC 9110
503

Service Unavailable

Il server non può gestire richieste per sovraccarico o manutenzione. Retry-After può indicare quando tornare.

RFC 9110
504

Gateway Timeout

Un gateway o proxy non ha ricevuto in tempo una risposta dal server a monte.

RFC 9110
505

HTTP Version Not Supported

Il server non supporta la versione di HTTP usata nella richiesta.

RFC 9110
506

Variant Also Negotiates

Negoziazione dei contenuti configurata male: la variante scelta tenta a sua volta di negoziare.

RFC 2295
507

Insufficient Storage

WebDAV: il server non può memorizzare i dati necessari a completare la richiesta.

RFC 4918
508

Loop Detected

WebDAV: il server ha rilevato un ciclo infinito durante l'elaborazione.

RFC 5842
510

Not Extended

Servono ulteriori estensioni alla richiesta. Obsoleto e praticamente inutilizzato.

RFC 2774
511

Network Authentication Required

Il client deve prima accedere alla rete, tipicamente il captive portal del Wi-Fi di un hotel o aeroporto.

RFC 6585

Cosa sono i codici di stato HTTP?

Ogni risposta HTTP inizia con un codice di tre cifre che dice al client com'è andata la richiesta. La prima cifra indica la classe: 1xx informativi, 2xx successo, 3xx reindirizzamento, 4xx errori del client e 5xx errori del server. Browser, motori di ricerca, cache, client API e strumenti di monitoraggio agiscono in base a questi codici, quindi scegliere quello giusto conta: un 301 trasferisce il valore SEO al nuovo URL mentre un 302 no, un 503 chiede ai crawler di tornare più tardi e un 429 chiede ai client API di rallentare. I codici sono definiti soprattutto nella RFC 9110 (HTTP Semantics), alcuni in RFC dedicate.

Funzionalità

  • • Tutti i 61 codici registrati presso IANA, da 100 a 511
  • • Spiegazione chiara del significato di ogni codice e di quando usarlo
  • • Ricerca istantanea per numero, nome o parola chiave e filtri per classe
  • • Link diretti alla sezione della RFC che definisce ogni codice
  • • Colori per classe e ancore #codice per condividere i link

Veloce e offline

L'intero riferimento è già nella pagina, quindi la ricerca funziona all'istante nel browser senza richieste al server.

Riferimento ricercabile, nessun tracciamento.

Come usare: Codici di stato HTTP

  1. 1

    Scrivi un numero come 404, un nome come "gateway" o una parola come "redirect" nella ricerca. I risultati si aggiornano mentre digiti.

  2. 2

    Usa i pulsanti di classe (da 1xx a 5xx) per restringere la lista, ad esempio per rivedere tutti gli errori del client insieme.

  3. 3

    Leggi la spiegazione di ogni codice: cosa significa, quando un server dovrebbe inviarlo e come reagiscono i client.

  4. 4

    Apri il link alla RFC per la specifica esatta o condividi un codice con un'ancora come #429.

Esempi pratici

Progettare una API REST

Restituisci 201 Created con intestazione Location dopo una POST, 204 No Content dopo una DELETE, 400 per JSON malformato, 422 per errori di validazione e 409 quando la richiesta è in conflitto con lo stato attuale.

Spostare pagine senza perdere SEO

Usa 301 o 308 per spostamenti permanenti, così i motori trasferiscono il posizionamento, e 302 o 307 per reindirizzamenti temporanei come i test A/B. 308 e 307 mantengono anche POST come POST.

Errori di autenticazione

Invia 401 quando l'utente non ha effettuato l'accesso o il token non è valido, e 403 quando l'utente è noto ma non autorizzato. Molte API restituiscono 404 invece di 403 per nascondere che la risorsa esiste.

Manutenzione e sovraccarico

Restituisci 503 con l'intestazione Retry-After durante la manutenzione, così i crawler conservano il posizionamento, e 429 con Retry-After quando un client supera il limite di richieste.

Domande frequenti

Che differenza c'è tra 401 e 403?+

401 Unauthorized significa "chi sei?": l'autenticazione manca o è fallita. 403 Forbidden significa "so chi sei, ma non puoi farlo". Rifare l'accesso risolve un 401, non un 403.

301 o 302 per i reindirizzamenti?+

Usa 301 (o 308) quando il vecchio URL sparisce per sempre e 302 (o 307) quando tornerà. Usare 302 per uno spostamento permanente può ritardare l'indicizzazione del nuovo URL.

Che differenza c'è tra 502, 503 e 504?+

502 Bad Gateway: un proxy ha ricevuto una risposta non valida dal server a monte. 503 Service Unavailable: il server è sovraccarico o in manutenzione. 504 Gateway Timeout: il server a monte non ha risposto in tempo.

Gli errori possono restituire 200 con un messaggio?+

No. Client, cache e monitoraggio si basano sul codice di stato. Restituire 200 per i fallimenti nasconde gli errori agli strumenti e può far indicizzare pagine di errore come "soft 404".