Di mana info ini disimpan ("koneksi ini antara komputer A
dan server F
")?
Sambungan TCP dikenali oleh IP dan port sumber dan IP dan port tujuan. OS Anda, semua perangkat yang sadar akan sesi perantara, dan OS server akan mengenali koneksi dengan ini.
HTTP bekerja dengan request-response: klien terhubung ke server, melakukan permintaan dan mendapat tanggapan. Tanpa keep-hidup, koneksi ke server HTTP ditutup setelah setiap respons. Dengan HTTP tetap hidup, Anda tetap membuka koneksi TCP yang mendasarinya hingga kriteria tertentu terpenuhi.
Hal ini memungkinkan beberapa pasangan permintaan-respons melalui satu koneksi TCP, menghilangkan beberapa startup koneksi TCP yang relatif lambat.
Ketika IIS (F) mengirim header keep-hidup (atau pengguna mengirim keep-hidup), apakah itu berarti (E, C, B) menyimpan koneksi
Tidak. Router tidak perlu mengingat sesi. Faktanya, beberapa paket TCP yang termasuk dalam sesi TCP yang sama tidak perlu melalui semua router yang sama - itu untuk dikelola TCP. Router tinggal memilih jalur IP terbaik dan meneruskan paket. Keep-hidup hanya untuk klien, server dan perangkat sadar-sesi perantara lainnya.
yang hanya untuk sesi saya?
Apakah ini berarti tidak ada orang lain yang dapat menggunakan koneksi itu
Itulah maksud dari koneksi TCP : ini adalah koneksi ujung-ke-ujung yang ditujukan hanya untuk kedua pihak tersebut.
Jika demikian - apakah itu berarti bahwa tetap hidup-header - mengurangi jumlah pengguna koneksi yang tumpang tindih?
Tentukan "koneksi yang tumpang tindih". Lihat koneksi persisten HTTP untuk mengetahui beberapa keuntungan dan kerugian, seperti:
- Penggunaan CPU dan memori yang lebih rendah (karena lebih sedikit koneksi yang terbuka secara bersamaan).
- Mengaktifkan pipelining HTTP untuk permintaan dan respons.
- Mengurangi kemacetan jaringan (lebih sedikit koneksi TCP).
- Mengurangi latensi dalam permintaan berikutnya (tanpa jabat tangan).
jika demikian, untuk berapa lama koneksi disimpan ke saya? (dengan kata lain, jika saya mengatur tetap hidup- "simpan" sampai kapan?)
Respons keep-living yang khas terlihat seperti ini:
Keep-Alive: timeout=15, max=100
Lihat Hypertext Transfer Protocol (HTTP) Keep-Alive Header misalnya (draf untuk HTTP / 2 di mana header keep-hidup dijelaskan secara lebih detail daripada 2616 dan 2086 ):
Host menetapkan nilai timeout
parameter ke waktu saat host akan mengizinkan koneksi idle tetap terbuka sebelum ditutup. Koneksi idle jika tidak ada data yang dikirim atau diterima oleh host.
The max
parameter menunjukkan jumlah maksimum permintaan bahwa klien akan membuat, atau bahwa server akan memungkinkan untuk dilakukan pada koneksi persisten. Setelah sejumlah permintaan dan tanggapan telah dikirim, host yang menyertakan parameter dapat menutup koneksi.
Namun, server bebas untuk menutup koneksi setelah waktu atau jumlah permintaan yang berubah-ubah (selama ia mengembalikan respons ke permintaan saat ini). Bagaimana ini diterapkan tergantung pada server HTTP Anda.