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!
http status code server server error client error redirection successful information
Commentami!