Saya diminta untuk membangun situs, dan salah satu rekan pengembang memberi tahu saya bahwa saya perlu menyertakan tajuk yang tetap hidup.
Yah saya membaca banyak tentang itu dan masih ada pertanyaan.
Koneksi terbuka meningkatkan kinerja saat klien membuat beberapa permintaan untuk konten halaman Web, karena server dapat mengembalikan konten untuk setiap permintaan dengan lebih cepat. Jika tidak, server harus membuka koneksi baru untuk setiap permintaan
Melihat ke
- Ketika IIS (F) mengirimkan
keep alive
header ( atau pengguna mengirimkan tetap-hidup ), apakah itu berarti bahwa (E
,C
,B
) menyimpan koneksi yang hanya untuk sesi saya? - Di mana info ini disimpan ( "koneksi ini milik" Royi " )?
- Apakah ini berarti tidak ada orang lain yang dapat menggunakan koneksi itu
- Jika demikian - apakah itu berarti bahwa tetap hidup-header - mengurangi jumlah pengguna koneksi yang tumpang tindih?
- jika demikian, untuk berapa lama koneksi disimpan ke saya? (dengan kata lain, jika saya mengatur tetap hidup- "simpan" sampai kapan?)
ps bagi yang tertarik:
mengklik halaman contoh ini akan mengembalikan header yang tetap hidup
http
http-headers
keep-alive
Royi Namir
sumber
sumber
Jawaban:
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.
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.
Itulah maksud dari koneksi TCP : ini adalah koneksi ujung-ke-ujung yang ditujukan hanya untuk kedua pihak tersebut.
Tentukan "koneksi yang tumpang tindih". Lihat koneksi persisten HTTP untuk mengetahui beberapa keuntungan dan kerugian, seperti:
Respons keep-living yang khas terlihat seperti ini:
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.
sumber
N
permintaan melaluiN
koneksi (karena secara default koneksi ditutup setelah setiap respons), misalnyaN
permintaan api melaluiN / M
atau bahkan hanyaM
koneksi, karena dapat mengaktifkan beberapa permintaan melalui setiap koneksi terbuka, jadi bisa menggunakan lebih sedikit.