Was ist KeepAlive?
KeepAlive bezeichnet eine Kommunikationsform in vernetzten Systemen, bei der Geräte oder Software regelmäßig Signale austauschen, um zu überprüfen, ob die Verbindung zwischen ihnen aktiv bleibt. In vordefinierten Abständen sendet eine Seite KeepAlive-Signale, die der Empfänger als Bestätigung interpretiert, dass die Verbindung normal funktioniert. Werden für eine gewisse Zeit keine KeepAlive-Signale empfangen, geht das System von einem Verbindungsabbruch aus und leitet Prozesse wie das Schließen des Kommunikationskanals, das Beenden der Sitzung oder die Wiederherstellung der Verbindung ein.
In TCP nennt man diese Funktion TCP KeepAlive. Serverseitig geben wir dadurch automatisch Serverressourcen frei, die an Verbindungen mit nicht erreichbaren Clients gebunden sind. Clientseitig ermöglicht TCP KeepAlive automatische Wiederverbindungen, etwa wenn die IP-Adresse des Servers sich bei einem Failover ändert.
In HTTP wird eine KeepAlive-Funktion bereitgestellt, um die TCP-Verbindung zwischen Client und Server explizit aufrechtzuerhalten. Dadurch wird die Anzahl der erforderlichen TCP-Verbindungen reduziert, Verbindungsressourcen gespart und die Leistung verbessert. Wenn eine Webseite geladen wird, müssen nicht nur die Haupt-HTML-Datei, sondern auch zugehörige Assets wie Bilder, CSS- und JavaScript-Dateien übertragen werden. Normalerweise erfordert die Übertragung dieser Dateien separate TCP-Verbindungen für jede Datei. Wenn KeepAlive aktiviert ist, können diese Übertragungen jedoch über eine einzelne TCP-Verbindung durchgeführt werden. Während diese Funktion in HTTP/1.0 optional war, ist KeepAlive seit HTTP/1.1 standardmäßig aktiviert.