Keep-Alive

Keep-Alive ist ein HTTP-Header, der es einem Webserver ermöglicht, eine einzige Verbindung für mehrere Anfragen eines Webbrowsers zu verwenden. Bei Servern, die HTTP/1 verwenden, ist Keep-Alive oft aktiviert, um die Leistung der Webseite 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, werden dauerhafte Verbindungen zwischen dem Server und den Clients (Webseitenbesucher) hergestellt. Die TCP-Verbindung bleibt offen, bis sie geschlossen wird oder ein Timeout eintritt. Da jede TCP-Verbindung einen Handshake-Prozess durchlaufen muss, verlängern mehrere Verbindungen die Ladezeit der Seite. Keep-Alive bietet Browsern die Möglichkeit, alle Webseiten-Assets, wie Bilder und CSS-Dateien, über eine einzige Verbindung herunterzuladen.

Der Nachteil von Keep-Alive ist, dass es mehr Systemressourcen des Webservers erfordert. Wenn Webseiten auf einem Server stark frequentiert werden, kann es vorkommen, dass mehrere - möglicherweise mehrere tausend - dauerhafte Verbindungen gleichzeitig geöffnet sind. Schließlich kann der Server nicht mehr in der Lage sein, neue Verbindungen zu verarbeiten, und wird unempfindlich. Um zu verhindern, dass ein Server seine maximale Kapazität erreicht, bietet der Apache die folgenden Direktiven:

  • KeepAliveTimeout - die maximale Zeit, die eine dauerhafte Verbindung offen bleiben kann, während sie auf neue Anfragen wartet
  • MaxKeepAliveRequests - die maximale Anzahl von Anfragen, die innerhalb einer einzelnen Verbindung erlaubt sind, bevor diese zurückgesetzt werden muss

Um Keep-Alive auf einem Apache-Server zu aktivieren, fügen Sie den folgenden Code in eine serverseitige Include-Datei oder die .HTACCESS-Datei einer bestimmten Webseite ein:

<IfModule mod_headers.c>
    Headersatz Verbindung keep-alive
</IfModule>

Stand: 09.08.2021