Il Web funziona grazie all'HTTP (Hypertext Transfer Protocol). È un sistema efficiente che trasporta enormi quantità di dati (pagine, immagini, video, file) in modo rapido e sicuro, garantendo che le informazioni non vengano danneggiate.
Al centro del Web ci sono i client (come i browser) e i server (chiamati anche HTTP server). I client inviano HTTP request, i server rispondono con HTTP response contenenti i dati richiesti.
I contenuti online si chiamano risorse, che possono essere:
Poiché esistono tanti tipi di dati, HTTP usa i MIME types (Multipurpose Internet Mail Extensions) per etichettare i contenuti. Specificano il formato e aiutano il browser a capire come gestire il file.
| MIME Type | Descrizione |
|---|---|
text/plain |
Testo semplice |
text/html |
Pagina HTML |
image/jpeg |
Immagine JPEG |
image/png |
Immagine PNG |
video/quicktime |
Video QuickTime |
application/json |
Dati in formato JSON |
Ogni risorsa ha un nome unico chiamato URI (Uniform Resource Identifier), paragonabile a un indirizzo postale. I due tipi principali sono:
http://www.joes-hardware.com/specials/saw-blade.gifurn:ietf:rfc:2141I termini URI e URL sono spesso usati come sinonimi.
La comunicazione avviene tramite HTTP transaction, formata da una request (dal client) e una response (dal server).
Ogni request contiene un metodo HTTP, che specifica l'azione da eseguire:
| Metodo | Descrizione | Idempotente |
|---|---|---|
GET |
Richiede una risorsa | ✅ |
PUT |
Carica o sostituisce un file sul server | ✅ |
DELETE |
Elimina una risorsa | ✅ |
HEAD |
Richiede solo le intestazioni, non il contenuto | ✅ |
OPTIONS |
Richiede i metodi supportati dal server | ✅ |
POST |
Invia dati a un'applicazione del server (es. form) | ❌ |
PATCH |
Modifica parziale di una risorsa | ❌ |
Metodi idempotenti — se ripetuti più volte, producono lo stesso risultato della prima richiesta. Metodi non idempotenti — ripetere la richiesta può portare a risultati diversi o effetti collaterali (es. POST crea una nuova risorsa a ogni chiamata).