L’HTTP (HyperText Transfer Protocol) è il protocollo di rete al livello applicativo (livello 7 del modello OSI) che costituisce le fondamenta dello scambio di dati nel World Wide Web. È stato sviluppato all’inizio degli anni ‘90 per permettere la trasmissione di documenti HTML, ma oggi veicola qualsiasi tipo di contenuto multimediale o chiamata API (es. REST).
Il protocollo si basa su un’architettura Client-Server: un client (tipicamente un browser web) invia una richiesta (Request) a un server in ascolto, il quale elabora l’informazione e restituisce una risposta (Response). Entrambi i messaggi contengono un header (metadati come Content-Type, User-Agent, cookie) e, opzionalmente, un body (il payload dei dati effettivi).
I metodi di richiesta HTTP definiscono l’azione desiderata:
- GET: richiede una risorsa senza alterarne lo stato (idempotente).
- POST: invia dati al server per creare o modificare una risorsa.
- PUT: sostituisce interamente una risorsa esistente.
- DELETE: rimuove la risorsa specificata.
L’HTTP è nativamente uno strato stateless (senza stato): il server non conserva traccia delle richieste precedenti dello stesso client. Per mantenere sessioni interattive (come un login o un carrello e-commerce), si fa uso di meccanismi ausiliari come i cookie o i token.
Nella sua versione standard su porta 80, l’HTTP trasmette dati in chiaro. Per la sicurezza in ingegneria delle reti si impiega l’HTTPS (porta 443), che incapsula le chiamate HTTP all’interno di un tunnel crittografato SSL/TLS, garantendo confidenzialità, integrità e autenticazione del server.