Codici di stato HTTP: Panoramica

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 …

Codici di stato HTTP: Panoramica

http status codes
  1. Rivista
  2. »
  3. Articolo
  4. »
  5. Rete
  6. »
  7. Codici di stato HTTP: Panoramica

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.

Che cos’è un codice di stato HTTP?

È 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).

Che cosa significano i numeri dei codici di stato HTTP?

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”).

Come posso controllare i codici di stato HTTP?

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:

Articoli correlati