HTTP (HyperText Transfer Protocol)
HTTP è il protocollo di livello applicativo utilizzato per trasferire le risorse Web (pagine o elementi di pagina) da server a client
Gestisce sia le richieste (URL) inviate al server che le risposte inviate al client (pagine)
<aside>
<img src="/icons/exclamation-mark_purple.svg" alt="/icons/exclamation-mark_purple.svg" width="40px" /> Protocollo stateless: né il server né il client mantengono, a livello di protocollo, informazioni relative ai messaggi precedentemente scambiati
</aside>
HTTP: terminologia
- client: programma applicativo che stabilisce una connessione al fine di inviare delle richieste
- server: programma applicativo che accetta connessioni al fine di ricevere richieste ed inviare specifiche risposte con le risorse richieste
- connessione: circuito virtuale stabilito a livello di trasporto tra due applicazioni per fini di comunicazione
- messaggio: è l’unica base di comunicazione HTTP, è definita come una specifica sequenza di byte concettualmente atomica:
- request: messaggio HTTP di richiesta (client → server)
- response: messaggio HTTP di risposta (server → client)
- resource: oggetto di tipo dato univocamente definito
- URI: Uniform Resource Identifier - identificatore unico per una risorsa
- entity: rappresentazione di una risorsa, può essere incapsulata in un messaggio, tipicamente di risposta
Protocollo HTTP
- TCP è responsabile di assicurarsi che un file mandato da un nodo all’altro venga ricevuto come file completo, anche se il file è diviso in pacchetti quando viene inviato
- IP è il protocollo che indirizza i pacchetti da un nodo all’altro fino alla loro destinazione
- HTTP è un protocollo network che ha caratteristiche specifiche al Web, ma dipende dal TCP/IP per far arrivare la richiesta e la risposta da un posto all’altro
HTTP
Almeno per v1.0: protocollo request-response, stateless, one-shot
Sia le richieste al server che le risposte ai client sono trasmesse usando stream TCP
Segue uno schema di questo tipo: