Conexão persistente (conexão persistente HTTP)

Uma conexão persistente (conexão persistente HTTP) é um canal de comunicação de rede que permanece aberto para mais solicitações e respostas HTTP ao invés de fechar após uma única troca.

HTTP tem uma função de conexão persistente que permite que o canal permaneça aberto ao invés de ser fechado após uma troca de dados solicitada. O TCP é um protocolo orientado à conexão: Ele inicia uma conexão após confirmação de ambas as extremidades de que eles estão disponíveis e abertos para uma troca de dados. Em uma conexão não persistente, o canal fecha quando um host sinaliza que quer terminar as comunicações ou quando um certo tempo se esgotou sem troca de dados. Para manter uma conexão persistente, pacotes TCP keep-alive são enviados para evitar que a conexão seja interrompida no tempo.

 Uma conexão aberta é mais rápida para trocas de dados frequentes. A sobrecarga de comunicação é salva deixando uma conexão aberta ao invés de sessões de abertura e fechamento para cada pedido. Conexões persistentes também podem ser usadas com APIs para permitir que os servidores empurrem dados para os clientes. Outros benefícios de conexões persistentes incluem a redução do congestionamento da rede, latência e uso de CPU e memória devido ao menor número de conexões; erros também podem ser reportados sem fechar a conexão.

Conexões persistentes adicionadas para HTTP 1.0 usaram um cabeçalho extra para solicitar ao cliente para manter a conexão viva; HTTP 1.1 assume que todas as conexões são persistentes, a menos que especificado de outra forma. HTTP 2.0 expande a conexão persistente para permitir que numerosas requisições e retornos de dados sejam trocados simultaneamente em uma única conexão.

Conexões persistentes também são chamadas de HTTP keep-alive ou reutilização de conexão HTTP.