Cheat sheet dei codici di stato HTTP
Risposte informative
| Codice di stato | Frase di motivo | Significato | Versione HTTP |
|---|---|---|---|
| 100 | Continue | Il client dovrebbe continuare a inviare la richiesta. Questa risposta temporanea viene utilizzata per informare il client che parte della sua richiesta è stata ricevuta dal server e non è stata ancora rifiutata. Il client dovrebbe continuare a inviare il resto della richiesta o, se la richiesta è già completa, ignorare questa risposta. Il server deve inviare una risposta finale al termine della richiesta. | HTTP/1.1 Disponibile |
| 101 | Switching Protocols | Il server ha compreso la richiesta del client e lo informerà tramite l’intestazione del messaggio Upgrade di utilizzare un protocollo diverso per completare la richiesta. Dopo l’invio dell’ultima riga vuota di questa risposta, il server passerà ai protocolli definiti nell’intestazione del messaggio Upgrade. Questa misura dovrebbe essere adottata solo quando il passaggio a un nuovo protocollo è più vantaggioso. Ad esempio, il passaggio a una nuova versione di HTTP è più vantaggioso di una versione precedente, o il passaggio a un protocollo sincrono in tempo reale per fornire risorse che utilizzano tali funzionalità. | HTTP/1.1 Disponibile |
Risposte di successo
| Codice di stato | Frase di motivo | Significato | Versione HTTP |
|---|---|---|---|
| 200 | OK | La richiesta è andata a buon fine. Il significato del successo varia a seconda del metodo utilizzato dalla richiesta.- GET: la risorsa è stata estratta e restituita al client come corpo della risposta.- HEAD: l’intestazione dell’entità è stata restituita al client come intestazione della risposta.- POST: dopo che il server ha elaborato i dati inviati dal client, la risorsa appropriata viene restituita al client come corpo della risposta.- TRACE: il messaggio di richiesta ricevuto dal server viene restituito al client come corpo della risposta. | HTTP/0.9 Disponibile |
| 201 | Created | La richiesta è andata a buon fine e una nuova risorsa è stata creata in base alle esigenze della richiesta. Questo è solitamente il codice di risposta ottenuto dal metodo PUT. | HTTP/0.9 Disponibile |
| 202 | Accepted | Il server ha accettato la richiesta ma non l’ha ancora elaborata. Proprio come potrebbe essere rifiutata, la richiesta potrebbe essere eseguita o meno in definitiva. Nelle operazioni asincrone, non esiste un modo più conveniente che inviare questo codice di stato. Lo scopo di restituire una risposta con codice di stato 202 è consentire al server di accettare richieste per altri processi (ad esempio, un’操作 batch che viene eseguita solo una volta al giorno) senza dover mantenere il client connesso fino al completamento dell’operazione batch. La risposta che restituisce il codice di stato 202 dovrebbe includere alcune informazioni che indichino lo stato corrente dell’elaborazione nell’entità e un puntatore a un monitor dello stato di elaborazione o una previsione dello stato, in modo che l’utente possa stimare se l’operazione è stata completata. | HTTP/0.9 Disponibile |
| 203 | Non-Authoritative Information | Il server ha elaborato correttamente la richiesta, ma le meta-informazioni dell’intestazione dell’entità restituite non sono un set deterministico valido sul server di origine, ma provengono da una copia locale o di terze parti. In caso contrario, l’utilizzo del codice di stato 200 è il più appropriato. | HTTP/0.9 e 1.1 |
| 204 | No Content | Non è presente alcun contenuto della risposta, solo le intestazioni della risposta. Anche le intestazioni delle risposte possono essere utili. Gli user agent possono aggiornare le informazioni della cache delle risorse corrispondenti in base alle nuove intestazioni della risposta. | HTTP/0.9 Disponibile |
| 205 | Reset Content | Indica allo user agent di reimpostare la visualizzazione del documento della finestra che ha inviato la richiesta. | HTTP/1.1 Disponibile |
| 206 | Partial Content | Questo codice di stato viene utilizzato quando il client scarica file in segmenti utilizzando il campo dell’intestazione range. | HTTP/1.1 Disponibile |
Messaggi di reindirizzamento
| Codice di stato | Frase di motivo | Significato | Versione HTTP |
|---|---|---|---|
| 300 | Multiple Choice | Esistono più risposte possibili alla richiesta e lo user agent o l’utente deve sceglierne una. Il server non dispone di alcuno standard da seguire per sostituire l’utente nell’effettuare la scelta. | HTTP/1.0 e versioni successive |
| 301 | Moved Permanently | Questo codice di stato indica che il percorso della risorsa URI richiesta è cambiato e che il nuovo URL verrà trovato nel campo dell’intestazione Location della risposta. |
HTTP/0.9 Disponibile |
| 302 | Found | Questo codice di stato indica che il percorso della risorsa URI richiesta è cambiato temporaneamente e potrebbe continuare a cambiare. Pertanto, il client dovrebbe continuare a utilizzare questo URI per gli accessi futuri. Il nuovo URL verrà trovato nel campo dell’intestazione Location: della risposta. |
HTTP/0.9 Disponibile |
| 303 | See Other | Il server invia questa risposta per guidare il client a utilizzare il metodo GET per accedere a un altro URI. | HTTP/0.9 e 1.1 |
| 304 | Not Modified | Comunica al client che il contenuto richiesto non è cambiato dall’ultimo accesso. Il client può ottenere la risorsa direttamente dalla cache del browser. | HTTP/0.9 Disponibile |
| 305 | Use Proxy | La risorsa richiesta deve essere consultata tramite un proxy. Per motivi di sicurezza, questo codice di stato non è ampiamente supportato. | HTTP/1.1 Disponibile |
| 306 | unused | Questo codice di stato non è più utilizzato; era originariamente utilizzato nelle versioni precedenti della specifica HTTP 1.1. | HTTP/1.1 Disponibile |
| 307 | Temporary Redirect | Il server invia questa risposta per guidare il client a utilizzare lo stesso metodo per accedere a un altro URI per ottenere la risorsa desiderata. Il nuovo URL verrà trovato nel campo dell’intestazione Location: della risposta. Ha la stessa semantica del codice di stato 302 e per entrambi gli accessi deve essere utilizzato lo stesso metodo (GET, POST). |
HTTP/1.1 Disponibile |
| 308 | Permanent Redirect | La risorsa richiesta si troverà permanentemente su un altro URI. Il nuovo URL verrà trovato nel campo dell’intestazione Location: della risposta. Ha la stessa semantica del codice di stato 301 e per entrambi gli accessi deve essere utilizzato lo stesso metodo (GET, POST). |
HTTPbis (bozza sperimentale) |
Risposte di errore del client
| Codice di stato | Frase di motivo | Significato | Versione HTTP |
|---|---|---|---|
| 400 | Bad Request | Il server non può leggere correttamente la richiesta a causa di un errore di sintassi nella richiesta inviata. | HTTP/0.9 Disponibile |
| 401 | Unauthorized | Per ottenere il contenuto richiesto è necessaria l’autenticazione, analogamente a un errore 403. La differenza è che dopo un errore 401 l’autenticazione può essere superata purché vangano inseriti l’account e la password corretti. | HTTP/0.9 Disponibile |
| 402 | Payment Required | Questo codice di stato è riservato per un uso futuro. Lo scopo iniziale della creazione di questo codice era per i sistemi di pagamento digitale; tuttavia, non è stato ancora messo in uso. | HTTP/0.9 e 1.1 |
| 403 | Forbidden | Il client non ha il diritto di accedere al contenuto richiesto e il server rifiuta la richiesta. | HTTP/0.9 Disponibile |
| 404 | Not Found | Il server non riesce a trovare la risorsa richiesta. Poiché ciò accade di frequente, questo codice di stato è molto comune durante la navigazione sul web. | HTTP/0.9 Disponibile |
| 405 | Method Not Allowed | Il metodo utilizzato dalla richiesta è proibito dal server. RFC2616 stabilisce che i metodi GET e HEAD non possono essere proibiti. |
HTTP/1.1 Disponibile |
| 406 | Not Acceptable | Non è stato trovato alcun contenuto idoneo da restituire al client dopo la negoziazione del contenuto guidata dal server. | HTTP/1.1 Disponibile |
| 407 | Proxy Authentication Required | Simile al codice di stato 401, ma l’autenticazione è richiesta tramite un proxy. | HTTP/1.1 Disponibile |
| 408 | Request Timeout | Il client non ha completato l’invio di una richiesta entro il tempo in cui il server era pronto ad attendere. Ciò significa che il server interromperà la connessione con il client. Questa risposta è più comune in altri browser, come Chrome e IE9, allo scopo di accelerare le velocità di navigazione utilizzando il meccanismo di preconnessione HTTP. Si noti inoltre che alcuni server interrompono la connessione direttamente senza inviare tale risposta. | HTTP/1.1 Disponibile |
| 409 | Conflict | Questa richiesta è in conflitto con lo stato attuale del server. | HTTP/1.1 Disponibile |
| 410 | Gone | La risorsa richiesta è stata eliminata. | HTTP/1.1 Disponibile |
| 411 | Length Required | Il server rifiuta la richiesta perché richiede il campo dell’intestazione Content-Length in questa richiesta, ma il client non l’ha inviato. |
HTTP/1.1 Disponibile |
| 412 | Precondition Failed | Il server non ha soddisfatto le precondizioni impostate dal client nei campi dell’intestazione della richiesta durante l’acquisizione della risorsa. | HTTP/1.1 Disponibile |
| 413 | Request Entity Too Large | La dimensione dell’entità della richiesta supera il limite massimo impostato dal server; il server può chiudere la connessione HTTP e restituire il campo dell’intestazione Retry-After. |
HTTP/1.1 Disponibile |
| 414 | Request-URI Too Long | L’indirizzo URI contenuto nella richiesta del client è troppo lungo perché il server possa elaborarlo. | HTTP/1.1 Disponibile |
| 415 | Unsupported Media Type | Il server non supporta il tipo di supporto richiesto dal client e pertanto rifiuta la richiesta. | HTTP/1.1 Disponibile |
| 416 | Requested Range Not Satisfiable | Il campo dell’intestazione Range incluso nella richiesta non può essere soddisfatto, solitamente perché l’intervallo di numeri in Range supera la dimensione della risorsa richiesta. |
HTTP/1.1 Disponibile |
| 417 | Expectation Failed | Il contenuto previsto specificato nell’intestazione della richiesta Expect non può essere soddisfatto dal server. |
HTTP/1.1 Disponibile |
Risposte di errore del server
| Codice di stato | Frase di motivo | Significato | Versione HTTP |
|---|---|---|---|
| 500 | Internal Server Error | Il server ha riscontrato un problema sconosciuto e irrisolvibile. | HTTP/0.9 Disponibile |
| 501 | Not Implemented | Il server non supporta il metodo utilizzato nella richiesta, come POST e PUT. Solo GET e HEAD sono i metodi che il server deve implementare come specificato nella specifica RFC2616. |
HTTP/0.9 Disponibile |
| 502 | Bad Gateway | Il server funge da gateway e riceve una risposta HTTP non valida dal server upstream. | HTTP/0.9 Disponibile |
| 503 | Service Unavailable | Il server non è attualmente in grado di gestire la richiesta a causa di una manutenzione temporanea del server o di un sovraccarico. Questa situazione è temporanea e si riprenderà dopo un certo periodo di tempo. Se è possibile stimare il tempo di ritardo, la risposta può includere un’intestazione Retry-After: per indicare tale tempo di ritardo. Se non viene fornita alcuna informazione Retry-After:, il client dovrebbe gestirla come una risposta 500. Nel frattempo, in questo caso, dovrebbe essere restituita una pagina intuitiva che spieghi il problema con il server e dovrebbero essere incluse anche le informazioni dell’intestazione HTTP correlate alla cache, poiché solitamente tali pagine con suggerimenti sugli errori non dovrebbero essere memorizzate nella cache dal client. |
HTTP/0.9 Disponibile |
| 504 | Gateway Timeout | Il server funge da gateway e non riesce a ottenere una risposta tempestiva dal server upstream da restituire al client. | HTTP/1.1 Disponibile |
| 505 | HTTP Version Not Supported | Il server non supporta la versione del protocollo HTTP utilizzata nella richiesta HTTP inviata dal client. | HTTP/1.1 Disponibile |