Protocollo HTTP

Codici Stato

Codici di stato HTTP: classi informative, successi, reindirizzamenti, errori e diagnosi delle risposte.

Messaggi HTTP | Codici Stato

Che cosa sono i codici di stato HTTP?

Concetto: esito della richiesta   |   Contesto: risposta HTTP

Quando riceve una richiesta HTTP, il server restituisce una risposta che contiene un codice di stato a tre cifre. Il codice permette al client di distinguere una richiesta completata correttamente, un reindirizzamento o un errore. Non descrive da solo tutto il contenuto della risposta.

Idea chiave: la prima cifra identifica la classe della risposta. Un codice 404 segnala una risorsa non trovata, mentre 500 segnala un problema sul server.

Le cinque classi

Tag: 1xx–5xx   |   Tag: interpretazione

ClasseSignificatoEsempio
1xxInformazioni: elaborazione o negoziazione in corso100 Continue
2xxSuccesso: richiesta gestita correttamente200 OK, 201 Created, 204 No Content
3xxReindirizzamento o uso di una rappresentazione già disponibile301 Moved Permanently, 302 Found, 304 Not Modified
4xxErrore attribuito alla richiesta o alle condizioni di accesso400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
5xxErrore del server o di un servizio intermedio500 Internal Server Error, 503 Service Unavailable
Schema illustrativo delle classi dei codici HTTP e degli esempi di risposta
Schema illustrativo delle classi di risposta HTTP.

Leggere una risposta HTTP

Tag: status code   |   Tag: header

In HTTP/1.1, la prima riga della risposta contiene versione del protocollo, codice numerico e frase descrittiva:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

<!doctype html>
<html>...</html>

In HTTP/2 e HTTP/3 non esiste una riga di stato testuale identica a quella di HTTP/1.1: il codice viene trasmesso tramite lo pseudo-header :status. DevTools presenta comunque un campo Status Code facilmente leggibile.

CodiceChe cosa osservare
200 OKRisposta riuscita: controllare il contenuto ricevuto.
302 FoundReindirizzamento temporaneo: cercare l'header Location.
400 Bad RequestRichiesta rifiutata perché non valida per il server.
404 Not FoundLa risorsa richiesta non è stata trovata.
500 Internal Server ErrorIl server ha incontrato un errore inatteso.
Attenzione: il codice di stato è distinto dal metodo HTTP. GET descrive l'operazione richiesta, 200 descrive l'esito della risposta. Inoltre un 404 non significa necessariamente che il server sia irraggiungibile: spesso è proprio il server a rispondere.
LABORATORIO

Analizzare i codici di stato con DevTools

Confrontare risposte 200, 404, 400 e 302 attraverso le prove interattive della lezione.

Verifica dei concetti

Obiettivo: interpretare le risposte   |   Concetti: classi, codici, redirect

Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.

1. Che cosa indica il codice 200? ▾
Risposta: 200 OK indica che la richiesta è stata gestita con successo.
2. Qual è la differenza tra 301 e 302? ▾
Risposta: 301 indica un reindirizzamento permanente, 302 un reindirizzamento temporaneo. Il browser può seguire automaticamente l'URL indicato in Location.
3. Che cosa significa 404 Not Found? ▾
Risposta: il server non ha trovato una rappresentazione corrente della risorsa richiesta oppure non intende rivelarne l'esistenza.
4. Quando si incontra un codice 500? ▾
Risposta: quando il server incontra una condizione inattesa che gli impedisce di completare la richiesta.
5. Perché osservare Network invece di affidarsi soltanto alla pagina visualizzata? ▾
Risposta: perché il browser può seguire redirect o mostrare pagine di errore personalizzate; Network consente di vedere il codice e gli header di ogni singola risposta.
COLLEGAMENTO CON CHROME DEVTOOLS

Isola gli stati 2xx, 3xx, 4xx e 5xx nel traffico del browser.

Apri la lezione del corso CHROME DEVTOOLS →