Il protocollo HTTP — caratteristiche principali
Il protocollo HTTP (HyperText Transfer Protocol) è alla base della comunicazione Web e consente lo scambio di risorse tra client e server. Nasce per lo scambio di pagine HTML, ma oggi viene usato per trasferire qualsiasi tipo di risorsa: immagini, file, dati JSON, video in streaming.
Struttura di una HTTP Request
Ogni richiesta HTTP segue una struttura precisa e ben definita, composta da tre parti principali:
Esempio reale di HTTP Request
GET /profgiagnotti.it/learn HTTP/1.1 Accept: image/gif, image/jpeg, image/png, */* Accept-Language: it Accept-Encoding: gzip, deflate If-Modified-Since: Fri, 14 Mar 2025 10:54:03 GMT User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Categorie di header HTTP
Informazioni sulla trasmissione, es. Transfer-Encoding
Tipo e scadenza del contenuto, es. Content-Type, Expires
Browser e host richiesto, es. User-Agent, Host
Tipo di server e autenticazione, es. Server, WWW-Authenticate
Struttura di una HTTP Response
La risposta del server ha una struttura simile alla richiesta, con una prima riga che cambia: al posto del metodo troviamo la versione del protocollo e il codice di stato.
HTTP/1.1 200 OK Transfer-Encoding: chunked Date: Sat, 28 Nov 2021 04:33:04 GMT Server: Apache/1.4 Connection: close Expires: Sat, 28 Nov 2021 05:33:04 GMT Cache-Control: max-age=3600, public Content-Type: text/html <HTML> <HEAD><TITLE>Il protocollo HTTP</TITLE></HEAD> <BODY> <h1>Benvenuti alla lezione sul protocollo HTTP!</h1> </BODY> </HTML>
L’URI — Uniform Resource Identifier
Un URI è un identificatore univoco di una risorsa in rete. La sua struttura è:
https://profgiagnotti.it/lezioni/networking/http
- HTTP è stateless: ogni richiesta è indipendente, il server non ricorda le precedenti
- La prima riga della request contiene: metodo, URI e versione del protocollo
- Gli header trasportano metainformazioni; il body (opzionale) contiene i dati
- La response inizia con versione + codice di stato (es.
200 OK,404 Not Found)