Codici di stato HTTP
Una risposta HTTP inizia con un codice a tre cifre e una breve frase di motivo. La prima cifra è il riepilogo completo: 1xx è provvisorio, 2xx è riuscito, 3xx punta da qualche altra parte, 4xx incolpa la richiesta, 5xx incolpa il server. Se ricordi solo quello, puoi leggere un log che non hai mai visto prima.
Le frasi di motivo qui sono quelle dalle RFC, in inglese, perché è quello che viaggia sul filo — un server invia "Not Found", non una traduzione di esso, e una frase che stai cercando in un log deve corrispondere ai byte che sono stati effettivamente inviati.
Le distinzioni che causano veri problemi sono all'interno delle classi piuttosto che tra di esse: 401 rispetto a 403, 301 rispetto a 308, e 502 rispetto a 503 rispondono ciascuno a una domanda diversa su cosa fare dopo, e ognuno è abitualmente usato per l'altro.
1xx — Informativo
3Provvisorio: la risposta non è definitiva e ne segue un'altra.
| Codice | Frase di motivo | Che cosa significa |
|---|---|---|
| 100 | Continue | Intestazioni ricevute, continua a inviare il corpo. |
| 101 | Switching Protocols | Commutazione di protocolli — l'handshake WebSocket. |
| 103 | Early Hints | Suggerimenti iniziali: precarica queste risorse mentre la risposta reale viene preparata. |
2xx — Successo
5La richiesta è stata ricevuta, compresa e accettata.
| Codice | Frase di motivo | Che cosa significa |
|---|---|---|
| 200 | OK | Successo, con un corpo. |
| 201 | Created | Creato.Dovrebbe portare un'intestazione Location che punta alla nuova risorsa. |
| 202 | Accepted | Accettato per l'elaborazione, che non è ancora accaduta. |
| 204 | No Content | Successo, e deliberatamente nessun corpo.La risposta giusta a un DELETE, o a un salvataggio che non ha nulla da restituire. |
| 206 | Partial Content | Il contenuto parziale — la risposta a una richiesta Range. Download riprendibili. |
3xx — Reindirizzamento
6La risorsa è altrove, o la tua copia memorizzata è ancora buona.
| Codice | Frase di motivo | Che cosa significa |
|---|---|---|
| 301 | Moved Permanently | Spostato permanentemente. Aggiorna i tuoi link; le cache potrebbero mantenere questo per sempre. |
| 302 | Found | Trovato — un reindirizzamento temporaneo.Ampiamente implementato come cambio del metodo a GET, che 307 risolve. |
| 303 | See Other | Vedi altro: recupera il risultato con GET. Il reindirizzamento dopo un POST di modulo. |
| 304 | Not Modified | Non modificato — la tua copia memorizzata è attuale. Inviato senza corpo. |
| 307 | Temporary Redirect | Reindirizzamento temporaneo, metodo e corpo preservati. |
| 308 | Permanent Redirect | Reindirizzamento permanente, metodo e corpo preservati. |
4xx — Errore del client
14La richiesta è il problema. Ripeterla invariata fallerà di nuovo.
| Codice | Frase di motivo | Che cosa significa |
|---|---|---|
| 400 | Bad Request | Il server non poteva analizzare affatto la richiesta. |
| 401 | Unauthorized | Non autenticato — il server non sa chi sei.Denominato Unauthorized, ma significa non autenticato. Dovrebbe includere WWW-Authenticate. |
| 403 | Forbidden | Autenticato e ancora non consentito. Credenziali migliori non aiuteranno. |
| 404 | Not Found | Nessuna risorsa di questo tipo, e il server non dirà se ce n'è mai stata una. |
| 405 | Method Not Allowed | Metodo sbagliato per questo URL.Deve elencare quelli che funzionano in un'intestazione Allow. |
| 406 | Not Acceptable | Nulla disponibile in un formato che la tua intestazione Accept accetterà. |
| 409 | Conflict | Entra in conflitto con lo stato attuale — una modifica rispetto a una versione non aggiornata. |
| 410 | Gone | Sparito: è esistito ed è stato deliberatamente rimosso. Più forte di 404. |
| 413 | Content Too Large | Il corpo è più grande di quanto il server accetti. |
| 415 | Unsupported Media Type | Il server non gestisce questo Content-Type. |
| 418 | I'm a teapot | Sono una teiera. Uno scherzo di April Fools del 1998, permanentemente riservato. |
| 422 | Unprocessable Content | Analizzato correttamente, i contenuti non validi — un campo mancante, un valore cattivo. |
| 429 | Too Many Requests | Limitato di tasso.Cerca Retry-After prima di riprovare, e rallenta esponenzialmente. |
| 451 | Unavailable For Legal Reasons | Bloccato per motivi legali. Il numero è un riferimento a Fahrenheit 451. |
5xx — Errore del server
6La richiesta potrebbe andare bene. Questi sono quelli che vale la pena riprovare.
| Codice | Frase di motivo | Che cosa significa |
|---|---|---|
| 500 | Internal Server Error | Un errore non gestito sul server. Nulla da risolvere dalla tua parte. |
| 501 | Not Implemented | Il server non implementa affatto questo metodo. |
| 502 | Bad Gateway | Un proxy ha raggiunto il server upstream e ha ottenuto qualcosa di inutilizzabile in cambio. |
| 503 | Service Unavailable | Deliberatamente non servendo — sovraccarico o in manutenzione.Lo stato che dovrebbe portare Retry-After. |
| 504 | Gateway Timeout | Un proxy ha rinunciato ad aspettare il server upstream. |
| 505 | HTTP Version Not Supported | La versione HTTP nella richiesta non è supportata. |