Codici di stato HTTP

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Voce principale: Hypertext Transfer Protocol.

Quella che segue è la lista dei codici di stato e dei relativi messaggi definiti per il protocollo HTTP.

I codici di stato qui elencati sono quelli definiti dall'IETF (RFC 2616) e da alcune RFC con codici di stato addizionali e non standardizzati. Microsoft IIS può usare altri sotto codici decimali non standard per specificare più dettagli[1] non presenti in questo elenco. Le frasi presenti accanto ai codici sono gli esempi ufficiali dello standard, ma ne possono essere fornite anche altre di senso compiuto.

La prima cifra del codice di stato specifica una delle cinque categorie di risposta.

1xx Informational[modifica | modifica wikitesto]

Richiesta ricevuta, continua l'elaborazione.

100 Continue
Il server ha ricevuto l'header della richiesta e il client deve procedere ad inviare il corpo della richiesta (solitamente nelle richieste di tipo POST).
101 Switching Protocols
Il richiedente ha richiesto di cambiare il protocollo in uso e il server è a conoscenza di ciò che dovrà fare.
102 Processing (WebDAV; RFC 2518)
Questo codice indica che il server ha ricevuto e sta processando la richiesta, ma non ha ancora una risposta disponibile. È utilizzato questo codice per evitare che il client vada in timeout mentre aspetta la risposta.
103 Early Hints (RFC 8297)
Utilizzato per restituire alcuni degli header di risposta, prima del messaggio finale HTTP.

2xx Success[modifica | modifica wikitesto]

L'azione è stata ricevuta con successo, compresa ed accettata.

200 OK
Risposta standard per le richieste HTTP andate a buon fine.
201 Created
La richiesta è stata soddisfatta, restituendo la creazione di una nuova risorsa.
202 Accepted
La richiesta di elaborazione è stata accettata ma non è ancora terminata.
203 Non-Authoritative Information.
Il server è un transforming proxy (ad es. un Web Accelerator) che ha ricevuto un 200 OK dalla sua origine, ma sta restituendo una versione modificata della risposta dell'origine.
204 No Content
Il server ha processato con successo la richiesta e non restituirà nessun contenuto.
205 Reset Content
Il server ha processato con successo la richiesta e non restituirà nessun contenuto. Al contrario della risposta 204, questa richiede che il richiedente resetti il document view.
206 Partial Content
Il server sta consegnando solo parti della risorsa (byte serving) a causa del range di un header inviato dal client. Il range header è usato dai client HTTP per abilitare il ripristino di download interrotti, o per frazionare un download in molteplici flussi simultanei.
207 Multi-Status
In caso di risposte XML, quando più azioni possono essere richieste, i dettagli dei singoli stati sono dati nel corpo della risposta. Vedi WebDAV (RFC 4918) per le specifiche associate.
208 Already Reported
Utilizzato all'interno di un elemento di risposta DAV: propstat per evitare di enumerare ripetutamente i membri interni di più collegamenti alla stessa raccolta.
226 IM Used (RFC 3229)
Il server ha soddisfatto la richiesta della risorsa; la risposta consiste in una rappresentazione del risultato di più istanze di manipolazione, applicate all'istanza corrente.

3xx Redirect[modifica | modifica wikitesto]

Il client deve eseguire ulteriori azioni per soddisfare la richiesta.

300 Multiple Choices
Indica opzioni multiple per la risorse tra cui il client potrebbe scegliere (tramite una negoziazione di contenuto agent-driven). Per esempio, questo codice potrebbe essere usato per presentare più opzioni di formati video, per elencare file con estensioni diverse, o per suggerire una disambiguazione.
301 Moved Permanently
Questa e tutte le future richieste andranno dirette ad un altro URI (specificato nell'header Location).
302 Found
Questo è il codice più usato ma anche un classico esempio di non aderenza agli standard nella pratica quotidiana. Infatti, le specifiche di HTTP/1.0 (RFC 1945) richiederebbero che il client esegua redirezioni temporanee (la descrizione originale era "Moved Temporarily"), ma i più diffusi browser l'hanno implementata come 303 descritta di seguito. Perciò, HTTP/1.1 ha aggiunto i codici di stato 303 e 307 per distinguere tra i due comportamenti. Comunque, la maggior parte delle applicazioni e dei framework web ancora usano il codice di stato 302 come se fosse il 303.
303 See Other (da HTTP/1.1)
La risposta alla richiesta può essere trovata sotto un'altra URI usando il metodo GET.
304 Not Modified
Indica che la risorsa non è stata modificata a causa della versione specificata dagli header di richiesta If-Modified-Since o If-None-Match. In questo caso, non c'è bisogno di ritrasmettere la singola risorsa perché il client dispone di una copia già precedentemente scaricata.
305 Use Proxy (da HTTP/1.1)
La risorsa richiesta è disponibile solo passando da un proxy, il cui indirizzo viene fornito nella risposta. Per motivi di sicurezza, molti client HTTP (come Mozilla ed Internet Explorer) non gestiscono correttamente le risposte con questo codice di stato.
306 Switch Proxy
Non più usato. Originariamente significava "Le richieste successive dovrebbero usare il proxy specificato".
307 Temporary Redirect (da HTTP/1.1)
In quest'occasione, la richiesta dovrebbe essere ripetuta con un'altra URI, ma successive richieste possono essere ancora dirette a quella originale. In contrasto con 303, la richiesta di POST originale deve essere reiterata con un'altra richiesta di tipo POST.
308 Permanent Redirect (approvato come RFC sperimentale)
Questa richiesta e le future dovrebbero essere fatte verso un altro URI. Le risposte 307 e 308 (come proposta) dovrebbero comportarsi similmente alla 302 e la 301, ma non prevedono un cambiamento di metodo.

4xx Client Error[modifica | modifica wikitesto]

La richiesta è sintatticamente scorretta o non può essere soddisfatta.

400 Bad Request
La richiesta non può essere soddisfatta a causa di errori di sintassi.
401 Unauthorized
Simile a 403/Forbidden, ma pensato per essere usato quando l'autenticazione è possibile ma è fallita o non può essere fornita. Vedi anche basic access authentication e digest access authentication.
402 Payment Required
L'intendimento originale prevedeva un suo utilizzo per realizzare meccanismi di digital cash/micropagamento, ma questo non si è mai verificato ed il codice non è mai stato utilizzato.
403 Forbidden
La richiesta è legittima ma il server si rifiuta di soddisfarla. Contrariamente al codice 401 Unauthorized, l'autenticazione non ha effetto.[2]
404 Not Found
La risorsa richiesta non è stata trovata ma in futuro potrebbe essere disponibile.
405 Method Not Allowed
La richiesta è stata eseguita usando un metodo non permesso. Ad esempio questo accade quando si usa il metodo GET per inviare dati da presentare con un metodo POST.
406 Not Acceptable
La risorsa richiesta è solo in grado di generare contenuti non accettabili secondo la header Accept inviato nella richiesta.[3]
407 Proxy Authentication Required
Per proseguire, il client deve autenticarsi sul proxy.
408 Request Timeout
Il tempo per inviare la richiesta è scaduto e il server ha terminato la connessione.
409 Conflict
La richiesta non può essere portata a termine a causa di un conflitto con lo stato attuale della risorsa.
Questo codice è permesso solo nei casi in cui ci si aspetta che l'utente possa risolvere il conflitto e ripetere la richiesta.
Il corpo della risposta dovrebbe contenere abbastanza informazioni per individuare la causa del conflitto.[4]
410 Gone
Indica che la risorsa richiesta non è più disponibile e non lo sarà più in futuro.
411 Length Required
La richiesta non specifica la propria dimensione come richiesto dalla risorsa richiesta.
412 Precondition Failed
Il server non soddisfa una delle precondizioni che il richiedente ha inserito nella richiesta.
413 Request Entity Too Large
La richiesta è più grande di quanto il server possa gestire.
414 Request-URI Too Long
L'URI richiesto è troppo grande per essere elaborato dal server.
415 Unsupported Media Type
L'entità della richiesta è di un tipo non accettato dal server o dalla risorsa richiesta.
416 Requested Range Not Satisfiable
Il client ha richiesto un frammento di un file, ma il server non riesce a restituire quel frammento.
417 Expectation Failed
Il server non rispetta i requisiti del campo header di una richiesta Expect.
418 I'm a teapot
Questo è un tipico pesce d'aprile dell'IETF.[5] Solitamente non viene mai implementato in nessun server HTTP. L'RFC specifica che questo codice di stato dovrebbe essere restituito dalle teiere a cui viene erroneamente richiesto di preparare del caffè. Questo stato viene utilizzato come easter egg in alcuni siti, come Google.
420 Enhance your calm
Restituito dalle Twitter Search e Trends API Quando il client è rate-limited, ovvero quando viene definito un numero massimo di chiamate verso le API in un breve tempo stabilito.
422 Unprocessable Entity
Il server comprende il tipo di contenuto dell'entità richiesta e la sintassi della richiesta è corretta, ma non è in grado di processare le istruzioni contenute nella richiesta.
426 Upgrade Required (RFC 2817)
Il client dovrebbe cambiare il protocollo ed usare ad esempio il TLS/1.0.
429 Too many requests
Il client ha effettuato troppe richieste in un intervallo di tempo ridotto. Destinato all'uso con schemi di limitazione della velocità (rate-limiting schemes).
431 Request Header Fields Too Large
Il server si rifiuta di elaborare la richiesta, perché le intestazioni HTTP (headers) sono troppo grandi.
449 Retry With
Estensione di Microsoft: The request should be retried after doing the appropriate action.
451 Unavailable For Legal Reasons (Approvato da Internet Engineering Steering Group IESG)
Stato non obbligatorio utilizzato quando l'accesso alla risorsa è limitato per ragioni legali come censura o mandati governativi. Probabilmente fa riferimento al romanzo distopico Fahrenheit 451.

5xx Server Error[modifica | modifica wikitesto]

Il server ha fallito nel soddisfare una richiesta apparentemente valida.

500 Internal Server Error
Messaggio di errore generico senza alcun dettaglio.
501 Not Implemented
Il server non è in grado di soddisfare il metodo della richiesta.
502 Bad Gateway
Il server si sta comportando come un gateway o un proxy e ha ricevuto una risposta invalida dal server di upstream.
503 Service Unavailable
Il server non è al momento disponibile. Generalmente è una condizione temporanea.
504 Gateway Timeout
Il server si sta comportando come un gateway o un proxy e non ha ricevuto una risposta tempestiva dal server di upstream.
505 HTTP Version Not Supported
Il server non supporta la versione HTTP della richiesta.
509 Bandwidth Limit Exceeded
Questo codice di stato, benché usato da molti server, non è un codice di stato ufficiale in quanto non è specificato in alcuna RFC.

Note[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete