- Keep-alive نوعی ارتباط بین سرور و مرورگر است که سرور به مرورگر اعلان می کند که بیش از یک فایل را به طور هم زمان بگیرید.
- Keepalive به عنوان یک ارتباط مداوم نیز شناخته می شود
چگونگی فعال سازی Keep-alive
- Keep-alive با استفاده از هدر "HTTP "Connection: Keep-Alive فعال می شود.
- اگر Keep-alive فعال نیست احتمالاً هدرهای HTTP شما در حالت "connection: close" هستند.
- آن را به حالت "connection: keep-alive" تغییر دهید تا Keep-alive فعال شود.
- فعال سازی Keep-alive به این بستگی دارد که از کدام سرور استفاده می کنید و به چه چیزی دسترسی دارید.
در قسمت زیر به متداول ترین متدها اشاره می کنیم.
فعال سازی Keep-alive با استفاده از htaccess
اگر به فایل پیکربندی و تنظیمات وب سرور خود دسترسی ندارید، می توانید خودتان Keep-alive را با استفاده از یک فایل htaccess. فعال کنید.
با اضافه کردن این کد به فایل htaccess. خود، هدرهای Keep-alive به درخواست هایتان اضافه خواهد شد که بیشتر محدودیت های هاست یا وب سرور را لغو می کند.
<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>
فعال سازی Keep-alive در آپاچی
اگر می خواهید به فایل تنظیمات آپاچی خود دسترسی داشته باشید، می توانید Keep-alive را در آنجا ON کنید. بخش های قابل اجرا در قسمت زیر ارائه شده اند:
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 100
فعال سازی Keep-alive در NGINX
مسائل Keep-alive را می توان با استفاده از HttpCoreModule انجام داد. دستورالعمل خاصی وجود دارد که باید مراقب آن باشید "keepalive_disable". اگر شما این گزینه را دیدید مطمئن شوید که می دانید چرا قبل از حذف، keep-alive غیرفعال شده است.
فعال سازی keep-alive در Litespeed
keep-alive به صورت پیش فرض فعال است؛ اما سرور شما ممکن است از "keep-alive" هوشمند استفاده کند. این تنظیماتی در Litespeed است که به طور خاص برای وب سایت هایی با حجم بالا بکار برده می شود. وقتی که این تنظیمات فعال باشد، در ابزار pagespeed (سرعت صفحه) نشان می دهد که keep-alive، غیرفعال است.
keep-alive هوشمند، فایل اولیه (فایل HTML) را با یک کانکشن close در هدر HTTP درخواست می کند. سپس مابقی فایل ها (css، js، تصاویر و غیره) را با keep-alive فعال شده، درخواست خواهد کرد. این به کاربران بیشتری این امکان را می دهد تا بتوانند به طور هم زمان وقتی که چندین درخواست هم زمان دارند، کانکت شوند.
نکته (فقط سرورهای Litespeed): تا زمانی که یک سایت با ترافیک خیلی بالا ندارید می توانید (و احتمالاً باید) keep-alive هوشمند را در تنظیمات غیرفعال کنید و با این کار، تمام کانکشن های شما از keep-alive استفاده خواهند کرد.
چگونه تشخیص دهید که keep-alive در صفحاتتان فعال است؟
ابزار pagespeed tool، وضعیت keep-alive و همچنین چندین فاکتور دیگر را گزارش می دهد.
چرا keep-alive استفاده شده است؟
به منظور نمایش صفحات وب، یک مرورگر باید فایل ها را از وب سرور درخواست کند. هنگام درخواست یک فایل توسط مرورگر، دیالوگی بین سرور و مرورگر برقرار می شود. مرورگر می گوید که من فایل را می خواهم و وب سرور، بله یا نه می گوید. مرورگر، فایل HTML را دریافت می کند و آن را می خواند. مرورگر سپس سایر چیزهایی که HTML ارجاع می دهد مثل CSS، جاوا اسکریپت یا تصاویر را درخواست خواهد کرد. صفحات وب اغلب مجموعه ای از فایل های بسیار هستند و اگر یک کانکشن جدید (ارتباط مختصر) برای هرکدام از آن فایل ها باز شود، زمان بیشتری صرف نمایش آن صفحه خواهد شد. وقتی keep-alive فعال نباشد، این فرآیند می تواند زمانی که صرف دانلود صفحه می کند را افزایش دهد و منابع سرور را هدر دهد.
keep-alive به صورت پیش فرض نیست؟
برخی افراد به اشتباه معتقدند که نباید نگران این باشند چون امروزه کانکشن های HTTP، پیش فرض هستند (keep-alive فعال).
بااینکه این درست است، اما افراد بسیاری از محیط های هاستینگ (میزبانی) مشترک یا وب سرورها استفاده می کنند که ممکن است نادانسته، کانکشن ها را برای کاربر ببندند. این به دلایل عملکردی بسیاری صورت می گیرد و ازآنجایی که میلیون ها صفحه در محیط های مشترک میزبانی شده اند، نیاز قطعی به تعیین این وجود دارد که کانکشن هایتان، keep-alive باشند. می توانید آن را با استفاده از page speed tool انجام دهید.