I browser, per visualizzare una pagina web, devono scaricare un documento HTML. Effettuata questa operazione, il client rileva e scarica eventuali altre risorse quali script, file multimediali e CSS. Tale operazione di download può avvenire o meno tramite una nuova connessione TCP. Un’azione facoltativa che dipende dalla versione http e che richiede risorse e tempo. L’ottimizzazione di tale procedura tramite l’HTTP Keep-Alive comporta una diminuzione dei tempi di visualizzazione e performance del sito di gran lunga migliori.
Come funziona Keep-Alive?
Con Keep-Alive, modalità operativa del protocollo http, è possibile scaricare molteplici risorse tramite la stessa connessione TCP.
L’immagine mostra un chiaro confronto tra le due possibili situazioni.
Nell’immagine a destra (Keep-Alive disabled) caso abbiamo delle connessioni multiple:
- Apertura connessione
- Invio richiesta da parte del client
- Risposta del server
- Chiusura connessione
Una procedura che va ripetuta per ogni risorsa presente sulla pagina
Nell’immagine a sinistra (Keep-Alive enabled) la connessione è persistente:
- Apertura connessione (solo una volta)
- Invio richiesta da parte del client
- Risposta del server
- Chiusura del server solo alla fine e solo dopo che si è concluso lo scambio client server.
Abilitazione di Keep-Alive
Dalla versione http 1.1 Keep-Alive è abilitato di default. Nelle versioni precedenti (http 1.0) l’abilitazione va effettuata in manuale tramite il file .htaccess inserendo la seguente direttiva:
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
Una verifica dello stato Keep-Alive può essere effettuata utilizzando Gift Of Speed
Conclusioni
L’uso di Keep-Alive consente di utilizzare più volte la stessa connessione TCP per il caricamento di più elementi di una pagina web. I benefici sono scontati: sito più veloce, migliore user experience, migliore ranking sui motori di ricerca.