Una conexión persistente (conexión persistente HTTP) es un canal de comunicación de red que permanece abierto para más solicitudes y respuestas HTTP en lugar de cerrarse después de un único intercambio.
HTTP tiene una función de conexión persistente que permite que el canal permanezca abierto en lugar de cerrarse después de un intercambio de datos solicitado. TCP es un protocolo orientado a la conexión: inicia una conexión después de la confirmación de ambos extremos de que están disponibles y abiertos a un intercambio de datos. En una conexión no persistente, el canal se cierra cuando un host indica que desea finalizar las comunicaciones o cuando ha transcurrido cierto tiempo sin intercambio de datos. Para mantener una conexión persistente, se envían paquetes TCP Keep-Alive para evitar que se agote el tiempo de espera de la conexión.
Una conexión abierta es más rápida para intercambios frecuentes de datos. La sobrecarga de comunicaciones se ahorra dejando una conexión abierta en lugar de abrir y cerrar sesiones para cada solicitud. Las conexiones persistentes también se pueden utilizar con API para permitir que los servidores envíen datos a los clientes. Otros beneficios de las conexiones persistentes incluyen la reducción de la congestión de la red, la latencia y el uso de CPU y memoria debido al menor número de conexiones; Los errores también se pueden informar sin cerrar la conexión.
Las conexiones persistentes agregadas para HTTP 1.0 utilizaron un encabezado adicional para solicitar al cliente que mantuviera viva la conexión; HTTP 1.1 asume que todas las conexiones son persistentes a menos que se especifique lo contrario. HTTP 2.0 expande la conexión persistente para permitir el intercambio simultáneo de numerosas solicitudes y devoluciones de datos a través de una sola conexión.
Las conexiones persistentes también se denominan HTTP Keep-Alive o Reutilización de conexiones HTTP.