Home / Database & Server / Database & Server / HTTP Status Code
Mattepuffo

HTTP Status Code

HTTP Status Code

Le risposte dei server alle richieste HTTP, possono essere varie.

Ultimamente, facendo un pò di esperimenti con dei miei programmi, mi è capitato di ritrovarmi con i più disparati Staus Code senza sapere a cosa servissero.

Ho deciso di riportarvi i vari code con relative descrizioni.

Innanzitutto gli Status Code sono dei numeri di tre cifre, dove la prima identifica la classe di appartenenza (che vedremo sotto), mentre le altre due non hanno una vera e propria categorizzazione.

Per quanto riguarda le classi, ne troviamo cinque:

S.N.Code and Description
1 1xx: Informational
La richiesta è stata ricevuta e il processo continua
2 2xx: Success
La richiesta è stata ricevuta e approvata
3 3xx: Redirection
Per completare la richiesta sono necessarie altre azioni
4 4xx: Client Error
La richiesta ha degli errori o non può essere soddisfatta
5 5xx: Server Error
La richiesta apparentemente valida non può essere soddisfatta

Il prorammatore web non ha ovviamente il dovere di ricordarsele tutte, e non c'è la necessità di istruire i programmi a riconoscerle.

In genere si impostano giusto alcune istruzioni per i codice più frequenti (ad esempio attraverso il file .htaccess di Apache).

Qui sotto vediamo una lista divisa per classi.

1xx: Information

Message:Description:
100 Continue Solo una parte della richiesta è stata accettata, e siccome non è stata rifiutata, il client continua nella sua richiesta
101 Switching Protocols Il server ha cambiato protocollo

2xx: Successful

Message:Description:
200 OK La richiesta è OK
201 Created La richiesta è completata, e una nuova risorsa è stata creata
202 Accepted La richiesta è stata accettata, ma il processo non è completo
203 Non-authoritative Information Le informazioni nell'header non sono del server originario, ma di terze parti
204 No Content Uno status code e un header sono stati inviato, ma non c'è un corpo nella risposta
205 Reset Content Il browser dovrebbe cancellare il modulo utilizzato per questa operazione
206 Partial Content Il server ha riportato solo una parte dei dati della richiesta

3xx: Redirection

Message:Description:
300 Multiple Choices L'utente può selezionare un link tra quelli proposti (massimo cinque) per andare alla risosra desiderata
301 Moved Permanently La pagina richiesta è stata spostata a un nuovo indirizzo
302 Found La pagina richiesta è stata spostata temporaneamente a un nuovo indirizzo
303 See Other La pagina richiesta può essere trovata a un nuovo indirizzo
304 Not Modified L'URL non è stato modificato dalla data specificata
305 Use Proxy L'URL richiesto deve essere raggiunto attraverso il proxy specificato dalla voce Location dell'header
306 Unused Codice non più usato
307 Temporary Redirect La pagina richiesta è stata spostata temporaneamente a un nuovo indirizzo

4xx: Client Error

Message:Description:
400 Bad Request Il server non è in grado di interpretare la risposta
401 Unauthorized La pagina richiede username e password
402 Payment Required Ancora non utilizzabile
403 Forbidden L'accesso a questa pagina è proibito (forbidden)
404 Not Found Il server non può trovare la risorsa richiesta
405 Method Not Allowed Il metodo specificato nella richiesta non è permesso
406 Not Acceptable Il server può generare solo una risposta che il client non può accettare
407 Proxy Authentication Required L'utente deve autenticarsi attraverso un proxy prima che la richiesta sia processata
408 Request Timeout La richiesta è andata in timeout (troppo tempo rispetto a quello che il server può attendere)
409 Conflict La richiesta non può essere completata a causa di un conflitto
410 Gone La richiesta non è più disponibile
411 Length Required Il server non può accettare una rischiesta senza Content-Length che non è definito
412 Precondition Failed Il "presupposto" della richiesta è considerato falso dal server
413 Request Entity Too Large La richiesta non è stata accettata perchè l'entità è troppo grande
414 Request-url Too Long Il server non accetterà la richiesta in quanto l'URL è troppo grande; bisogna convertire la richiesta da POST a GET
415 Unsupported Media Type Il server non accetterà la richiesta per il media-type non è supportato
416 Requested Range Not Satisfiable L'intervallo di byte richiesto non è disponibile ed è fuori dai limiti
417 Expectation Failed La Expect request-header non può essere soddisfatta dal server

5xx: Server Error

Message:Description:
500 Internal Server Error La richiesta non è stata completata, in quanto il server ha riscontrata una condizione inaspettata
501 Not Implemented La richiesta non è stata completata, in quanto il servernon supporta la funzionalità richiesta
502 Bad Gateway La richiesta non è stata completata, in quanto il server ha ricevuto una risposta non valida dal server upstream
503 Service Unavailable La richiesta non è stata completata, in quanto il server è temporaneamente sovraccarico o in down
504 Gateway Timeout Il gateway è scaduto
505 HTTP Version Not Supported Il server non supporta la versione HTTP del protocollo

In genere il gli errori riportati sono in inglese; ho cercato di tradurli per facilitare un pò il compito con chi è alle prime armi.

Enjoy!