Cos’è il Keep Alive?
Keep alive è un metodo che consente una conversazione server-client HTTP sulla stessa connessione TCP, invece che aprirne una per ogni nuova richiesta. In altre parole, è una comunicazione tra il web server e il browser che dichiara “puoi scaricare più di un file alla volta”. Il Keep Alive viene anche chiamato “Connessione persistente/persistant connection” e permette di ridurre i tempi di download delle risorse necessarie a comporre una pagina web.
Come abilitare il keep-alive
Il messaggio Keep-alive è abilitato utilizzando l’intestazione HTTP “Connection: Keep-Alive”. Se il keep-alive non è abilitato, è probabile che le intestazioni HTTP del tuo sito web dichiarino connection:close. Cambia l’intestazione in connection: keep-alive per abilitare il keep-alive.
L’abilitazione del keep-alive dipende da quale server si utilizza e da ciò a cui è possibile accedere. Vediamo i metodi più comuni qui sotto.
Abilitare il keep-alive con il file .htaccess
Se non si dispone dell’accesso al file di configurazione del web server, è possibile abilitare l’utilizzo del keep-alive attraverso il file .htaccess.
<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>
Inserendo questa direttiva al tuo file .htaccess, il web server aggiungerà le intestazioni del keep-alive, che sovrascrive la maggior parte delle regole del server o dell’hosting provider.
Abilitare il keep-alive su Apache
Se è possibile accedere al file di configurazione di Apache, è possibile abilitare il keep-alive in modo permanente.
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 100
Abilitare il keep-alive su Nginx
Il keep-alive è gestito dal modulo HttpCoreModule. C’è una direttiva specifica che devi verificare: keepalive_disable. Se vedi questa direttiva, assicurati di sapere perché sta disattivando il keep-alive prima di rimuoverla.
Come verificare il keep-alive?
Gli strumenti per la verifica dei tempi di caricamento delle pagine mostrano sempre se il keep-alive è attivo o meno:
Perché viene usato il keep-alive?
Per visualizzare le pagine web un browser deve richiedere i file da un web server. C’è una breve comunicazione in cui il browser richiede un file e il web server risponde in modo affermativo o negativo. Il browser ottiene il file HTML e lo legge e poi richiederà altri file con riferimenti nell’HTML: come CSS, Javascript o immagini.
Le pagine web sono spesso composte da una raccolta di molti file e, se una per ciascun file fosse necessario aprire una nuova connessione, il caricamento della pagina potrebbe richiedere molto più tempo. Quando keep-alive non è abilitato, questo processo può aumentare il tempo necessario per scaricare le risorse del server.
Perché il keep-alive non è già attivato?
Alcuni webmaster credono erroneamente di non doversi preoccupare del keep-alive perché le connessioni HTTP al giorno d’oggi sono per impostazione predefinita persistenti (keep-alive abilitato). Questo è in parte vero, ma molte persone utilizzano ambienti di hosting condivisi o web server che potrebbero chiudere le connessioni ad insaputa dell’utente. Questo è dovuto principalmente a motivi di prestazioni e, dal momento che milioni di pagine sono ospitate in ambienti condivisi, è importante verificare il comportamento del proprio web server con gli strumenti sopra citati.