- Riconoscere le parti fondamentali di una richiesta HTTP.
- Distinguere metodo, target, header e corpo opzionale.
- Utilizzare DevTools per analizzare una richiesta reale.
- Distinguere i dati della richiesta da quelli della risposta.
Che cos’è una richiesta HTTP
Concetto: messaggio del client | Contesto: comunicazione Web
Una richiesta HTTP è il messaggio con cui un client (per esempio il browser) chiede al server di eseguire un’operazione su una risorsa. La richiesta specifica che cosa fare (metodo), su quale risorsa (target), quali informazioni aggiuntive trasmettere (header) e, se necessario, quali dati inviare (corpo).
Quando apri una pagina, il browser può inviare una richiesta per il documento HTML e altre richieste per CSS, immagini e JavaScript. Ogni richiesta riceve normalmente una risposta HTTP.
Le parti di una richiesta HTTP/1.1
Concetto: riga iniziale, header, corpo | Contesto: esempio testuale
In HTTP/1.1, il formato testuale del messaggio permette di riconoscere quattro elementi. HTTP/2 e HTTP/3 conservano il significato delle richieste, ma codificano i messaggi in modo diverso.
GET /prodotti?categoria=router HTTP/1.1
Host: esempio.test
Accept: text/html
User-Agent: BrowserDidattico/1.0
| Elemento | Significato | Nell’esempio |
|---|---|---|
| Metodo | Operazione richiesta. | GET |
| Target | Percorso e parametri della risorsa. | /prodotti?categoria=router |
| Versione | Versione della sintassi del messaggio. | HTTP/1.1 |
| Header | Informazioni aggiuntive in forma nome: valore. | Host, Accept |
| Riga vuota | Termina gli header e separa l’eventuale corpo. | Subito dopo User-Agent |
| Corpo | Dati opzionali della richiesta. | Assente nell’esempio |

Interpretare metodo e target
Concetto: GET e percorso | Contesto: URL della risorsa
Nell’esempio GET /prodotti?categoria=router HTTP/1.1, il metodo è GET, il percorso è /prodotti e il parametro di query è categoria=router. Il nome dell’host è indicato dall’header Host.
esempio.test la rappresentazione della risorsa /prodotti, selezionando la categoria router.In una richiesta POST è frequente la presenza di un corpo, per esempio dati di un modulo. Il corpo non è obbligatorio per tutte le richieste e la presenza di un corpo non dipende esclusivamente dal metodo.
Gli header più comuni
Concetto: metadati della richiesta | Contesto: browser e server
| Header | Che cosa indica |
|---|---|
Host | Host e, se necessario, porta del server richiesto in HTTP/1.1. |
Accept | Tipi di contenuto che il client può accettare. |
Accept-Language | Preferenze linguistiche del client. |
User-Agent | Identificativo dichiarato dal software client. |
Content-Type | Tipo dei dati nel corpo, quando presente. |
Nei DevTools puoi osservare gli header della richiesta anche se la connessione usa HTTP/2 o HTTP/3. In questi casi il browser mostra una rappresentazione interpretata dei campi, non necessariamente i byte del messaggio trasmessi sulla rete.
Analizzare una richiesta HTTP con DevTools
Individuare metodo, URL e header di una richiesta reale e riconoscere l’eventuale corpo.
Obiettivo: identificare gli elementi di una richiesta HTTP in una navigazione reale e distinguerli dai dati della risposta.
Software: Google Chrome o Microsoft Edge con DevTools; durata stimata: 20 minuti.
Prerequisiti: connessione Internet e conoscenza di base degli URL. Non è necessario installare software aggiuntivo.
Procedura passo passo
- Apri il browser e premi
F12(oppureCtrl+Shift+I; su macOSCmd+Option+I). - Seleziona la scheda Network (Rete). Se non compare, cercala nel menu delle schede aggiuntive.
- Attiva Preserve log se vuoi conservare le richieste dopo la navigazione. Seleziona Disable cache mentre DevTools è aperto, per rendere più semplice l’osservazione.
- Digita
https://example.com/nella barra degli indirizzi e premi Invio. - Nella tabella Network seleziona il filtro Doc e individua la richiesta del documento principale. Se la tabella è vuota, ricarica la pagina.
- Fai clic sulla richiesta e apri Headers. Nella sezione General cerca Request URL, Request Method e Status Code.
- Scorri fino a Request Headers. Individua almeno due header realmente presenti e annota i loro valori.
- Controlla se è presente la scheda Payload. Per questa richiesta GET di norma non contiene dati da inviare; la sua assenza non indica un errore.
- Apri la scheda Response e osserva il contenuto ricevuto. Ricorda che si tratta del corpo della risposta, non del corpo della richiesta.
- Compila la tabella di verifica e confronta i valori osservati con gli esempi sottostanti.
Esempio illustrativo (i valori reali possono differire):
General
Request URL: https://example.com/
Request Method: GET
Status Code: 200 OK
Request Headers
Accept: text/html,...
User-Agent: Mozilla/5.0 ...
Risultato essenziale: una richiesta del documento principale con metodo GET, un URL e una sezione di header. Il codice di stato può variare a causa di redirect o cache; non deve essere necessariamente 200.
In HTTP/2 e HTTP/3 non è obbligatorio trovare una riga testuale GET / HTTP/1.1 nei DevTools: il browser presenta metodo, URL e header come campi interpretati.
Verifica del risultato
| Elemento | Valore osservato | Che cosa significa |
|---|---|---|
| Request URL | Da annotare | Indirizzo completo richiesto |
| Request Method | Da annotare | Operazione del client |
| Un Request Header | Da annotare | Informazione aggiuntiva inviata |
| Status Code | Da annotare | Esito comunicato dal server |
Esercizio autonomo
Apri una seconda pagina pubblica a tua scelta, seleziona la richiesta del documento principale e registra metodo, URL, due header e codice di stato. Scrivi una frase che distingua chiaramente richiesta e risposta.
Risultato atteso: una tabella compilata con valori effettivamente visibili in DevTools; il metodo e gli header devono essere classificati come dati della richiesta, mentre il codice di stato come dato della risposta.
Verifica dei concetti
Concetto: struttura della richiesta | Contesto: metodi, header e corpo
Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.
1. Quali sono le parti principali di una richiesta HTTP/1.1? ▾
2. Il codice 200 fa parte della richiesta? ▾
3. A che cosa serve l’header Host? ▾
4. Una richiesta GET deve sempre avere un corpo? ▾
5. Qual è la differenza tra Payload e Response in DevTools? ▾
Osserva in Network metodo, URL, intestazioni e dati inviati dal client.
Apri la lezione del corso CHROME DEVTOOLS →