Keep Alive

Copyright ┬ę Shutterstock / Siberian Art

Was bedeutet Keep Alive?

Ein Keep Alive oder Keepalive ist ein Signal, das von einem Ger├Ąt zu einem anderen gesendet wird, um eine Verbindung zwischen den beiden Ger├Ąten aufrechtzuerhalten. Dies kann zum Beispiel ├╝ber einen HTTP-Header zwischen einem Client und einem Server geschehen. Keep Alives werden im Internet und in Netzwerkumgebungen verwendet, um einen offenen Kommunikationspfad aufrechtzuerhalten oder um den Status einer Verbindung zu einem Remote-Ger├Ąt regelm├Ą├čig zu ├╝berpr├╝fen.

Verwendung von Keep Alive

Netzwerke verwenden unterschiedliche Protokolle zum Einrichten und Verwalten von Konversationen zwischen den Ger├Ąten im Netzwerk. Um diese Protokolle aktiv zu halten ÔÇô um mehr Daten zu senden oder um zu ├╝berpr├╝fen, ob ein Link noch funktioniert ÔÇô kann ein Keepalive in vordefinierten Intervallen gesendet werden. Keep Alives k├Ânnen konfigurierbare Parameter wie Rahmengr├Â├če, Intervalle zwischen den Signalen, Anzahl der Wiederholungen und Timeouts verwenden. Keepalives dienen dazu, Netzwerkverbindungen aufrechtzuerhalten.

Verschiedene Technologien nutzen Keepalive Signale. TCP-Keepalive-Pakete pr├╝fen, ob eine Verbindung noch g├╝ltig ist. HTTP-Keepalives verwalten Browserverbindungen, w├Ąhrend Daten von einem Server zu einem Client ├╝bertragen werden. Keepalives k├Ânnen mit dem Session-Interface-Protokoll (SIP), dem Server-Nachrichtenblock (SMB), dem Spanning-Tree-Protokoll (STP), der Transportschicht-Sicherheit (TLS) und verschiedenen anderen Protokollen verwendet werden.

Aktivieren von HTTP Keep Alive

Das Aktivieren von Keepalive bedeutet, dass der HTTP-Antwortheader Connection: keep-alive anzeigt. Wenn es nicht aktiviert ist, zeigt der Antwortheader wahrscheinlich Connection: close an. Keep Alive ist in den meisten F├Ąllen standardm├Ą├čig aktiviert, aber manchmal wird Keep Alive von den Hostinganbieter aus Leistungsgr├╝nden deaktiviert.

Der HTTP Keepalive-Header kann direkt aus der .htaccess-Datei aktiviert werden. Der Keepalive-Header in der .htaccess-Datei ├╝berschreibt die meisten Einschr├Ąnkungen von Webserver oder Host. Die Aktivierung erfolgt mit:

< ifModule mod_headers.c>
Header set Connection keep-alive
< /ifModule>

Apache Webserver

Um Keepalives in Apache Webservern zu aktivieren oder deaktivieren ist der Zugriff auf die Apache-Konfigurationsdatei httpd.conf erforderlich. Um HTTP Keep-Alive zu aktivieren, wird KeepAlive auf “On” gesetzt. Zum Deaktivieren wird KeepAlive auf “Off” gesetzt.

Nginx

Keepalive ist in Nginx standardm├Ą├čig aktiviert. Einstellungen und Syntax k├Ânnen mit dem HttpCoreModule identifiziert werden. Mit “keepalive_disable none | browser” kann festgelegt werden, f├╝r welche Browser Keep Alive deaktiviert werden soll. Dies kann n├╝tzlich sein, wenn jemand einen ├Ąlteren Browser verwendet, der sich nicht korrekt mit Keep Alive verh├Ąlt. Wenn dies auf “None” gesetzt wird, wird die Aufrechterhaltung der Verbindungen f├╝r alle Browser aktiviert.

HTTP Keep Alive Einstellungen

Bei der Implementierung von Keepalive k├Ânnen mit zwei durch Kommas getrennte Parameter ÔÇô Timeout und max ÔÇô Vorgaben f├╝r die maximal m├Âglichen Anforderungen ├╝ber eine Verbindung und die Zeit f├╝r die Aufrechterhaltung einer inaktiven Verbindung gemacht werden:

Timeout

Der Parameter “Timeout” gibt an, wie lange eine inaktive Verbindung ge├Âffnet bleiben muss und entspricht der Anzahl Sekunden, die ein Server auf neue Anforderungen von Clients warten soll. Die Einstellung von Timeout ist normalerweise auf 7 – 10 Sekunden. Bei einem h├Âheren Datenverkehr ist m├Âglicherweise eine l├Ąngere Zeit sinnvoll, um sicherzustellen, dass nicht unn├Âtig TCP-Verbindungen neu aufgebaut werden. Wird die Zeit jedoch zu lange gew├Ąhlt, f├╝hrt dies zur Ressourcenverschwendung, haupts├Ąchlich von Speicherplatz, da die Verbindung auch bei fehlendem Verkehr ge├Âffnet bleibt.

max

Mit dem Parameter “max” kann die maximale Anzahl von Anforderungen vorgegeben werden, die ├╝ber eine Verbindung gesendet werden k├Ânnen, bevor diese geschlossen wird. Es wird empfohlen, diese Zahl auf 100 zu setzen, da dies in den meisten Szenarien ausreichend ist. Wenn der Server mehr Dateien bereitstellen muss, sollte diese Einstellung erh├Âht werden. F├╝r eine unbegrenzte Anzahl Anfragen w├Ąhrend einer einzelnen Verbindung wird der Parameter auf 0 gesetzt.

Die Vorteile von Keep Alive

Keepalive reduziert die CPU-Auslastung: Das Erstellen neuer TCP-Verbindungen erh├Âht die CPU- und Speicherauslastung eines Servers. Wenn Verbindungen l├Ąnger aufrechterhalten werden, kann die Belastung verringert werden.

K├╝rze Ladezeit der Webseite: Die M├Âglichkeit, mehr Dateien mit derselben Verbindung bereitzustellen, kann die Latenz verringern und das Laden von Webseiten beschleunigen.

Schneller HTTPS Verbindungen: HTTPS-Verbindungen sind sehr ressourcenintensiv. Daher ist es empfehlenswert, Keep-Alive f├╝r HTTPS-Verbindungen zu aktivieren.

Die Nachteile von Keep Alive

Wenn der Client die Verbindung nicht schlie├čt, wenn alle erforderlichen Daten empfangen wurden, sind die Ressourcen, die zum Offenhalten der Verbindung auf dem Server ben├Âtigt werden, f├╝r andere Clients nicht verf├╝gbar. Wie stark dies die Verf├╝gbarkeit des Servers beeinflusst und wie lange die Ressourcen nicht verf├╝gbar sind, h├Ąngt von der Architektur und Konfiguration des Servers ab.

Persistente Verbindungen in HTTP / 1.1

Mit HTTP / 1.1 wurde die Unterst├╝tzung f├╝r Keepalive-Verbindungen durch ein verbessertes Design, das als persistente Verbindungen bezeichnet wird, ersetzt. Die Ziele von persistenten Verbindungen sind die gleichen wie die von Keepalive-Verbindungen, aber die Funktionsweise ist verschieden.

Im Gegensatz zu HTTP / 1.0 + Keepalive-Verbindungen sind persistente HTTP / 1.1-Verbindungen standardm├Ą├čig aktiviert. HTTP / 1.1 geht davon aus, dass alle Verbindungen persistent sind, sofern nichts anderes angegeben wird. HTTP / 1.1-Anwendungen m├╝ssen einen Connection: close-Header explizit zu einer Nachricht hinzuf├╝gen, um anzugeben, dass eine Verbindung geschlossen werden soll, nachdem die ├ťbertragung abgeschlossen ist. Dies ist ein wesentlicher Unterschied zu fr├╝heren Versionen des HTTP-Protokolls, bei denen Keep-Alive-Verbindungen entweder optional oder vollst├Ąndig nicht unterst├╝tzt wurden.

Ein HTTP / 1.1-Client geht davon aus, dass eine HTTP / 1.1-Verbindung nach einer Antwort ge├Âffnet bleibt, es sei denn, die Antwort enth├Ąlt einen Connection: close-Header. Clients und Server k├Ânnen jedoch weiterhin inaktive Verbindungen jederzeit schlie├čen. Nach dem Senden eines Connection: close-Request-Headers kann der Client keine weiteren Anforderungen f├╝r diese Verbindung senden. Clients m├╝ssen daher in der Lage sein, Anforderungen erneut zu versuchen, wenn die Verbindung geschlossen wird, bevor sie die gesamte Antwort erhalten haben.

Ein einzelner Benutzerclient sollte h├Âchstens zwei dauerhafte Verbindungen zu einem beliebigen Server oder Proxy aufrechterhalten, um eine ├ťberlastung des Servers zu verhindern. Da Proxys m├Âglicherweise mehr Verbindungen zu einem Server ben├Âtigen, um gleichzeitig mehrere Benutzer zu unterst├╝tzen. Wenn X Benutzer versuchen, auf die Server zuzugreifen, sollte ein Proxy h├Âchstens 2X-Verbindungen zu einem beliebigen Server oder ├╝bergeordneten Proxy verwalten.

Alle modernen Browser verwenden persistente Verbindungen, vorausgesetzt, der Server erlaubt die Aufrechterhaltung der Verbindungen. Eine ├ťberpr├╝fung der Anwendungs- und Proxy-Server-Konfigurationen kann erforderlich sein, um sicherzustellen, dass sie Keep Alive unterst├╝tzen und Webseiten von der besseren Performance profitieren k├Ânnen.

 


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte