اتصال سمج (پروتکل انتقال ابرمتن)

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
پروتکل انتقال ابرمتن
اتصال پایا · فشرده‎سازی · نسخهٔ امن (HTTPS)
فیلدهای سرآیند
برچسب موجودیت · کوکی · ارجاع دهنده · مسیر
کدهای وضعیت
۳۰۱ منتقل شده‌است
۳۰۲ یافت شد
۳۰۳ مراجعه کنید به
۴۰۳ دسترسی ممنوع
۴۰۴ یافت نشد

ارتباط‌دهنده سمج، اتصال پایا یا اتصال ماندگار (به انگلیسی: Persistent Connection) ایدهٔ استفاده از یک اتصال TCP برای ارسال و دریافت چندین درخواست و پاسخ HTTP می‎باشد. این ایده در مقابل حالتی که برای هر درخواست HTTP، یک اتصال TCP ایجاد شود، قرار می‎گیرد.

نحوه عملکرد[ویرایش]

HTTP 1.0[ویرایش]

در نسخهٔ اول از پروتکل انتقال ابرمتن هیچ تعریف رسمی برای استفاده از اتصال پایا وجود نداشت. این تعریف بعدها به این پروتکل افزوده شد. تمامی عوامل کابری که قابلیت اتصال پایا را دارا بودند، سرآیند زیر را به بستهٔ پاسخ می‎افزودند:

Connection: Keep-Alive

با ارسال این درخواست، در صورت پشتیبانی سرور از این نوع اتصال، در بستهٔ پاسخ نیز همین سرآیند افزوده می‎شود. این عمل به معنای موافقت سرور برای برقرار نگاه داشتن اتصال می‎باشد. به‎این‎ترتیب، کلاینت بدون از بین بردن اتصال TCP می‎توانست درخواست بعدی خود را ارسال نماید.

HTTP 1.1[ویرایش]

در نسخهٔ ۱٫۱ تمامی اتصال‎ها پایا محسوب می‎شوند مگر اینکه خلاف آن در بسته مشخص گردد.[۱] اتصال‎های پایا در این نسخه از پیام Keep-Alive که در نسخهٔ قبلی استفاده می‎شد، استفاده نمی‎کنند. البته مهلتِ ارسالِ درخواست بر روی اتصال قبلی نیز کم شده است. مثلا در سرور آپاچی نسخهٔ ۲٫۰ این زمان ۱۵ ثانیه[۲] و در نسخهٔ ۲٫۲ تنها ۵ ثانیه[۳] تعریف شده است.

مزیت‎ها[ویرایش]

  • استفاده کمتر در واحد پردازش مرکزی (CPU) و حافظه (اتصالات کمتری به صورت همزمان باز خواهند بود.)
  • امکان استفاده از لوله‎کشی HTTP فراهم می‎شود.
  • جلوگیری از ازدحام در شبکه. (اتصالات TCP کمتر)
  • کاهش تاخیر در شبکه. (نیازی به انجام عمل Handshaking نیست)
  • امکان گزارش خطاها بدون نیاز به بستن اتصال

براساس متن تعریف پروتکل انتقال ابرمتن (RFC 2616)[صفحه ۴۶] هیچ کاربری نباید بیش از ۲ اتصال همزمان به یک وب سرور یا پراکسی سرور ایجاد نماید. یک سرور پراکسی نیز تنها می‎تواند 2N اتصال به پراکسی سرور دیگر ایجاد نماید که N تعداد کاربران پراکسی سرور می‎باشد. این امر برای افزایش کارایی پروتکل انتقال ابرمتن انجام شده تا جلوی ایجاد شلوغی در شبکه را بگیرد. در صورت پیاده‎سازی و استفاده صحیح از لوله‎کشی HTTP، اتصال‎های بیشتر هیچ تاثیری در افزایش کارایی شبکه نخواهند داشت.

معایب[ویرایش]

امروزه با توجه به گسترش شبکه‎های پرسرعت، باز نگاه داشتن اتصال وب‎سرور (مثلاً به مدت ۵ ثانیه در آپاچی) بیشتر باعث کاهش کارایی شبکه می‎شود تا افزایش آن.[۴]

برای سرویس‎هایی که تک‎منبعی می‎باشند مانند سرویس میزبانی عکس بازنگاه‎داشتن اتصال بعد از ارسال منبع تنها هدر دادن توان سرور است.

در حالت ارتباط‌دهنده سمج، برنامه‌می‌تواند این امکان را به‌دست‌آورد که به طور مداوم گزارشات خود را باتوجه به بسته نشدن اتصال، ارسال نماید.[۵]

استفاده در مرورگرها[ویرایش]

مرورگر نت اسکیپ (از نسخهٔ ۴٫۰۵ به بعد) و مرورگر اینترنت اکسپلورر (از نسخهٔ ۴٬۰۱ به بعد) از اتصال پایا پشتیبانی می‎کنند.

مرورگر اینترنت اکسپلورر در نسخه‎های ۶ و ۷ از ۲ اتصال پایا استفاده می‎کند. اما از نسخهٔ ۸ تعداد اتصالات پایای استفاده شده به ۶ رسیده است.[۶] اتصالات پایا بعد از ۶۰ ثانیه عدمِ فعالیت بسته خواهند شد. این مقدار از طریق رجیستری ویندوز قابل تنظیم است.

مرورگر فایرفاکس نیز از این نوع اتصال پشتیبانی می‎کند. تعداد اتصالات قابل تنظیم است. (برای هر سرور یا پراکسی سرور و یا در کل) اتصالات پایا بعد از ۱۱۵ ثانیه عدمِ فعالیت بسته خواهند شد که البته این مقدار نیز قابل تنظیم است.[۷]

مروگر اپرا از نسخهٔ ۴ از اتصالات پایا پشتیبانی می‎کند. تعداد اتصالات همزمان در این مرورگر قابل تنظیم می‎باشد. (برای هر سرور یا در کل)

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  • مشارکت‌کنندگان ویکی‌پدیا، «HTTP Persistent Connection»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۱۳ اردیبهشت ۱۳۹۲).