HTTP Keep-Alive

Problem

Eine Webseite benötigt 50 Ressourcen. Wenn jede HTTP-Anfrage eine völlig neue TCP-Verbindung erfordert:
verbinden → Anfrage → schließen
verbinden → Anfrage → schließen
verbinden → Anfrage → schließen
Der Verbindungsaufbau wird teuer.

Lösung — Persistente Verbindungen

HTTP Keep-alive bedeutet, eine Verbindung nach einer Antwort offen zu halten, damit spätere Anfragen sie wiederverwenden können, auch nach einer Pause. Für HTTPS stellt der TLS-Handshake diese Verbindung her; nachfolgende Anfragen verwenden sie ohne einen weiteren Handshake wieder. Der Client, Server oder ein Vermittler kann sie schließen, zum Beispiel nach einer Leerlaufzeit. Idle-Timeouts werden normalerweise in Sekunden gemessen: Ein 60-Sekunden-Timeout ermöglicht das Schließen nach 60 Sekunden ohne Aktivität; Neue Aktivität startet normalerweise den Timer neu.
Verbinden
  ↓
Anfrage
Anfrage
Anfrage
Anfrage
  ↓
Schließen
Kerngedanke: Persistente HTTP-Verbindungen amortisieren den Verbindungsaufbau über mehrere Anforderungen hinweg.