Ogni utente di Internet si trova prima o poi di fronte al messaggio“Errore 404 – questa pagina non esiste“. Si tratta di uno dei numerosi codici di stato HTTP con cui il server risponde alla richiesta del cliente. Questi codici sono costituiti da un numero di tre cifre e forniscono informazioni sul successo o sul fallimento di una richiesta. In questo articolo abbiamo riassunto per voi i principali codici di stato HTTP e il loro significato.
È la risposta di un server a una richiesta HTTP da parte di un client. Di solito si tratta di un browser web (ad esempio Chrome, Firefox o Opera).
La prima cifra dei codici a tre cifre indica la classe di stato (ad esempio, “Errore del server” o “Operazione riuscita”). Sono anche classificati in vari documenti RFC (“Request for Comments”).
Di solito il browser web non visualizza i codici di stato. Per osservarli, sono necessari strumenti speciali o estensioni del browser corrispondenti.
I più importanti codici di stato HTTP in sintesi
1xx: codici informativi
Codice |
Messaggio |
Versione HTTP |
Descrizione |
100 |
Continua |
1.1 |
La richiesta è stata accettata ma è ancora in fase di elaborazione. Il server è in attesa di ulteriori richieste da parte del client. |
101 |
Protocolli di commutazione |
1.1 |
Questo codice viene solitamente richiesto dal lato client e indica che il server accetta un cambio di protocollo (ad esempio, da HTTP a un altro protocollo). |
102 |
Elaborazione |
2.0 |
Utilizzato per evitare time-out mentre il server sta elaborando richieste ad alta intensità di tempo (ad esempio, come risultato di una richiesta WebDAV con più sotto-richieste). |
Buono a sapersi: WebDAV (Web-based Distributed Authoring and Versioning) è stato sviluppato per modificare documenti e file all’interno di una rete basata su HTTP.
2xx: Operazioni riuscite
Codice |
Messaggio |
Versione HTTP |
Descrizione |
200 |
OK |
1.0 / 1.1 |
La richiesta è andata a buon fine. Il risultato viene trasmesso insieme alla risposta. |
201 |
Creato |
1.0 / 1.1 |
Nel frattempo è stata creata e caricata una nuova risorsa. Il codice 201 viene tipicamente trasmesso come risposta del server a una richiesta cosiddetta PUT. |
202 |
Accettato |
1.0 / 1.1 |
La richiesta del client è stata accettata, ma verrà eseguita solo in seguito. |
203 |
Informazioni non autorevoli |
1.0 / 1.1 |
Il server assume il ruolo di un cosiddetto “proxy di trasformazione”. Riceve un codice 200 dalla fonte e successivamente consegna una versione modificata della risposta (dalla fonte). |
204 |
Nessun contenuto |
1.0 / 1.1 |
La richiesta è andata a buon fine, ma la risposta (deliberatamente) non contiene dati. Il vecchio contenuto dovrebbe comunque essere visualizzato dai client. |
205 |
Ripristino del contenuto |
1.1. |
La richiesta è andata a buon fine. Il client deve ricaricare il documento e reimpostare le voci del modulo. |
206 |
Contenuto parziale |
1.1. |
Se il client invia una richiesta cosiddetta “Range Header”, il server risponde con il codice 206 e informa della trasmissione di parti della risorsa richiesta. Un esempio tipico è il download interrotto e ripreso. |
207 |
Stato multiplo |
2.0. |
La risposta include un documento XML contenente più codici di stato per operazioni indipendenti. |
208 |
Già segnalato |
1.1 |
Il codice 208 è utilizzato all’interno di un binding WebDAV e indica che i membri del binding sono stati precedentemente enumerati e quindi non sono più presenti in questa risposta. |
226 |
IM Usato |
Il server ha soddisfatto una richiesta GET. La risposta contiene il risultato di una o più manipolazioni dell’istanza. |
3xx: Reindirizzamenti
Codice |
Messaggio |
Versione HTTP |
Descrizione |
300 |
Scelte multiple |
1.1 |
La risorsa richiesta è disponibile in più tipi. La risposta contiene un elenco delle possibili varianti. |
301 |
Spostato in modo permanente |
1.0 / 1.1 |
Il codice 301 (reindirizzamento) indica che la risorsa richiesta sarà disponibile in futuro all’indirizzo specificato nel campo di intestazione “Location”. Il vecchio indirizzo non è più valido. |
302 |
Trovato (spostato temporaneamente) |
1.0 / 1.1 |
Secondo il codice di stato 302, la risorsa è temporaneamente disponibile all’indirizzo specificato nell’intestazione. Tuttavia, il vecchio indirizzo rimane valido. |
303 |
Vedi altro |
1.1 |
La risposta del server può essere recuperata con un indirizzo URI diverso utilizzando il metodo GET. Ciò consente di passare senza problemi a una risorsa selezionata dopo una richiesta POST. |
304 |
Non modificato |
1.0 / 1.1 |
Il codice di stato 304 indica che il contenuto della risorsa richiesta non è stato modificato dall’ultima richiesta. Pertanto, la risposta non contiene dati. |
305 |
Usa Proxy |
1.1 |
La risorsa è accessibile solo tramite il proxy specificato nell’intestazione “Location”. |
306 |
(non utilizzato) |
1.1 |
Il codice di stato 306 è riservato ma non più utilizzato. Originariamente era utilizzato per la risposta “Switch Proxy”. |
307 |
Reindirizzamento temporaneo |
1.1 |
La risorsa richiesta è stata trovata ed è temporaneamente disponibile all’indirizzo specificato nel campo di intestazione “Location”. Tuttavia, il vecchio indirizzo rimane valido. Il browser deve seguire lo stesso metodo della richiesta originale. |
308 |
Reindirizzamento permanente |
La risorsa richiesta è stata trovata ed è temporaneamente disponibile all’indirizzo specificato nel campo dell’intestazione “Location”. Il vecchio indirizzo non è più valido. Le prossime interrogazioni del browser dovranno essere effettuate con lo stesso metodo della richiesta originale. |
4xx: Errore del client
Codice |
Messaggio |
Versione HTTP |
Descrizione |
400 |
Richiesta errata |
1.0 / 1.1 |
La richiesta era errata, pertanto non può essere elaborata dal server. |
401 |
Non autorizzato |
1.0 / 1.1 |
La richiesta non può essere elaborata senza un’autorizzazione appropriata. L’intestazione di risposta WWW_Authenticate spiega come eseguire l’autenticazione. |
402 |
Pagamento richiesto |
1.1 |
Pagamento richiesto. Il codice di stato è riservato per usi futuri. |
403 |
Vietato |
1.0 / 1.1 |
L’errore HTTP 403 indica che l’accesso al contenuto è permanentemente vietato a causa della mancanza di autorizzazione del client. La richiesta non deve essere ripetuta. |
404 |
Non trovato |
1.0 / 1.1 |
Il server non ha trovato la risorsa richiesta. Nella maggior parte dei casi, ciò è causato da un cosiddetto “link morto”. |
405 |
Metodo non consentito |
1.1 |
Il codice di stato 405 indica che il metodo di richiesta non è consentito e può essere effettuato solo con altri metodi (ad esempio GET o POST). |
406 |
Non accettabile |
1.1 |
Il codice di stato 406 indica che la risorsa richiesta non è stata consegnata nella forma richiesta dal client. |
407 |
Autenticazione proxy richiesta |
1.1 |
Simile al codice di stato 401, questa risposta richiede l’autenticazione. In questo caso, tuttavia, il client deve identificarsi a un proxy, che deve includere il campo di risposta Proxy Authenticate. |
408 |
Timeout della richiesta |
1.1 |
Il client non ha completato la richiesta nel tempo specificato dal server. L’errore HTTP 408 si verifica, ad esempio, quando si caricano file di grandi dimensioni. |
409 |
Conflitto |
1.1 |
La richiesta è stata effettuata con presupposti errati e non può essere elaborata, altrimenti si verificherebbe un conflitto presso la risorsa richiedente. Nel caso di una richiesta PUT, ciò può essere dovuto, ad esempio, a una modifica apportata nel frattempo alla risorsa da una terza parte. |
410 |
Gone |
1.1 |
La risorsa non esiste più ed è stata definitivamente rimossa. |
411 |
Lunghezza richiesta |
1.1 |
L’elaborazione della richiesta senza l’intestazione “Content-Length” viene rifiutata dal server. |
412 |
Condizione preliminare fallita |
1.1 |
Una condizione specificata dal client non può essere soddisfatta. |
413 |
Entità della richiesta troppo grande |
1.1 |
La richiesta era troppo grande per essere elaborata dal server e quindi è stata rifiutata. Ciò potrebbe essere causato da un file caricato, ad esempio. |
414 |
URI troppo lungo |
1.1 |
L’URL della richiesta è troppo lungo. |
415 |
Tipo di supporto non supportato |
1.1 |
Il tipo di supporto o MIME richiesto non è supportato. |
416 |
Intervallo richiesto non soddisfabile |
1.1 |
L’intervallo secondario richiesto della risorsa non esiste o non è valido. Si verifica, ad esempio, in caso di download parziale. |
417 |
Aspettativa fallita |
1.1 |
Utilizzato insieme a un campo di intestazione Expect. Il comportamento del server richiesto dal client nel campo di intestazione “Expect” non può essere soddisfatto. |
420 |
Politica non soddisfatta |
1.1 |
Proposta nel PEP del W3C (Working Draft 21 novembre 1997) per indicare che una condizione non è stata soddisfatta. |
421 |
Richiesta errata |
2.0 |
La richiesta è andata a un server che non è in grado di inviare una risposta. |
422 |
Entità non elaborabile |
1.1 |
Questo codice di stato viene utilizzato quando non sarebbe giustificata la restituzione del codice di stato 415 o 400, ma l’elaborazione della richiesta viene rifiutata (ad esempio, a causa di errori semantici). |
423 |
Bloccato |
1.1 |
La risorsa richiesta è attualmente bloccata. |
424 |
Dipendenza fallita |
1.1 |
La richiesta non può essere eseguita perché richiede una richiesta precedente per avere successo. |
426 |
Aggiornamento richiesto |
1.1 |
Il server insiste affinché il client ripeta la richiesta utilizzando un protocollo diverso. Un caso d’uso tipico è il passaggio a HTTP con Transport Layer Security. |
428 |
Condizione preliminare richiesta |
1.1 |
Le precondizioni necessarie per la richiesta non sono state tutte soddisfatte. |
429 |
Troppe richieste |
1.1 |
Il client ha effettuato troppe richieste in un determinato periodo di tempo. |
431 |
Campi dell’intestazione della richiesta troppo grandi |
1.1 |
È stata superata la lunghezza massima di un campo di intestazione o dell’intestazione totale. |
451 |
Non disponibile per motivi legali |
1.1 |
La risorsa non è disponibile per motivi legali (ad esempio a causa di copyright o censura in alcuni Paesi). Questo codice di stato è stato introdotto nel 2015 e prende il nome dal romanzo “Fahrenheit 451” di Ray Bradbury. |
Buono a sapersi: Con lo stato 418, esiste un altro codice nella categoria degli errori del client. Nell’ambito di un protocollo non del tutto serio per la preparazione del caffè (Hyper Text Coffee Pot Control Protocol), questo indica che è stata erroneamente utilizzata una teiera invece di una caffettiera. Tuttavia, il codice di stato non fa parte di HTTP né è definito nel SCR (“Status Code Registry”).
5xx: Errore del server
Codice |
Messaggio |
Versione HTTP |
Descrizione |
500 |
Errore interno del server |
1.0 / 1.1 |
Il codice di stato 500 viene visualizzato se la richiesta non può essere eseguita a causa di un errore interno (del server). |
501 |
Non implementato |
1.0 / 1.1 |
Il server non dispone delle funzionalità necessarie per elaborare la richiesta. La causa è spesso un metodo HTTP sconosciuto o non supportato. |
502 |
Gateway errato |
1.0 / 1.1 |
L’errore HTTP 502 indica che il server non ha potuto svolgere la sua funzione di gateway o proxy perché si è verificato un errore a monte. |
503 |
Servizio non disponibile |
1.0 / 1.1 |
Il servizio o il server non è attualmente disponibile. Ciò accade, ad esempio, in caso di lavori di manutenzione o di sovraccarico, ecc. |
504 |
Timeout del gateway |
1.1 |
La richiesta non può essere elaborata dal proxy a causa di un timeout. |
505 |
Versione HTTP non supportata |
1.1 |
La versione HTTP richiesta non è supportata. |
506 |
La variante negozia anche |
L’accordo sul contenuto della richiesta risulta in un riferimento circolare. |
|
507 |
Memoria insufficiente |
La richiesta non può essere elaborata perché lo spazio di memoria attualmente disponibile sul server è insufficiente. |
|
508 |
Rilevato loop |
L’operazione non è stata eseguita perché l’esecuzione sarebbe caduta in un loop infinito. Questo codice di stato è definito nell’estensione del binding per WebDAV (secondo RFC 5842), perché i binding possono creare percorsi ciclici alle risorse WebDAV. |
|
509 |
Limite di larghezza di banda superato |
La richiesta del client è stata scartata perché altrimenti sarebbe stata superata la larghezza di banda disponibile. Questo codice di stato è un’estensione non ufficiale di alcuni server. |
|
510 |
Non esteso |
La richiesta non contiene tutte le informazioni che l’estensione del server richiesta prevede obbligatoriamente (RFC 2774). |
|
511 |
Autenticazione di rete richiesta |
Il client deve autenticarsi prima di poter accedere alla rete. |
Nota: Alcuni produttori di software utilizzano codici di stato HTTP proprietari, numerati a partire da 9XX. Tuttavia, questo intervallo di numeri è un caso speciale che non è menzionato nei documenti RFC e quindi non rientra nello standard.
Nel video seguente vengono spiegati ancora una volta i codici di stato HTTP più importanti: