Cos'e HTTP/2
HTTP/2 e l'evoluzione di HTTP/1.1, standardizzata nel 2015. Risolve i limiti del protocollo precedente introducendo multiplexing, header compression (HPACK), server push (oggi deprecato), stream prioritization. Tutte le request viaggiano binario su una singola connessione TCP.
Il problema di HTTP/1.1
HTTP/1.1 e text-based e sequenziale per connessione: una request alla volta. Per ovviare i browser aprono 6 connessioni parallele per host, ma e ancora poco. Head-of-line blocking: se una request si blocca, blocca quelle dietro. Per workaround: sharding (immagini su CDN separati), sprite, concatenation.
Multiplexing: la rivoluzione
HTTP/2 invia tutte le richieste come stream identificati su una singola connessione TCP. Centinaia di file paralleli, nessun limite pratico. I frame possono interleavarsi: una request lunga non blocca quelle veloci. Sharding non e più necessario e diventa controproducente.
HPACK: header compression
HTTP/1.1 invia header in chiaro per ogni request: cookie, user-agent, accept (200-2000 byte ogni volta). HPACK comprime con tabella dinamica: header già inviati sono referenziati con indice, nuovi compressi con Huffman. Risparmio 80-95% sui byte header.
Stream prioritization
Ogni stream HTTP/2 ha priorità (peso 1-256) e dipendenze. Il browser dice al server: prima il CSS critico (peso 256), poi JS (180), immagini below-fold (100). Il server invia frame nell'ordine ottimale. Funziona bene se implementato correttamente (alcuni server hanno bug).
Come abilitare HTTP/2
Server: Nginx 1.9.5+, Apache 2.4.17+ con mod_http2, IIS 10+, Caddy. Richiede HTTPS (TLS 1.2+). Nginx: listen 443 ssl http2;. Verifica con: curl -I --http2 https://example.com (cerca HTTP/2 nella risposta). Tool online: http2.pro/check. Tutti i browser moderni supportano HTTP/2.
Hai bisogno di aiuto?
Se vuoi un sito veloce ottimizzato dal team di G Tech Group, scrivici tramite il modulo di contatto.