
Gli Status Code HTTP: Una Guida Dettagliata
Il protocollo HTTP (Hypertext Transfer Protocol) non è solamente il pilastro della comunicazione web, ma è il linguaggio silente con cui i browser e i server scambiano informazioni e si comprendono reciprocamente. Immagina di avere una conversazione con un amico: le parole che pronunciate rappresentano il contenuto, ma il tono di voce, le pause e le espressioni del viso forniscono contesto e significato. Nel mondo digitale dei browser e dei server, questo “tono” e “contesto” vengono comunicati attraverso gli status code HTTP.
Ogni volta che un browser (spesso chiamato “client”) invia una richiesta a un server, desidera sapere non solo il contenuto richiesto, ma anche lo stato di quella richiesta. È andata a buon fine? C’è stato un errore? Deve guardare altrove? Queste domande trovano risposta negli status code HTTP.
Questi codici a tre cifre forniscono una sintesi immediata del risultato di una richiesta. Grazie a questi codici, i sistemi possono adattare le proprie azioni, gli sviluppatori possono diagnosticare i problemi e gli utenti finali possono comprendere ciò che sta accadendo, anche se in molti casi questi codici operano silenziosamente dietro le quinte.
Ma questi status code non sono solo dei semplici numeri; sono il risultato di decenni di evoluzione del web e della sua infrastruttura. Sono parte delle fondamenta stesse su cui è stato costruito l’Internet moderno. Conoscere il significato e la funzione di ciascuno di questi codici non solo fornisce una comprensione più profonda delle complessità della rete, ma consente anche una gestione e una diagnosi più efficaci dei problemi.
Proseguiamo ora con una panoramica dettagliata degli status code HTTP, esplorando le diverse categorie e ciò che ciascun codice rappresenta nel contesto della comunicazione web.
Status Code:
1xx - Risposte informative
Questi codici forniscono feedback durante la fase iniziale del processo di richiesta.
- 100 Continue: Indica che finora tutto va bene e che il client dovrebbe continuare con la richiesta o ignorare il messaggio se è già terminato.
- 101 Switching Protocols: Il server accoglie la richiesta del client di passare a un altro protocollo.
- 102 Processing: Informa il client che il server ha ricevuto e sta elaborando la richiesta, ma non ha ancora terminato.
2xx - Risposte di successo
Questi codici indicano che la richiesta è stata compresa, accettata e processata con successo.
- 200 OK: La richiesta è stata soddisfatta.
- 201 Created: La richiesta è stata soddisfatta e ha portato alla creazione di una nuova risorsa.
- 202 Accepted: La richiesta è stata accettata per l’elaborazione, ma l’elaborazione non è stata completata.
- 203 Non-Authoritative Information: Le informazioni restituite non provengono dal server originale, ma da una copia terza.
- 204 No Content: La richiesta è stata eseguita con successo, ma non c’è nulla da restituire.
- 205 Reset Content: Chiede al client di resettare la visualizzazione del documento.
- 206 Partial Content: Il server sta restituendo solo una parte della risorsa a causa di una richiesta di tipo “range”.
3xx - Redirezioni
I codici in questa categoria indicano che il client deve compiere ulteriori azioni.
- 301 Moved Permanently: La risorsa ha un nuovo indirizzo permanente e future richieste dovrebbero utilizzare questo nuovo URI.
- 302 Found (spesso chiamato anche Moved Temporarily): La risorsa si trova temporaneamente sotto un diverso URI.
- 303 See Other: La risposta a questa richiesta si trova sotto un altro URI e dovrebbe essere recuperata utilizzando GET.
- 304 Not Modified: La risorsa non è stata modificata e il client dovrebbe utilizzare la versione salvata nella cache.
- 307 Temporary Redirect: La risorsa si trova temporaneamente sotto un diverso URI, ma future richieste dovrebbero ancora utilizzare l’URI originale.
4xx - Errori del client
Questi codici indicano che c’è stato un errore nella richiesta.
- 400 Bad Request: La richiesta non può essere soddisfatta a causa di una sintassi errata.
- 401 Unauthorized: La richiesta necessita di autenticazione.
- 402 Payment Required: Riservato per future esigenze.
- 403 Forbidden: Il server ha compreso la richiesta, ma si rifiuta di soddisfarla.
- 404 Not Found: Il server non ha trovato nulla che corrisponda all’URI richiesto.
- 405 Method Not Allowed: Il metodo specificato nella richiesta non è consentito per la risorsa identificata dall’URI.
- 406 Not Acceptable: La risorsa identificata dall’URI richiesto è incapace di generare una risposta che soddisfi le caratteristiche richieste nel header diaccettazione della richiesta.
- 407 Proxy Authentication Required: Simile al 401, ma indica che il client deve autenticarsi con il proxy.
- 408 Request Timeout: Il client non ha prodotto una richiesta nel tempo in cui il server si aspettava.
- 409 Conflict: La richiesta non può essere completata a causa di un conflitto con lo stato corrente della risorsa.
- 410 Gone: La risorsa richiesta non è più disponibile e non ci saranno ulteriori riferimenti.
5xx - Errori del server
Questi codici indicano che il server ha fallito nel soddisfare una richiesta valida.
- 500 Internal Server Error: Il server ha riscontrato una condizione inattesa.
- 501 Not Implemented: Il server non supporta la funzionalità richiesta.
- 502 Bad Gateway: Il server, mentre agisce come gateway o proxy, ha ricevuto una risposta non valida.
- 503 Service Unavailable: Il server non è pronto per gestire la richiesta.
- 504 Gateway Timeout: Il server, mentre agisce come gateway o proxy, non ha ricevuto una risposta in tempo.
- 505 HTTP Version Not Supported: Il server non supporta la versione del protocollo HTTP utilizzata nella richiesta.
Tabella Riepilogativa
Categoria | Codice | Descrizione |
---|---|---|
1xx | 100 | Continue |
1xx | 101 | Switching Protocols |
1xx | 102 | Processing |
2xx | 200 | OK |
2xx | 201 | Created |
2xx | 202 | Accepted |
2xx | 203 | Non-Authoritative Information |
2xx | 204 | No Content |
2xx | 205 | Reset Content |
2xx | 206 | Partial Content |
3xx | 300 | Multiple Choices |
3xx | 301 | Moved Permanently |
3xx | 302 | Found |
3xx | 303 | See Other |
3xx | 304 | Not Modified |
3xx | 307 | Temporary Redirect |
4xx | 400 | Bad Request |
4xx | 401 | Unauthorized |
4xx | 402 | Payment Required |
4xx | 403 | Forbidden |
4xx | 404 | Not Found |
4xx | 405 | Method Not Allowed |
4xx | 406 | Not Acceptable |
4xx | 407 | Proxy Authentication Required |
4xx | 408 | Request Timeout |
4xx | 409 | Conflict |
4xx | 410 | Gone |
5xx | 500 | Internal Server Error |
5xx | 501 | Not Implemented |
5xx | 502 | Bad Gateway |
5xx | 503 | Service Unavailable |
5xx | 504 | Gateway Timeout |
5xx | 505 | HTTP Version Not Supported |
Gli status code HTTP forniscono una rapida panoramica dello stato di una richiesta e sono essenziali per la diagnosi e la risoluzione di problemi nel contesto del web. Essere familiari con essi è fondamentale per chiunque lavori nel mondo dello sviluppo e della manutenzione di siti web.