Keep-Alive
Keep-Alive es un encabezado HTTP que permite que un servidor web use una sola conexión para varias solicitudes de un navegador web. Los servidores que ejecutan HTTP/1 suelen tener activada la función keep-alive para mejorar el rendimiento del sitio web. El encabezado keep-alive no se usa en HTTP/2, ya que es el comportamiento predeterminado del protocolo HTTP/2.
Cuando Keep-Alive está activado en un servidor web, crea conexiones persistentes entre el servidor y los clientes (visitantes del sitio web). La conexión TCP permanece abierta hasta que se cierra o se agota el tiempo de espera. Como cada conexión TCP debe completar un proceso de negociación, varias conexiones aumentan el tiempo de carga de la página. Keep-Alive permite que los navegadores descarguen todos los recursos de una página web, como imágenes y archivos CSS, mediante una sola conexión.
La desventaja de Keep-Alive es que requiere más recursos del sistema del servidor web. Si los sitios web alojados en un servidor reciben mucho tráfico, este puede tener abiertas al mismo tiempo varias conexiones persistentes —posiblemente varios miles—. Con el tiempo, es posible que el servidor no pueda gestionar nuevas conexiones y deje de responder. Apache proporciona las siguientes directivas para evitar que los servidores alcancen su capacidad máxima:
- KeepAliveTimeout - el tiempo máximo que una conexión persistente puede permanecer abierta mientras espera nuevas solicitudes
- MaxKeepAliveRequests - el número máximo de solicitudes permitidas dentro de una sola conexión antes de que sea necesario restablecerla
Para activar keep-alive en un servidor Apache, agregue el siguiente código a un archivo de inclusión de todo el servidor o al archivo .HTACCESS de un sitio web específico:
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Pon a prueba tu conocimiento