Passa al contenuto principale

HTTP/2 e HTTP/3: più veloci, ma vale la pena abilitarle? Pro, contro e configurazione

· 4 minuti di lettura
Customer Care Engineer

http2-vs-http3-speed-pros-cons-configuration

I moderni protocolli HTTP/2 e HTTP/3 possono accelerare in modo significativo il caricamento del sito, migliorare l'esperienza utente e aumentare il posizionamento sui motori di ricerca. Ma non tutto è così semplice: hanno sia vantaggi che svantaggi. Comprendiamo cosa sono questi protocolli, i loro pro e contro, e come abilitarli sul tuo server.


Cosa sono HTTP/2 e HTTP/3?

HTTP/2 è una versione aggiornata del protocollo HTTP/1.1 che consente di caricare più risorse del sito web in parallelo anziché una alla volta. Ciò accelera i tempi di risposta e riduce il carico sul server.

HTTP/3 è una versione ancora più avanzata che utilizza il protocollo QUIC sopra UDP. Crea connessioni più stabili, soprattutto in condizioni di rete scadenti.


Vantaggi

  1. HTTP/2
  • Caricamento parallelo (multiplexed) delle risorse del sito.
  • Latenza ridotta tramite compressione degli header.
  • Risparmio di traffico.
  1. HTTP/3
  • Rapido stabilimento della connessione con ritardo minimo.
  • Resilienza alla perdita di pacchetti (particolarmente importante per internet mobile).
  • Prestazioni eccellenti su reti instabili.

Abilitando questi protocolli, accelererai il tuo sito, lo renderai più facile da usare e otterrai un vantaggio SEO.


Svantaggi

  1. Compatibilità
  • HTTP/2 e HTTP/3 non sono supportati da browser e dispositivi più vecchi. Ad esempio, alcune versioni di Internet Explorer e dispositivi Android più vecchi non possono sfruttare questi protocolli.
  • HTTP/3 dipende da UDP, che può essere bloccato da alcuni firewall e filtri di rete.
  1. Complessità di configurazione
  • Una configurazione errata di HTTP/2 può peggiorare le prestazioni (ad esempio, se la prioritizzazione degli stream non viene utilizzata).
  • HTTP/3 richiede una versione aggiornata di Nginx, OpenSSL e supporto QUIC, il che può essere impegnativo su server più vecchi.
  1. Consumo di risorse
  • HTTP/3 è più esigente in termini di risorse del server, in particolare con un gran numero di connessioni.
  1. Dipendenza da HTTPS
  • HTTP/2 funziona solo su HTTPS, il che aumenta la complessità e il costo della configurazione e della manutenzione dei certificati.
  1. HTTP/1.1 e prestazioni con HTTP/2/3
  • HTTP/2 e HTTP/3 non escludono il supporto per HTTP/1.1. Ciò può ridurre leggermente le prestazioni, ma non causa problemi critici, poiché HTTP/1.1 viene utilizzato solo per i client che non supportano i protocolli più moderni.

Come abilitare HTTP/2 e HTTP/3 in Nginx

informazioni

Se stai utilizzando un pannello di controllo, ad esempio FASTPANEL, puoi abilitare HTTP/2 e HTTP/3 per il tuo sito nelle impostazioni del sito senza modificare manualmente il suo file di configurazione.

  1. Verifica della compatibilità

Connettiti al tuo server tramite SSH.

Verifica la versione corrente di Nginx:

sudo nginx -v

Per HTTP/3, è richiesta la versione 1.25.0 o superiore.

Verifica la versione corrente di OpenSSL:

openssl version

Per lavorare con HTTP/3, hai bisogno della versione 3.0.0 o superiore di OpenSSL, poiché le versioni precedenti non supportano QUIC.

Inoltre, prima di apportare modifiche alla configurazione di nginx, assicurati che non ci siano errori:

nginx -t

Se tutto va bene (puoi ignorare i messaggi "warn"), vedrai:

nginx: la sintassi del file di configurazione /etc/nginx/nginx.conf è corretta

nginx: test del file di configurazione /etc/nginx/nginx.conf completato con successo
  1. Configura HTTP/2

Apri il file di configurazione del tuo sito in un editor di testo:

sudo nano /etc/nginx/sites-available/your-site.conf

Aggiungi la direttiva http2 alla riga listen 443 ssl e aggiungi la riga http2 on all'interno del blocco server, in modo che assomigli a questo:

server {

listen 443 ssl http2;

server_name example.com;



ssl_certificate /path/to/fullchain.pem;

ssl_certificate_key /path/to/privkey.pem;



http2 on;


resto del file di configurazione

}
warning

Nota che è necessario un certificato SSL valido affinché HTTPS e HTTP/2 funzionino.

Riavvia il server web per applicare le modifiche:

systemctl restart nginx
  1. Configura HTTP/3

Analogamente al passaggio precedente, apri il file di configurazione del tuo sito e modificalo in modo che assomigli a questo:

server {

listen 443 ssl http2;

listen 443 quic reuseport;

server_name example.com;



ssl_certificate /path/to/fullchain.pem;

ssl_certificate_key /path/to/privkey.pem;



http2 on;



ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

add_header Alt-Svc 'h3=":443"; ma=86400';


resto del file di configurazione

}

Qui:

  • listen 443 quic reuseport; — abilita HTTP/3 (QUIC) sulla porta 443 e migliora le prestazioni con carichi di connessione elevati.
  • ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; — specifica le versioni TLS per la crittografia. Per una migliore sicurezza, si consiglia di utilizzare solo TLSv1.2 e TLSv1.3.
  • add_header Alt-Svc 'h3=":443"; ma=86400'; — questo header indica ai browser che il server supporta HTTP/3 e memorizza queste informazioni per 24 ore.
warning

Il parametro reuseport può essere utilizzato una sola volta nella configurazione del server Nginx. Tentare di specificarlo più volte per diverse direttive listen causerà conflitti e un funzionamento improprio del server.

Esegui quindi un ulteriore controllo di compatibilità per la tua versione di nginx con queste direttive, nonché un controllo di sintassi:

nginx -t

Se tutto va bene (puoi ignorare i messaggi "warn"), vedrai:

nginx: la sintassi del file di configurazione /etc/nginx/nginx.conf è corretta

nginx: test del file di configurazione /etc/nginx/nginx.conf completato con successo

Riavvia Nginx per applicare le modifiche:

systemctl restart nginx

Conclusione

HTTP/2 e HTTP/3 sono un passo verso il futuro, accelerano i tempi di caricamento del sito, migliorano la SEO e rendono la tua risorsa più utilizzabile. Tuttavia, è importante considerare la compatibilità, il consumo di risorse e la complessità di configurazione.

Se la maggior parte dei tuoi utenti utilizza browser moderni, inizia abilitando HTTP/2. Passa poi a HTTP/3 se sei pronto ad aggiornare il software del tuo server e sei sicuro della compatibilità della tua infrastruttura.

Se preferisci non configurare questi protocolli manualmente, puoi scegliere un server con il FASTPANEL gratuito, dove abilitare HTTP/2 e HTTP/3 per il tuo sito è semplice e conveniente.