Keep-Alive
Keep-Alive is een HTTP-header waarmee een webserver één verbinding kan gebruiken voor meerdere aanvragen van een webbrowser. Servers die HTTP/1 uitvoeren, hebben keep-alive vaak ingeschakeld om de prestaties van een website te verbeteren. De keep-alive-header wordt niet gebruikt in HTTP/2, omdat dit het standaardgedrag van het HTTP/2-protocol is.
Wanneer Keep-Alive is ingeschakeld op een webserver, worden permanente verbindingen tussen de server en clients (websitebezoekers) gemaakt. De TCP-verbinding blijft open totdat deze wordt gesloten of een time-out optreedt. Omdat elke TCP-verbinding een handshake-proces moet voltooien, zorgen meerdere verbindingen voor een langere laadtijd van de pagina. Keep-Alive biedt browsers een manier om alle onderdelen van een webpagina, zoals afbeeldingen en CSS-bestanden, via één verbinding te downloaden.
Het nadeel van Keep-Alive is dat hiervoor meer systeembronnen van de webserver nodig zijn. Als websites op een server veel verkeer ontvangen, kunnen er tegelijkertijd meerdere — mogelijk enkele duizenden — permanente verbindingen openstaan. Uiteindelijk kan de server mogelijk geen nieuwe verbindingen meer verwerken en niet meer reageren. Apache biedt de volgende richtlijnen om te voorkomen dat servers hun maximale capaciteit bereiken:
- KeepAliveTimeout - de maximale tijd dat een permanente verbinding open kan blijven terwijl deze op nieuwe aanvragen wacht
- MaxKeepAliveRequests - het maximale aantal aanvragen dat binnen één verbinding is toegestaan voordat deze moet worden gereset
Als je keep-alive wilt inschakelen op een Apache-server, voeg je de volgende code toe aan een include-bestand dat voor de hele server geldt of aan het .HTACCESS-bestand van een specifieke website:
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Test je kennis