Keep-Alive
Keep-Alive è un'intestazione HTTP che consente a un server web di usare una singola connessione per più richieste da parte di un browser web. I server che eseguono HTTP/1 spesso hanno Keep-Alive attivato per migliorare le prestazioni del sito web. L'intestazione keep-alive non viene usata in HTTP/2, poiché è il comportamento predefinito del protocollo HTTP/2.
Quando Keep-Alive è abilitato su un server web, crea connessioni persistenti tra il server e i client (i visitatori del sito web). La connessione TCP rimane aperta finché non viene chiusa o non scade. Poiché ogni connessione TCP deve completare un processo di handshake, più connessioni aumentano il tempo di caricamento della pagina. Keep-Alive consente ai browser di scaricare tutti gli elementi della pagina web, come immagini e file CSS, attraverso una singola connessione.
Lo svantaggio di Keep-Alive è che richiede più risorse di sistema al server web. Se i siti web presenti su un server ricevono molto traffico, il server potrebbe avere contemporaneamente aperte diverse connessioni persistenti, forse diverse migliaia. Alla fine, il server potrebbe non essere più in grado di gestire nuove connessioni e diventare non responsivo. Apache fornisce le seguenti direttive per impedire ai server di raggiungere la capacità massima:
- KeepAliveTimeout - il tempo massimo durante il quale una connessione persistente può rimanere aperta in attesa di nuove richieste
- MaxKeepAliveRequests - il numero massimo di richieste consentite all'interno di una singola connessione prima che debba essere reimpostata
Per abilitare keep-alive su un server Apache, aggiungere il seguente codice a un file include valido per l'intero server o al file .HTACCESS di un sito web specifico:
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Metti alla prova le tue conoscenze