HTTP
Codici di stato HTTP
Ricerca…
introduzione
In HTTP, i codici di stato sono un meccanismo leggibile dalla macchina che indica il risultato di una richiesta precedentemente emessa. Da RFC 7231, sec. 6 : "L'elemento codice di stato è un codice intero a tre cifre che fornisce il risultato del tentativo di comprendere e soddisfare la richiesta."
La grammatica formale consente ai codici di essere compresi tra 000
e 999
. Tuttavia, solo il range da 100
a 599
ha assegnato un significato.
Osservazioni
HTTP / 1.1 definisce un numero di codici di stato HTTP numerici che appaiono nella riga di stato - la prima riga di una risposta HTTP - per riassumere ciò che il client dovrebbe fare con la risposta.
La prima cifra di un codice di stato definisce la classe della risposta:
-
1xx
informativo - Richiesta client
2xx
riuscita -
3xx
Richiesta reindirizzata : ulteriori azioni necessarie, ad esempio una nuova richiesta - Errore client
4xx
- non ripetere la stessa richiesta - Errore del server
5xx
- forse riprovare
In pratica, non è sempre facile scegliere il codice di stato più appropriato.
500 Errore interno del server
Un errore di server interno HTTP 500 è un messaggio generico che indica che il server ha riscontrato qualcosa di inaspettato. Le applicazioni (o il server Web sovrastante) dovrebbero utilizzare un 500 quando si verifica un errore nell'elaborazione della richiesta, ovvero viene generata un'eccezione o una condizione della risorsa impedisce il completamento del processo.
Esempio di riga di stato:
HTTP/1.1 500 Internal Server Error
404 non trovato
HTTP 404 Not Found significa che il server non è stato in grado di trovare il percorso utilizzando l'URI richiesto dal client.
HTTP/1.1 404 Not Found
Molto spesso, il file richiesto è stato cancellato, ma a volte può essere una errata configurazione della radice del documento o una mancanza di permessi (anche se le autorizzazioni mancanti attivano più spesso HTTP 403 Proibito).
Ad esempio, Microsoft IIS scrive 404.0 (0 è lo stato secondario) nei suoi file di registro quando il file richiesto è stato cancellato. Ma quando la richiesta in arrivo viene bloccata dalle regole di filtro richieste, scrive 404.5-404.19 per registrare i file in base a quale regola blocca la richiesta. Un riferimento al codice di errore più dettagliato è disponibile sul supporto Microsoft .
Negare l'accesso ai file protetti
Usa 403 Proibito quando un client ha richiesto una risorsa inaccessibile a causa dei controlli di accesso esistenti. Ad esempio, se la tua app ha una route /admin
che dovrebbe essere accessibile solo agli utenti con diritti amministrativi, puoi utilizzare 403 quando un utente normale richiede la pagina.
GET /admin HTTP/1.1
Host: example.com
HTTP/1.1 403 Forbidden
Richiesta di successo
Invia una risposta HTTP con il codice di stato 200
per indicare una richiesta corretta. La riga di stato della risposta HTTP è quindi:
HTTP/1.1 200 OK
Il testo di stato OK
è solo informativo. Il corpo della risposta (payload del messaggio) dovrebbe contenere una rappresentazione della risorsa richiesta. Se non vi è alcuna rappresentazione, non si dovrebbe utilizzare alcun contenuto.
Risposta a una richiesta condizionale per il contenuto memorizzato nella cache
Invia uno stato di risposta 304 non modificato dal server invia in risposta a una richiesta client che contiene intestazioni If-Modified-Since
e If-None-Match
, se la risorsa richiesta non è stata modificata.
Ad esempio, se una richiesta di un client per una pagina Web include l'intestazione If-Modified-Since: Fri, 22 Jul 2016 14:34:40 GMT
e la pagina non è stata modificata da allora, rispondere con la riga di stato HTTP/1.1 304 Not Modified
Top 10 Codice di stato HTTP
2xx successo
- 200 OK : risposta standard per richieste HTTP riuscite.
- 201 Creato : la richiesta è stata soddisfatta, con conseguente creazione di una nuova risorsa.
- 204 Nessun contenuto : il server ha elaborato correttamente la richiesta e non restituisce alcun contenuto.
3xx Reindirizzamento
- 304 non modificato : indica che la risorsa non è stata modificata dalla versione specificata dalle intestazioni della richiesta
If-Modified-Since
oIf-None-Match
.
Errore client 4xx
- 400 Richiesta non valida - Il server non può o non vuole elaborare la richiesta a causa di un errore apparente del client (ad es. Sintassi di richiesta non valida, dimensioni troppo grandi, frame di messaggi di richieste non valide o instradamento di richieste ingannevoli).
- 401 Non autorizzato - Simile a 403 Proibito , ma specificamente per l'uso quando è richiesta l'autenticazione e non è stato eseguito o non è stato ancora fornito. La risposta deve includere un campo di intestazione
WWW-Authenticate
contenente una richiesta di sfida per la risorsa richiesta. - 403 Proibito : la richiesta era valida, ma il server si rifiuta di rispondere. L'utente potrebbe essere registrato ma non dispone delle autorizzazioni necessarie per la risorsa.
- 404 non trovato - La risorsa richiesta non è stata trovata ma potrebbe essere disponibile in futuro. Sono consentite richieste successive da parte del cliente.
- 409 Conflict - Indica che la richiesta non può essere elaborata a causa di conflitti nella richiesta, come un conflitto di modifica tra più aggiornamenti simultanei.
5xx Errore del server
- Errore interno 500 server - Un messaggio di errore generico, fornito quando si è verificata una condizione imprevista e non è più adatto alcun messaggio specifico.