Wo werden diese Informationen aufbewahrt ("Diese Verbindung besteht zwischen Computer A
und Server F
")?
Eine TCP-Verbindung wird anhand der Quell-IP und des Ports sowie der Ziel-IP und des Ports erkannt. Ihr Betriebssystem, alle sitzungsfähigen Zwischengeräte und das Betriebssystem des Servers erkennen die Verbindung daran.
HTTP funktioniert mit Anforderungsantwort: Der Client stellt eine Verbindung zum Server her, führt eine Anforderung aus und erhält eine Antwort. Ohne Keep-Alive wird die Verbindung zu einem HTTP-Server nach jeder Antwort geschlossen. Mit HTTP Keep-Alive halten Sie die zugrunde liegende TCP-Verbindung offen, bis bestimmte Kriterien erfüllt sind.
Dies ermöglicht mehrere Request-Response-Paare über eine einzelne TCP-Verbindung, wodurch ein Teil des relativ langsamen Verbindungsstarts von TCP entfällt.
Wenn der IIS (F) Keep-Alive-Header sendet (oder der Benutzer Keep-Alive sendet), bedeutet dies, dass (E, C, B) eine Verbindung speichern
Nein. Router müssen sich keine Sitzungen merken. Tatsächlich müssen nicht mehrere TCP-Pakete, die zu derselben TCP-Sitzung gehören, alle dieselben Router durchlaufen - das heißt, TCP muss sie verwalten. Router wählen einfach den besten IP-Pfad und leiten Pakete weiter. Keep-Alive ist nur für Client-, Server- und andere sitzungsbewusste Zwischengeräte vorgesehen.
Welches ist nur für meine Sitzung?
Bedeutet dies, dass niemand diese Verbindung verwenden kann?
Dies ist die Absicht von TCP-Verbindungen : Es handelt sich um eine End-to-End-Verbindung, die nur für diese beiden Parteien bestimmt ist.
Wenn ja - bedeutet dies, dass der Keep-Alive-Header die Anzahl der überlappenden Verbindungsbenutzer verringert?
Definieren Sie "überlappende Verbindungen". Unter HTTP-Permanent-Verbindung finden Sie einige Vor- und Nachteile, z.
- Geringere CPU- und Speicherauslastung (da weniger Verbindungen gleichzeitig geöffnet sind).
- Aktiviert das HTTP-Pipelining von Anforderungen und Antworten.
- Reduzierte Netzwerküberlastung (weniger TCP-Verbindungen).
- Reduzierte Latenz bei nachfolgenden Anforderungen (kein Handshake).
Wenn ja, wie lange wird die Verbindung für mich gespeichert? (Mit anderen Worten, wenn ich "Keep Alive" - "Keep" bis wann einstelle?)
Eine typische Keep-Alive-Antwort sieht folgendermaßen aus:
Keep-Alive: timeout=15, max=100
Siehe beispielsweise HTTP-Keep-Alive-Header ( Hypertext Transfer Protocol) (ein Entwurf für HTTP / 2, in dem der Keep-Alive-Header ausführlicher erläutert wird als 2616 und 2086 ):
Ein Host setzt den Wert des timeout
Parameters auf die Zeit, zu der der Host zulässt, dass eine inaktive Verbindung offen bleibt, bevor sie geschlossen wird. Eine Verbindung ist inaktiv, wenn keine Daten von einem Host gesendet oder empfangen werden.
Der max
Parameter gibt die maximale Anzahl von Anforderungen an, die ein Client stellen wird oder die ein Server für die dauerhafte Verbindung zulassen kann. Sobald die angegebene Anzahl von Anforderungen und Antworten gesendet wurde, kann der Host, der den Parameter enthält, die Verbindung schließen.
Es steht dem Server jedoch frei, die Verbindung nach einer beliebigen Zeit oder Anzahl von Anforderungen zu schließen (solange er die Antwort auf die aktuelle Anforderung zurückgibt). Wie dies implementiert wird, hängt von Ihrem HTTP-Server ab.