Come sappiamo, quando un client visualizza una pagina, ne scarica il documento HTML. All’interno di questo file, il browser rileva eventuali altre risorse da scaricare, come script, CSS, file multimediali.

Per ogni risorsa da scaricare, il protocollo HTTP può richiedere l’apertura o meno, di una nuova connessione TCP.

Perchè può farlo o non farlo?
Perchè dipende dalla versione di HTTP utilizzata; lo vedremo nel dettaglio tra poco.

Il punto è che l’apertura di una connessione TCP costa in termini di prestazioni e di tempo, quindi è nostro compito ottimizzare il nostro sito Web anche da questo punto di vista.

In questo articolo vedremo in che modo l'HTTP Keep-Alive ottimizza le richieste TCP, e come attivarlo.

Cos’è l’HTTP Keep-Alive?

Sostanzialmente il Keep-Alive (o HTTP Persistent Connection) permette di scaricare più risorse, all’interno della stessa connessione TCP.

HTTP Keep Alive

Come possiamo vedere dall’immagine, il confronto tra le due situazioni è abbastanza semplice.

Connessioni multiple

  1. Apertura connessione;
  2. Il client invia la richiesta;
  3. Il server risponde;
  4. Connessione chiusa.

Questi quattro passi vengono ripetuti ad ogni download di un elemento della pagina.

Connessioni persistenti (Keep-Alive)

Dopo aver aperto la connessione:

  1. Il client invia la richiesta;
  2. Il server risponde;

I due passi sono ripetuti per ogni elemento, finchè non c’è più niente da scaricare, e la connessione viene chiusa.

Quando è abilitato di default?

Il Keep-Alive è abilitato di default in HTTP1.1, mentre in HTTP1.0 non c'è alcuna specifica ufficiale, e deve essere abilitato manualmente.

Come abilitare il Keep-Alive?

Keep-Alive si può attivare da .htaccess con questa direttiva:

<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>

Questa direttiva modifica l'header HTTP, impostando il valore di Connection a Keep-Alive. Quando si lavora con connessioni multiple, il valore è Close.

Puoi verificare lo stato di Keep-Alive con lo strumento dedicato di Gift Of Speed.

Conclusioni

Come abbiamo visto poco fa, il Keep-Alive consente di riutilizzare la stessa connessione TCP per più elementi della pagina.

Questo porta a diversi benefici dal punto di vista della velocità del sito Web (molto utile se la connessione è cifrata: HTTPS), con riscontri positivi anche nell'esperienza utente.

Ora prova ad abilitare Keep-Alive ed analizzare le tue pagine, per vedere di quanto hai migliorato il tuo sito.

Prima di chiudere questa pagina, che ne dici di condividere l'articolo?