Bu bilgi nerede saklanıyor ("bu bağlantı bilgisayar A
ve sunucu arasındadır F
")?
Bir TCP bağlantısı, kaynak IP ve bağlantı noktası ve hedef IP ve bağlantı noktası tarafından tanınır. İşletim sisteminiz, tüm ara oturuma duyarlı cihazlar ve sunucunun işletim sistemi, bağlantıyı bu şekilde tanıyacaktır.
HTTP, istek yanıtıyla çalışır: istemci sunucuya bağlanır, bir istek gerçekleştirir ve bir yanıt alır. Canlı tutma olmadan, bir HTTP sunucusuna bağlantı her yanıttan sonra kapatılır. HTTP canlı tutma ile, belirli kriterler karşılanana kadar temeldeki TCP bağlantısını açık tutarsınız.
Bu, tek bir TCP bağlantısı üzerinden birden çok istek-yanıt çiftine izin vererek, TCP'nin nispeten yavaş bağlantı başlangıcından bazılarını ortadan kaldırır.
IIS (F) canlı tutma üstbilgisini gönderdiğinde (veya kullanıcı canlı tutma gönderdiği zaman), bu (E, C, B) bir bağlantıyı kaydettiği anlamına mı gelir?
Hayır. Yönlendiricilerin oturumları hatırlaması gerekmez. Aslında, aynı TCP oturumuna ait birden çok TCP paketinin hepsinin aynı yönlendiricilerden geçmesi gerekmez - yani TCP'nin yönetmesi için. Yönlendiriciler sadece en iyi IP yolunu seçer ve paketleri iletir. Canlı tutma yalnızca istemci, sunucu ve diğer ara oturuma duyarlı cihazlar içindir.
hangisi sadece seansım için?
Bu bağlantıyı kimsenin kullanamayacağı anlamına mı geliyor?
Yani TCP bağlantısı niyeti : sadece bu iki taraf için tasarlanmış uçtan uca bağlantısıdır.
Eğer öyleyse - bu, başlığı canlı tutmak anlamına mı geliyor - çakışan bağlantı kullanıcılarının sayısını azaltın?
"Çakışan bağlantıları" tanımlayın. Aşağıdakiler gibi bazı avantaj ve dezavantajlar için HTTP kalıcı bağlantısına bakın :
- Daha düşük CPU ve bellek kullanımı (çünkü aynı anda daha az bağlantı açıktır).
- İsteklerin ve yanıtların HTTP ardışık düzenini etkinleştirir.
- Azaltılmış ağ tıkanıklığı (daha az TCP bağlantısı).
- Sonraki isteklerde azaltılmış gecikme (anlaşma yok).
eğer öyleyse, bağlantı bana ne kadar süreyle kaydedilir? (başka bir deyişle, hayatta kalmayı ayarlarsam - ne zamana kadar "tut"?)
Tipik bir canlı tutma tepkisi şuna benzer:
Keep-Alive: timeout=15, max=100
Bkz Köprü Metni Aktarım Protokolü (HTTP) -Yaşatmak Başlığını (örneğin taslak HTTP / 2 canlı tutma başlığı hem daha ayrıntılı şekilde açıklanmıştır nerede 2616 ve 2086 ):
Bir ana bilgisayar, timeout
parametrenin değerini , ana bilgisayarın boşta olan bir bağlantının kapatılmadan önce açık kalmasına izin vereceği zamana ayarlar . Bir ana bilgisayar tarafından veri gönderilmez veya alınmazsa bağlantı boştadır.
max
Parametresi bir istemci yapacak ya da bir sunucu kalıcı bağlantıda yapılacak sağlayacak maksimum istek sayısını gösterir. Belirtilen sayıda istek ve yanıt gönderildikten sonra, parametreyi içeren ana bilgisayar bağlantıyı kapatabilir.
Bununla birlikte, sunucu, keyfi bir süre veya sayıda istekten sonra bağlantıyı kapatmakta serbesttir (yanıtı mevcut isteğe döndürdüğü sürece). Bunun nasıl uygulanacağı HTTP sunucunuza bağlıdır.