Keep-Alive
Keep-Alive to nagłówek HTTP, który pozwala serwerowi internetowemu używać jednego połączenia do obsługi wielu żądań z przeglądarki internetowej. Serwery korzystające z HTTP/1 często mają włączoną funkcję keep-alive, aby poprawić wydajność witryny internetowej. Nagłówek keep-alive nie jest używany w HTTP/2, ponieważ jest to domyślne zachowanie protokołu HTTP/2.
Gdy funkcja Keep-Alive jest włączona na serwerze internetowym, tworzy trwałe połączenia między serwerem a klientami (osobami odwiedzającymi witrynę). Połączenie TCP pozostaje otwarte do momentu jego zamknięcia lub przekroczenia limitu czasu. Ponieważ każde połączenie TCP musi przejść proces uzgadniania, wiele połączeń wydłuża czas wczytywania strony. Keep-Alive umożliwia przeglądarkom pobieranie wszystkich zasobów strony internetowej, takich jak obrazy i pliki CSS, za pośrednictwem jednego połączenia.
Wadą Keep-Alive jest to, że wymaga większej ilości zasobów systemowych serwera internetowego. Jeśli witryny na serwerze otrzymują dużo ruchu, serwer może mieć jednocześnie otwartych wiele — być może nawet kilka tysięcy — trwałych połączeń. W końcu serwer może nie być w stanie obsługiwać nowych połączeń i przestać odpowiadać. Apache udostępnia następujące dyrektywy, które zapobiegają osiągnięciu przez serwery maksymalnej przepustowości:
- KeepAliveTimeout — maksymalny czas, przez jaki trwałe połączenie może pozostać otwarte podczas oczekiwania na nowe żądania
- MaxKeepAliveRequests — maksymalna liczba żądań dozwolonych w ramach jednego połączenia, zanim trzeba je zresetować
Aby włączyć funkcję keep-alive na serwerze Apache, dodaj poniższy kod do pliku dołączanego na poziomie całego serwera lub do pliku .HTACCESS konkretnej witryny:
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Sprawdź swoją wiedzę