Keep-Alive
Keep-Alive est un en-tête HTTP qui permet à un serveur web d’utiliser une seule connexion pour plusieurs requêtes provenant d’un navigateur web. Les serveurs utilisant HTTP/1 ont souvent la fonction keep-alive activée pour améliorer les performances d’un site web. L’en-tête keep-alive n’est pas utilisé avec HTTP/2, car il s’agit du comportement par défaut du protocole HTTP/2.
Lorsque Keep-Alive est activé sur un serveur web, il crée des connexions persistantes entre le serveur et les clients (les visiteurs du site web). La connexion TCP reste ouverte jusqu’à sa fermeture ou son expiration. Comme chaque connexion TCP doit effectuer un processus de poignée de main, plusieurs connexions augmentent le temps de chargement de la page. Keep-Alive permet aux navigateurs de télécharger toutes les ressources d’une page web, comme les images et les fichiers CSS, sur une seule connexion.
L’inconvénient de Keep-Alive est qu’il nécessite davantage de ressources système de la part du serveur web. Si les sites web hébergés sur un serveur reçoivent beaucoup de trafic, celui-ci peut avoir plusieurs — voire plusieurs milliers — de connexions persistantes ouvertes simultanément. À terme, le serveur peut ne plus être capable de gérer de nouvelles connexions et devenir non réactif. Apache fournit les directives suivantes pour empêcher les serveurs d’atteindre leur capacité maximale :
- KeepAliveTimeout - durée maximale pendant laquelle une connexion persistante peut rester ouverte en attendant de nouvelles requêtes
- MaxKeepAliveRequests - nombre maximal de requêtes autorisées sur une seule connexion avant qu’elle doive être réinitialisée
Pour activer keep-alive sur un serveur Apache, ajoutez le code suivant à un fichier d’inclusion valable pour l’ensemble du serveur ou au fichier .HTACCESS d’un site web spécifique :
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Testez vos connaissances