منظور از keep alive کانکشن در وب سرور چیست

3 سال پیش توسط حسین حسین پور مطرح شد
آفلاین
user-avatar
حسین حسین پور ( 9366 تجربه )
3 سال پیش
تخصص : طراح رابط کاربری، برنامه‌نویس

لینک کوتاه اشتراک گذاری

0

من میدونم که ارتباط http یک طرفه هستش یعنی شما یک درخواست رو میفرستی ارتباط بسته میشه و منتظر پاسخ از وب سرور میمونی.
قضیه websocket هم که به کل فرق میکنه.
حالا من تو تنظیمات apache دیدم که نوشته مقدار keep alive رو بالا بزنید که نفهمیدم یعنی چی.
که یک MaxKeepAliveRequests داره یک دونه هم KeepAliveTimeout .
تو سایت هایی مثل gtmetrix هم توصیه شده که برای سرعت بهتر همیشه keep alive باید بالا باشه.
اگر کسی اطلاعات داره یک توضیحی بده که قضیه چیه.
و مثلا اگر این عدد ها رو ما بذاریم رو یک میلیون چی میشه؟
منابع زیادی از cpu و ram مصرف میشه یا اتفاق خاصی نمی افته؟

آفلاین
user-avatar
vahid Mohammadi ( 37202 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

1

@hhp14111
ببینید برای ‍پاسخ به سوال شما شکل زیر مناسبه همونطور که خودتون فرمودین "شما یک درخواست رو میفرستی ارتباط بسته میشه" اما اگر keep alive فعال باشه ارتباط (TCP Socket) باز می مونه و اطلاعات می تونه رد و بدل بشه اما اگر keep alive فعال نباشه این ارتباط بعد از انتقال موفق بسته می شه و برای ارسال اطلاعات جدید باید دوباره یک ارتباط TCP ایجاد بشه ( یعنی اینکه عملیات Handshaking صورت بگیره) خوب این یعنی اتلاف زمان بیشتر.
‍پس سرعت نمایش یک وب سایت رو افزایش میده اما به درستی باز هم اشاره کردین که اگر مدت زمان keep alive زیاد باشه و ما مخصوصا تعداد بازدید کنندگان همزمان وب سایتمون میزان قابل توجهی باشه باعث اتلاف منابع سرور مخصوصا RAM میشه و این بدلیل بیکار موندن و باز بودن بیجهت (Idle) ارتباط (TCP Socket) هستش
نتیجه : این قابلیت رو باید فعال کنید ولی یک زمان مشخص برای اون تعیین کنید

(https://varvy.com/pagespeed/images/keep-alive-enabled-c.png)

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.