Keep-Alive
Keep-Alive ist ein HTTP-Header, der es einem Webserver ermöglicht, eine einzelne Verbindung für mehrere Anfragen von einem Webbrowser zu verwenden. Auf Servern, die HTTP/1 ausführen, ist Keep-Alive häufig aktiviert, um die Website-Leistung zu verbessern. Der Keep-Alive-Header wird in HTTP/2 nicht verwendet, da dies das Standardverhalten des HTTP/2-Protokolls ist.
Wenn Keep-Alive auf einem Webserver aktiviert ist, erstellt es dauerhafte Verbindungen zwischen dem Server und den Clients (Website-Besuchern). Die TCP-Verbindung bleibt geöffnet, bis sie geschlossen wird oder eine Zeitüberschreitung eintritt. Da jede TCP-Verbindung einen Handshake-Vorgang abschließen muss, verlängern mehrere Verbindungen die Ladezeit der Seite. Keep-Alive ermöglicht es Browsern, alle Ressourcen einer Webseite, etwa Bilder und CSS-Dateien, über eine einzige Verbindung herunterzuladen.
Der Nachteil von Keep-Alive besteht darin, dass es mehr Systemressourcen des Webservers benötigt. Wenn Websites auf einem Server viel Datenverkehr erhalten, können gleichzeitig mehrere – möglicherweise mehrere tausend – dauerhafte Verbindungen geöffnet sein. Schließlich ist der Server möglicherweise nicht mehr in der Lage, neue Verbindungen zu verarbeiten, und reagiert nicht mehr. Apache stellt die folgenden Direktiven bereit, um zu verhindern, dass Server ihre maximale Kapazität erreichen:
- KeepAliveTimeout – die maximale Zeit, die eine dauerhafte Verbindung geöffnet bleiben kann, während sie auf neue Anfragen wartet
- MaxKeepAliveRequests – die maximale Anzahl von Anfragen, die innerhalb einer einzelnen Verbindung zulässig ist, bevor diese zurückgesetzt werden muss
Um Keep-Alive auf einem Apache-Server zu aktivieren, fügen Sie den folgenden Code in eine serverweite Include-Datei oder die .HTACCESS-Datei einer bestimmten Website ein:
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
Testen Sie Ihr Wissen