HTTP (HyperText Transfer Protocol) è un protocollo di comunicazione utilizzato per la trasmissione di dati tra un client (esempio: browser) e un server web.
È alla base della navigazione su Internet e permette ai browser di richiedere e ricevere risorse (come pagine HTML, immagini e video) da un server.
Quando un utente inserisce un URL nel browser, il protocollo HTTP definisce il modo in cui il browser e il server comunicano per caricare la pagina richiesta.
Il protocollo si basa su un modello richiesta-risposta: il client invia una richiesta al server, il quale risponde inviando i dati richiesti o segnalando eventuali errori.
HTTP è un protocollo stateless, il che significa che ogni richiesta è indipendente dalle altre e non viene mantenuto uno stato tra una comunicazione e l’altra.
Cos’è una richiesta HTTP
Una richiesta HTTP è il messaggio inviato dal client (esempio: browser) al server per richiedere una specifica risorsa. La richiesta include diverse componenti:
- Metodo HTTP: definisce l’azione da eseguire (esempio:
GET,POST,PUT,DELETE); - URL: identifica la risorsa richiesta (esempio:
/pagina.html); - Header: contengono informazioni aggiuntive sulla richiesta (esempio: tipo di browser o tipo di dati accettati);
- Body: nei metodi come
POSToPUT, contiene i dati inviati al server.
Esempio di richiesta:
pgsqlCopiaModificaGET /index.html HTTP/1.1
Host: www.esempio.com
User-Agent: Mozilla/5.0
In questo caso, il browser sta richiedendo la pagina index.html al server www.esempio.com utilizzando il metodo GET.
Cos’è una risposta HTTP
Una risposta HTTP è il messaggio inviato dal server al client in risposta a una richiesta. La risposta contiene:
- Codice di stato: indica l’esito della richiesta (esempio:
200 OK,404 Not Found,500 Internal Server Error); - Header: forniscono informazioni sulla risposta (esempio: tipo di contenuto, lunghezza del file);
- Body: contiene i dati richiesti (esempio: il codice HTML di una pagina).
Esempio di risposta:
yamlCopiaModificaHTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>...</html>
In questo caso, il server risponde con un codice di stato 200 OK, segnalando che la richiesta è stata eseguita correttamente e restituendo il codice HTML della pagina richiesta.
Differenze tra HTTP e HTTPS
La principale differenza tra HTTP e HTTPS riguarda la sicurezza nella trasmissione dei dati:
- HTTP: trasferisce i dati in formato testo non criptato, rendendo le informazioni vulnerabili a intercettazioni e attacchi di tipo man-in-the-middle;
- HTTPS: utilizza un protocollo di sicurezza chiamato TLS/SSL (Transport Layer Security/Secure Sockets Layer) per crittografare i dati durante la trasmissione, proteggendo le informazioni da accessi non autorizzati;
- Certificato SSL: per utilizzare il protocollo più sicuro, è necessario installare un certificato SSL sul server, che autentica l’identità del sito e abilita la crittografia.
Un sito HTTPS è riconoscibile dalla presenza del lucchetto accanto all’URL nella barra del browser, mentre un sito HTTP viene spesso segnalato come non sicuro.
