HTTP/2 è una versione di HTTP che mira a ridurre la latenza dei trasferimenti con più oggetti e a risolvere alcuni problemi di HTTP/1.1
A differenza delle versioni precedenti HTTP/2:
Il campo type può essere:
Campo | Descrizione |
---|---|
DATA |
Trasporta dati di uno stream |
HEADERS |
Apre uno stream |
PRIORITY |
Specifica priorità di uno stream |
RST_STREAM |
Termina uno stream |
SETTINGS |
Trasporta parametri di configurazione |
PUSH_PROMISE |
Gestisce il servizio di push |
PING,GOAWAY,WINDOWS_UPDATE,CONTINUATION |
Chiude una connessione |
Siccome l'header di una richiesta può avere dimensioni non trascurabili utilizziamo le seguenti tecniche per comprimerlo:
In HTTP2 lo scambio di frame tra client e server è organizzato in stream. Il server può inviare al client delle informazioni utili senza che ne faccia esplicita richiesta (server push). Questo è usato generalmente per i file HTML che richiedono oggetti aggiuntivi (CSS, JS, immagini, ecc).
Per encrittare la connessione HTTP possiamo utilizzare i protocolli SSL (Secure Socket Layer) e TLS (Transport Layer Security), che aggiungono confidenzialità, integrità e autenticazione alla connessioni TCP.
La procedura di connessione SSL/TLS si divide nei seguenti passaggi: