Meine kleinen Aufzeichnungen

29 Juni 2006

HTTP-Keep-alive in IIS 6.0

In der Konfigurationsseite eines Webs in der IIS-Manager-Konsole gibt es eine Option "Verbindungen / HTTP-Verbindung aufrechterhalten (HTTP-Keep-Alive aktivieren). Diese Checkbox ist standardmäßig angekreuzt. Was bedeutet diese Einstellung?

Dazu muss man sich vor Augen führen, wie das HTTP-Protokoll funktioniert. Eine HTML-Seite kann z.B. auf andere Dateien "verweisen", die im selben Zuge wie die Seite selbst geladen werden (Bilder, Javascript-Bibliotheken usw.).

Webbrowser (ab HTTP 1.1) beantragen beim Server, die Verbindung für mehrere Anforderungen offen zu halten. Dies wird als HTTP-Keep-Alive bezeichnet. Dabei handelt es sich um eine HTTP-Spezifikation, die eine deutlich verbesserte Serverleistung ermöglicht. Ohne diese Spezifikation würde ein Browser für eine Seite mit mehreren Elementen, wie z. B. Bildern, zahhlreiche Verbindungsanforderungen stellen müssen. Jedes Element könnte eine separate Verbindung erfordern. Diese zusätzlichen Anforderungen und Verbindungen erfordern zusätzliche Aktivitäten und Ressourcen auf Serverseite und verringern damit die Leistungsfähigkeit des Servers. Zusätzliche Anforderungen führen somit dazu, dass der Browser erheblich langsamer wird und weniger schnell reagiert, vor allem bei Verwendung einer (langsamen) Verbindung mit hoher Wartezeit. Standardmäßig werden HTTP-Keep-Alives während der Installation aktiviert.

Links:
MS Technet: Enabling HTTP Keep-Alives (IIS 6.0)