Web Hosting Logo
Login
Novità:
Il tuo hosting professionale da 25 anni ha una nuova gestione! WebHosting.it è adesso parte di SupportHost

Guida ai codici di stato http

I codici di stato HTTP sono delle risposte standard inviate dai server web per comunicare ai client, come i browser, il risultato di una richiesta.

Questi codici sono parte integrante del protocollo HTTP (HyperText Transfer Protocol), il sistema che regola la trasmissione di informazioni sul web.

Ogni codice è composto da tre cifre e offre informazioni essenziali sullo stato della richiesta, aiutando a capire se è stata completata con successo, se c’è stato un errore, o se sono necessarie ulteriori azioni.

Importanza dei codici di stato HTTP per la comunicazione client-server

Immagina di navigare su un sito web: quando clicchi su un link o invii un modulo, il tuo browser invia una richiesta HTTP al server del sito. Il server, a sua volta, risponde con un codice di stato HTTP per indicare l’esito della richiesta.

Questo scambio di informazioni è cruciale per mantenere una comunicazione efficiente e comprensibile tra client e server. I codici di stato HTTP permettono di:

• Determinare se una richiesta è stata elaborata con successo.

• Identificare e diagnosticare problemi che possono verificarsi durante la trasmissione di dati.

Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Prova gratis

• Gestire le risposte del server in modo appropriato, come il reindirizzamento a un’altra pagina o la visualizzazione di messaggi di errore all’utente.

Ogni codice ha un ruolo specifico e aiuta a gestire il flusso di informazioni sul web, garantendo che le interazioni online siano chiare e prevedibili. Proseguendo con l’articolo, esploreremo in dettaglio ciascuna categoria di codici di stato, fornendo esempi concreti e spiegazioni approfondite per ciascun codice.

1. Codici di Stato Informativi (1xx)

I codici di stato informativi, identificati dalla cifra iniziale 1, rappresentano risposte che indicano che la richiesta del client è stata ricevuta e compresa, e che il server sta procedendo con l'elaborazione. Anche se sono meno comuni rispetto ad altre categorie, questi codici possono essere estremamente utili in specifiche situazioni, specialmente durante operazioni più complesse che richiedono passaggi multipli.

100 Continue

Il codice 100 Continue viene utilizzato per informare il client che la parte iniziale della richiesta è stata ricevuta correttamente dal server e che può procedere con l'invio del resto della richiesta (spesso il corpo del messaggio). Questo è particolarmente utile quando si inviano grandi quantità di dati via POST o PUT, poiché permette di verificare che il server è pronto a ricevere tali dati prima di trasmetterli completamente.

Esempio: Immagina di caricare un grande file su un server. Il client invia una richiesta iniziale per verificare se il server è pronto a ricevere il file. Se il server risponde con un codice 100 Continue, il client può procedere con l'invio del file, sapendo che il server è pronto a riceverlo.

101 Switching Protocols

Il codice 101 Switching Protocols viene inviato dal server per indicare che accetta di cambiare il protocollo di comunicazione, come richiesto dal client. Questo può accadere quando il client desidera passare da HTTP a un altro protocollo, come WebSockets, per una connessione più interattiva e persistente.

Esempio: Un'applicazione web che inizia la comunicazione usando HTTP potrebbe richiedere di passare a WebSockets per ottenere un aggiornamento in tempo reale dei dati. Il client invia una richiesta al server per effettuare questo cambio, e se il server risponde con un codice 101 Switching Protocols, significa che accetta il cambio di protocollo e la comunicazione può continuare con WebSockets.

102 Processing (WebDAV)

Il codice 102 Processing è specifico per le estensioni WebDAV (Web Distributed Authoring and Versioning) e viene utilizzato per indicare che il server ha ricevuto e sta elaborando la richiesta, ma che questa elaborazione richiede più tempo del previsto. Invece di lasciare il client in attesa senza alcun feedback, il server può inviare periodicamente il codice 102 per mantenere il client informato sullo stato di avanzamento.

Esempio: Supponiamo che un client stia eseguendo una complessa operazione di copia di una grande quantità di file su un server WebDAV. Il server potrebbe rispondere con un codice 102 Processing per informare il client che l'operazione è in corso e che ci vorrà del tempo per completarla, mantenendo così l'utente aggiornato e prevenendo timeout o richieste duplicate.

103 Early Hints

Il codice 103 Early Hints è relativamente nuovo e viene utilizzato per suggerire al client che ci sono delle risorse che possono essere precaricate prima che la risposta finale sia disponibile. Questo codice aiuta a migliorare le performance della pagina web permettendo al client di iniziare a caricare risorse come file CSS o JavaScript mentre il server sta ancora elaborando la richiesta principale.

Esempio: Quando visiti una pagina web, il server potrebbe sapere che alcuni file CSS e JavaScript saranno sicuramente necessari. Invece di attendere che la richiesta completa sia elaborata, il server può inviare un codice 103 Early Hints con gli URL di queste risorse. Il browser può iniziare a scaricarli immediatamente, riducendo il tempo di caricamento complessivo della pagina.

I codici di stato informativi, sebbene meno utilizzati, giocano un ruolo importante nel fornire feedback immediato e nel migliorare l'efficienza della comunicazione tra client e server. Dal permettere caricamenti di dati più intelligenti con il codice 100 Continue, al migliorare la reattività delle applicazioni web con il codice 103 Early Hints, questi codici aiutano a creare un'esperienza utente più fluida e informata. Proseguendo, esploreremo le altre categorie di codici di stato HTTP, offrendo una comprensione completa di come funzionano e di come possono essere utilizzati.

2. Codici di Stato di Successo (2xx)

I codici di stato di successo, identificati dalla cifra iniziale 2, sono una conferma positiva per il client che la richiesta è stata ricevuta, compresa e accettata con successo dal server. Questi codici sono fondamentali per garantire che la comunicazione tra client e server avvenga senza intoppi, segnalando che l’operazione richiesta è stata completata correttamente. Vediamo in dettaglio i vari codici della categoria 2xx.

200 OK

Il codice 200 OK è probabilmente il codice di stato HTTP più conosciuto e utilizzato. Questo codice indica che la richiesta è stata elaborata con successo e che il server ha restituito il contenuto richiesto. È una conferma chiara che tutto è andato come previsto.

Esempio: Ogni volta che visiti una pagina web e tutto viene caricato correttamente, il server risponde con un codice 200 OK per ogni risorsa richiesta dal browser, come il documento HTML, le immagini, i file CSS e JavaScript.

201 Created

Il codice 201 Created indica che la richiesta è stata completata con successo e ha portato alla creazione di una nuova risorsa. Questo codice viene spesso utilizzato in risposta a richieste POST che creano nuovi record nel database.

Esempio: Quando ti iscrivi a un nuovo sito web e crei un account, il server risponde con un 201 Created, segnalando che l’account è stato creato con successo.

202 Accepted

Il codice 202 Accepted significa che la richiesta è stata ricevuta ma non è ancora stata elaborata. Non garantisce che l’elaborazione della richiesta avrà successo, ma solo che è stata accettata per una futura elaborazione.

Esempio: Se invii una richiesta per generare un report complesso, il server potrebbe rispondere con un 202 Accepted per indicare che la richiesta è stata ricevuta e il report sarà generato, anche se ci vorrà del tempo.

203 Non-Authoritative Information

Il codice 203 Non-Authoritative Information indica che la richiesta è stata completata con successo, ma che le informazioni restituite provengono da una copia locale o da un’altra origine, non dall’originale server di origine.

Esempio: Se un server proxy risponde a una richiesta con dati memorizzati nella cache invece di dati freschi dal server originale, potrebbe utilizzare un 203 Non-Authoritative Information per indicare questo fatto.

204 No Content

Il codice 204 No Content significa che la richiesta è stata elaborata con successo, ma il server non restituisce alcun contenuto. Questo è utile quando il server non ha bisogno di restituire informazioni al client.

Esempio: Quando aggiorni le impostazioni del tuo account senza dover ricaricare la pagina, il server potrebbe rispondere con un 204 No Content per indicare che l’aggiornamento è avvenuto con successo senza bisogno di ulteriori dati da visualizzare.

205 Reset Content

Il codice 205 Reset Content indica che la richiesta è stata elaborata con successo e che il client dovrebbe resettare il documento visualizzato. Questo è spesso usato per resettare i form nei browser.

Esempio: Dopo aver inviato un modulo con successo, il server potrebbe rispondere con un 205 Reset Content per indicare al browser di resettare il modulo, rendendolo pronto per un nuovo inserimento.

206 Partial Content

Il codice 206 Partial Content viene utilizzato quando il server restituisce solo una parte della risorsa, solitamente in risposta a una richiesta di intervallo (range request). Questo è particolarmente utile per il download di file di grandi dimensioni o lo streaming di video.

Esempio: Se stai guardando un video online e salti avanti, il server potrebbe rispondere con un 206 Partial Content per fornire solo la parte del video richiesta.

207 Multi-Status (WebDAV)

Il codice 207 Multi-Status è specifico per WebDAV (Web Distributed Authoring and Versioning) e permette al server di restituire informazioni su più operazioni all’interno di una singola richiesta. La risposta contiene un corpo XML che descrive lo stato di ciascuna operazione.

Esempio: Se un client WebDAV invia una richiesta per operazioni multiple su diversi file (ad esempio, copiare e rinominare vari file), il server può rispondere con un 207 Multi-Status per indicare lo stato di ciascuna operazione in modo dettagliato.

208 Already Reported (WebDAV)

Il codice 208 Already Reported viene utilizzato all’interno di un elemento di risposta dav:propstat per evitare l’enumerazione ripetuta degli elementi interni a più associazioni di binding. In pratica, impedisce che la stessa risorsa venga riportata più volte in un contesto di multistatus.

Esempio: Durante la sincronizzazione di un insieme di file con WebDAV, se una risorsa è stata già inclusa in una risposta precedente e non c’è bisogno di ripeterla, il server può rispondere con un 208 Already Reported.

226 IM Used (RFC 3229)

Il codice 226 IM Used indica che il server ha completato una richiesta GET per la risorsa e la risposta è stata eseguita con una o più manipolazioni di contenuto, utilizzando l’algoritmo di delta encoding (RFC 3229). Questo permette al server di inviare solo le parti modificate della risorsa, riducendo la quantità di dati trasmessi.

Esempio: In un’applicazione dove i dati cambiano frequentemente ma solo in piccole parti (ad esempio, un feed di notizie), il server può utilizzare il 226 IM Used per inviare solo le modifiche, anziché l’intera risorsa, migliorando l’efficienza della trasmissione.

I codici di stato di successo (2xx) sono fondamentali per una comunicazione chiara ed efficace tra client e server. Ogni codice offre un feedback specifico sul risultato della richiesta, aiutando a comprendere meglio il flusso di dati e a gestire le interazioni in modo ottimale. Continuando l’articolo, esploreremo le altre categorie di codici di stato HTTP, offrendo ulteriori dettagli ed esempi per una comprensione completa.

3. Codici di Stato di Redirezione (3xx)

I codici di stato di redirezione, contrassegnati dalla cifra iniziale 3, indicano che il client deve effettuare ulteriori azioni per completare la richiesta. Questi codici sono fondamentali per gestire le situazioni in cui una risorsa è stata spostata o quando è necessario indirizzare il client verso una nuova posizione per ottenere le informazioni richieste.

300 Multiple Choices

Il codice 300 Multiple Choices viene utilizzato quando una risorsa richiesta ha più di una rappresentazione e il server fornisce una lista di opzioni tra cui il client può scegliere. Questo può accadere, ad esempio, se una risorsa è disponibile in diversi formati o linguaggi.

Esempio: Immagina di chiedere un documento che è disponibile sia in formato PDF che in formato HTML. Il server potrebbe rispondere con un 300 Multiple Choices e fornire i link a entrambe le versioni, lasciando a te la scelta di quale scaricare.

301 Moved Permanently

Il codice 301 Moved Permanently indica che la risorsa richiesta è stata spostata in modo permanente a un nuovo URL. Questo è utilizzato per redirezionare il traffico verso la nuova posizione della risorsa e viene solitamente accompagnato dal nuovo URL nella risposta.

Esempio: Se un sito web cambia il dominio, tutte le vecchie pagine potrebbero essere reindirizzate con un 301 Moved Permanently alle nuove pagine corrispondenti. Questo aiuta a mantenere l’integrità dei link e a migliorare la SEO.

302 Found

Il codice 302 Found indica che la risorsa richiesta è temporaneamente disponibile a un URL diverso. A differenza del 301, il reindirizzamento è temporaneo, e il client dovrebbe continuare a utilizzare l’URL originale per future richieste.

Esempio: Durante la manutenzione di una pagina web, il server potrebbe rispondere con un 302 Found per reindirizzare temporaneamente i visitatori a una pagina di manutenzione senza modificare permanentemente l’URL della risorsa.

Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Prova gratis

303 See Other

Il codice 303 See Other è utilizzato per reindirizzare il client a un altro URL utilizzando una richiesta GET, indipendentemente dal metodo originale della richiesta (POST, PUT, ecc.). Questo è utile per prevenire il riinvio di dati in una richiesta POST dopo una redirezione.

Esempio: Dopo aver completato un modulo di registrazione con successo, il server potrebbe rispondere con un 303 See Other per reindirizzare l’utente a una pagina di conferma o al profilo utente appena creato.

304 Not Modified

Il codice 304 Not Modified viene utilizzato per informare il client che la risorsa non è stata modificata dall’ultima volta che è stata richiesta. Questo permette al client di utilizzare la copia memorizzata nella cache, migliorando le prestazioni e riducendo la larghezza di banda utilizzata.

Esempio: Se visiti spesso la stessa pagina web, il browser può memorizzarla nella cache. Quando torni su quella pagina, il server potrebbe rispondere con un 304 Not Modified se non ci sono stati cambiamenti, permettendo al browser di caricare la versione cache.

305 Use Proxy (Deprecato)

Il codice 305 Use Proxy è stato originariamente progettato per indicare che la risorsa richiesta deve essere accessibile attraverso un proxy specificato dal server. Tuttavia, a causa di problemi di sicurezza e implementazione, questo codice è stato deprecato e non è più ampiamente utilizzato.

Esempio: Sebbene questo codice sia deprecato, in teoria, potrebbe essere utilizzato per forzare il client a utilizzare un proxy per accedere alla risorsa. Tuttavia, a causa dei rischi associati, è raro vederlo in uso oggi.

306 Switch Proxy (Non utilizzato)

Il codice 306 Switch Proxy era riservato per un uso futuro e non è mai stato implementato nei server HTTP. Non ci sono casi d’uso o implementazioni pratiche per questo codice, e non dovrebbe essere visto in risposte HTTP.

307 Temporary Redirect

Il codice 307 Temporary Redirect è simile al 302 Found, ma garantisce che il metodo della richiesta (GET, POST, ecc.) non cambi quando il client segue la redirezione. Questo è utile per preservare l’integrità delle richieste POST.

Esempio: Se invii un modulo di contatto su un sito web e la risorsa è temporaneamente spostata, il server può rispondere con un 307 Temporary Redirect per garantire che la richiesta POST venga inviata alla nuova URL senza cambiare il metodo della richiesta.

308 Permanent Redirect

Il codice 308 Permanent Redirect è simile al 301 Moved Permanently, ma garantisce che il metodo della richiesta non cambi quando il client segue la redirezione. Questo assicura che le richieste POST, PUT, ecc. vengano mantenute come tali.

Esempio: Se un’API viene spostata permanentemente a un nuovo endpoint, il server può utilizzare un 308 Permanent Redirect per indicare ai client che dovrebbero aggiornare gli endpoint utilizzati, mantenendo il metodo della richiesta originale.

I codici di stato di redirezione (3xx) sono strumenti essenziali per gestire il traffico web, permettendo ai server di guidare i client verso le risorse corrette in modo efficiente. Sia che si tratti di spostamenti permanenti o temporanei, questi codici aiutano a mantenere una navigazione fluida e coerente, migliorando l’esperienza utente e l’integrità del web. Continuando con l’articolo, esploreremo le altre categorie di codici di stato HTTP, fornendo ulteriori dettagli e esempi per una comprensione completa.

Continua.......

4. Codici di Stato di Errore del Client (4xx)

• 400 Bad Request

• 401 Unauthorized

• 402 Payment Required

• 403 Forbidden

• 404 Not Found

• 405 Method Not Allowed

• 406 Not Acceptable

• 407 Proxy Authentication Required

• 408 Request Timeout

• 409 Conflict

• 410 Gone

• 411 Length Required

• 412 Precondition Failed

• 413 Payload Too Large

• 414 URI Too Long

• 415 Unsupported Media Type

• 416 Range Not Satisfiable

• 417 Expectation Failed

• 418 I’m a teapot (RFC 2324)

• 421 Misdirected Request

• 422 Unprocessable Entity (WebDAV)

• 423 Locked (WebDAV)

• 424 Failed Dependency (WebDAV)

• 425 Too Early

• 426 Upgrade Required

• 428 Precondition Required

• 429 Too Many Requests

• 431 Request Header Fields Too Large

• 451 Unavailable For Legal Reasons

5. Codici di Stato di Errore del Server (5xx)

• 500 Internal Server Error

• 501 Not Implemented

• 502 Bad Gateway

• 503 Service Unavailable

• 504 Gateway Timeout

• 505 HTTP Version Not Supported

• 506 Variant Also Negotiates

• 507 Insufficient Storage (WebDAV)

Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Prova gratis

• 508 Loop Detected (WebDAV)

• 510 Not Extended

• 511 Network Authentication Required

Ivan Messina
ivan
Con oltre 10 anni di esperienza nel web hosting, lavora ogni giorno per migliorare il servizio e riservare attenzione a ogni singolo cliente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Web Hosting Footer Image