Keep-Alive
Keep-Alive é um cabeçalho HTTP que permite que um servidor web use uma única conexão para várias solicitações de um navegador web. Servidores que executam HTTP/1 geralmente mantêm o keep-alive ativado para melhorar o desempenho do site. O cabeçalho keep-alive não é usado no HTTP/2, pois esse é o comportamento padrão do protocolo HTTP/2.
Quando o Keep-Alive está ativado em um servidor web, ele cria conexões persistentes entre o servidor e os clientes (visitantes do site). A conexão TCP permanece aberta até ser fechada ou atingir o tempo limite. Como cada conexão TCP precisa concluir um processo de handshake, várias conexões aumentam o tempo de carregamento da página. O Keep-Alive permite que os navegadores baixem todos os arquivos da página, como imagens e arquivos CSS, por meio de uma única conexão.
A desvantagem do Keep-Alive é que ele exige mais recursos do sistema do servidor web. Se os sites em um servidor receberem muito tráfego, ele poderá manter várias — possivelmente vários milhares — de conexões persistentes abertas ao mesmo tempo. Com o tempo, o servidor poderá não conseguir lidar com novas conexões e deixar de responder. O Apache fornece as diretivas a seguir para impedir que os servidores atinjam a capacidade máxima:
- KeepAliveTimeout - o tempo máximo que uma conexão persistente pode permanecer aberta enquanto aguarda novas solicitações
- MaxKeepAliveRequests - o número máximo de solicitações permitidas em uma única conexão antes que ela precise ser redefinida
Para ativar o keep-alive em um servidor Apache, adicione o código a seguir a um arquivo de inclusão válido para todo o servidor ou ao arquivo .HTACCESS de um site específico:
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Teste seus conhecimentos