Una pagina WordPress raramente è un solo file: c’è l’HTML, poi decine di fogli di stile, script, immagini e font. Con HTTP/1.1 ogni connessione gestisce una sola richiesta alla volta, quindi il browser deve aprire più connessioni e mettere le richieste in coda. HTTP/2 e poi HTTP/3 sono nati per trasportare in modo più efficiente questi tanti piccoli scambi, senza cambiare il significato delle richieste: metodi, codici di risposta e header restano gli stessi.
HTTP/2: il multiplexing
HTTP/2, oggi descritto dalla RFC 9113 (che sostituisce la RFC 7540), divide i messaggi in frame binari. Ogni scambio diventa un flusso (stream) e molti flussi viaggiano contemporaneamente su un’unica connessione: un flusso lento non blocca più gli altri. Gli header, molto ripetitivi da una richiesta all’altra, vengono compressi con HPACK.
La RFC riconosce un limite: il blocco head-of-line di TCP resta irrisolto. Se un pacchetto va perso, TCP trattiene tutto ciò che segue finché non viene ritrasmesso, e tutti i flussi restano in attesa. Per HTTP/2 su TLS lo standard impone TLS 1.2 o successivo, e la documentazione di Apache ricorda che la maggior parte dei browser usa HTTP/2 solo con indirizzi https.

HTTP/3: cambiare protocollo di trasporto
HTTP/3 (RFC 9114) riprende lo stesso modello, ma su QUIC (RFC 9000), un protocollo di trasporto sicuro che viaggia in datagrammi UDP. QUIC gestisce da sé i flussi: sono indipendenti, e una perdita rallenta solo il flusso interessato. La cifratura TLS 1.3 fa parte dell’handshake, il che riduce i viaggi di andata e ritorno prima del primo byte, e una connessione può sopravvivere a un cambio di rete, per esempio dal Wi-Fi al 4G. La compressione degli header passa a QPACK.
Il browser scopre HTTP/3 grazie all’header Alt-Svc, inviato durante una prima connessione in HTTP/2 o HTTP/1.1: segnala che lo stesso sito risponde anche in h3, su una porta UDP. Se un firewall blocca UDP, il browser resta semplicemente in HTTP/2.
Per WordPress
- Controlla la versione usata nella scheda Rete degli strumenti per sviluppatori del browser (colonna Protocollo: h2 o h3).
- La via più semplice è spesso una CDN, che parla HTTP/3 con i visitatori qualunque sia il tuo server. Anche LiteSpeed lo offre; per Nginx, il modulo HTTP/3 esiste dalla versione 1.25.0 ed è ancora presentato come sperimentale dalla documentazione.
- Su Apache, HTTP/2 passa da mod_http2 e dalla direttiva
Protocols h2 http/1.1; la documentazione consiglia l’MPM event, perché con prefork una connessione gestisce una sola richiesta alla volta. - Apri la porta UDP 443 nel firewall del server se attivi HTTP/3 in autonomia.
L’effetto sulle prestazioni dipende dal sito, dalla rete e dal numero di file; i segnali di performance considerati da Google sono trattati nel nostro articolo HTTPS, HSTS e header di sicurezza.