اتصال سمج (پروتکل انتقال ابرمتن): تفاوت میان نسخهها
جز اصلاح نویسه نادرست با استفاده از AWB |
LetsDoItBot (بحث | مشارکتها) تمیزکاری، + ویرایش با ماژول ابرابزار با استفاده از AWB |
||
خط ۱۱: | خط ۱۱: | ||
=== HTTP 1.1 === |
=== HTTP 1.1 === |
||
در نسخهٔ ۱٫۱ تمامی اتصالها پایا محسوب میشوند مگر اینکه خلاف آن در بسته مشخص گردد.<ref>{{یادکرد وب |نویسنده = |نشانی= http://tools.ietf.org/html/rfc2616#section-8.1|عنوان= RFC 2616 - HTTP/1.1 Definition| ناشر = |تاریخ = [[گروه ضربت مهندسی اینترنت|IETF]]|تاریخ بازبینی= |
در نسخهٔ ۱٫۱ تمامی اتصالها پایا محسوب میشوند مگر اینکه خلاف آن در بسته مشخص گردد.<ref>{{یادکرد وب |نویسنده = |نشانی= http://tools.ietf.org/html/rfc2616#section-8.1|عنوان= RFC 2616 - HTTP/1.1 Definition| ناشر = |تاریخ = [[گروه ضربت مهندسی اینترنت|IETF]]|تاریخ بازبینی=}}</ref> |
||
اتصالهای پایا در این نسخه از پیام Keep-Alive |
اتصالهای پایا در این نسخه از پیام Keep-Alive که در نسخهٔ قبلی استفاده میشد، استفاده نمیکنند. البته مهلتِ ارسالِ درخواست بر روی اتصال قبلی نیز کم شده است. مثلاً در سرور آپاچی نسخهٔ ۲٫۰ این زمان ۱۵ ثانیه<ref>{{یادکرد وب |نویسنده = |نشانی= http://httpd.apache.org/docs/2.0/mod/core.html#keepalivetimeout|عنوان= | ناشر = Apache 2 Documentation|تاریخ = |تاریخ بازبینی=}}</ref> |
||
و در نسخهٔ ۲٫۲ تنها ۵ ثانیه<ref>{{یادکرد وب |نویسنده = |نشانی= http://httpd.apache.org/docs/2.2/mod/core.html#keepalivetimeout|عنوان= | ناشر = Apache 2.2 Documentation|تاریخ = |تاریخ بازبینی= |
و در نسخهٔ ۲٫۲ تنها ۵ ثانیه<ref>{{یادکرد وب |نویسنده = |نشانی= http://httpd.apache.org/docs/2.2/mod/core.html#keepalivetimeout|عنوان= | ناشر = Apache 2.2 Documentation|تاریخ = |تاریخ بازبینی=}}</ref> |
||
تعریف شده است. |
تعریف شده است. |
||
خط ۲۰: | خط ۲۰: | ||
* نیازی به انجام عمل Handshaking نیست |
* نیازی به انجام عمل Handshaking نیست |
||
* امکان گزارش خطاها بدون نیاز به بستن اتصال |
* امکان گزارش خطاها بدون نیاز به بستن اتصال |
||
براساس متن تعریف [[پروتکل انتقال ابرمتن]] (RFC 2616)<sup>[صفحه ۴۶]</sup> هیچ کاربری نباید بیش از ۲ اتصال همزمان به یک [[وب سرور]] یا [[پراکسی سرور]] ایجاد نماید. یک سرور پراکسی نیز تنها میتواند ''2N'' اتصال به پراکسی سرور دیگر ایجاد نماید که ''N'' تعداد کاربران پراکسی سرور میباشد. این امر برای افزایش کارایی [[پروتکل انتقال ابرمتن]] لازم است تا جلوی ایجاد شلوغی در شبکه را بگیرد. در صورت پیادهسازی و استفاده صحیح از [[لولهکشی HTTP]]، اتصالهای بیشتر هیچ |
براساس متن تعریف [[پروتکل انتقال ابرمتن]] (RFC 2616)<sup>[صفحه ۴۶]</sup> هیچ کاربری نباید بیش از ۲ اتصال همزمان به یک [[وب سرور]] یا [[پراکسی سرور]] ایجاد نماید. یک سرور پراکسی نیز تنها میتواند ''2N'' اتصال به پراکسی سرور دیگر ایجاد نماید که ''N'' تعداد کاربران پراکسی سرور میباشد. این امر برای افزایش کارایی [[پروتکل انتقال ابرمتن]] لازم است تا جلوی ایجاد شلوغی در شبکه را بگیرد. در صورت پیادهسازی و استفاده صحیح از [[لولهکشی HTTP]]، اتصالهای بیشتر هیچ تأثیری در افزایش کارایی شبکه نخواهند داشت. |
||
== معایب == |
== معایب == |
||
* امروزه با توجه به گسترش شبکههای پرسرعت، باز نگاه داشتن اتصال وبسرور (مثلاً به مدت ۵ ثانیه در آپاچی) بیشتر باعث کاهش کارایی شبکه میشود تا افزایش آن.<ref>{{یادکرد وب |نویسنده = |نشانی= http://mocko.org.uk/b/2011/01/23/http-keepalive-considered-harmful/ |عنوان= HTTP Keep Alive is now considered harmful| ناشر = |تاریخ = |تاریخ بازبینی= |
* امروزه با توجه به گسترش شبکههای پرسرعت، باز نگاه داشتن اتصال وبسرور (مثلاً به مدت ۵ ثانیه در آپاچی) بیشتر باعث کاهش کارایی شبکه میشود تا افزایش آن.<ref>{{یادکرد وب |نویسنده = |نشانی= http://mocko.org.uk/b/2011/01/23/http-keepalive-considered-harmful/ |عنوان= HTTP Keep Alive is now considered harmful| ناشر = |تاریخ = |تاریخ بازبینی=}}</ref> |
||
* برای سرویسهایی که تکمنبعی میباشند مانند سرویس [[میزبانی عکس]] بازنگاهداشتن اتصال بعد از ارسال منبع تنها هدر دادن توان سرور است. |
* برای سرویسهایی که تکمنبعی میباشند مانند سرویس [[میزبانی عکس]] بازنگاهداشتن اتصال بعد از ارسال منبع تنها هدر دادن توان سرور است. |
||
* در حالت ارتباطدهنده سمج، برنامهمیتواند این امکان را بهدستآورد که به طور مداوم گزارشات خود را باتوجه به بسته نشدن اتصال، ارسال نماید.<ref>http://javabyab.com/7762/قابلیت-persistent-connection-پروتکل-http-چیست-مزایایی-دارد؟</ref> |
* در حالت ارتباطدهنده سمج، برنامهمیتواند این امکان را بهدستآورد که به طور مداوم گزارشات خود را باتوجه به بسته نشدن اتصال، ارسال نماید.<ref>http://javabyab.com/7762/قابلیت-persistent-connection-پروتکل-http-چیست-مزایایی-دارد؟</ref> |
||
خط ۳۰: | خط ۳۰: | ||
مرورگر [[نت اسکیپ]] (از نسخهٔ ۴٫۰۵ به بعد) و مرورگر [[اینترنت اکسپلورر]] (از نسخهٔ ۴٬۰۱ به بعد) از اتصال پایا پشتیبانی میکنند. |
مرورگر [[نت اسکیپ]] (از نسخهٔ ۴٫۰۵ به بعد) و مرورگر [[اینترنت اکسپلورر]] (از نسخهٔ ۴٬۰۱ به بعد) از اتصال پایا پشتیبانی میکنند. |
||
مرورگر [[اینترنت اکسپلورر]] در نسخههای ۶ و ۷ از ۲ اتصال پایا استفاده میکند. اما از نسخهٔ ۸ تعداد اتصالات پایای استفاده شده به ۶ رسیده است.<ref>{{یادکرد وب |نویسنده = |نشانی= http://www.stevesouders.com/blog/2008/03/10/ie8-speeds-things-up/|عنوان= IE8 Speeds things up| ناشر = |تاریخ = |تاریخ بازبینی= |
مرورگر [[اینترنت اکسپلورر]] در نسخههای ۶ و ۷ از ۲ اتصال پایا استفاده میکند. اما از نسخهٔ ۸ تعداد اتصالات پایای استفاده شده به ۶ رسیده است.<ref>{{یادکرد وب |نویسنده = |نشانی= http://www.stevesouders.com/blog/2008/03/10/ie8-speeds-things-up/|عنوان= IE8 Speeds things up| ناشر = |تاریخ = |تاریخ بازبینی=}}</ref> |
||
اتصالات پایا بعد از ۶۰ ثانیه عدمِ فعالیت بسته خواهند شد. این مقدار از طریق [[رجیستری ویندوز]] قابل تنظیم است. |
اتصالات پایا بعد از ۶۰ ثانیه عدمِ فعالیت بسته خواهند شد. این مقدار از طریق [[رجیستری ویندوز]] قابل تنظیم است. |
||
مرورگر [[فایرفاکس]] نیز از این نوع اتصال پشتیبانی میکند. تعداد اتصالات قابل تنظیم است. (برای هر سرور یا پراکسی سرور و یا در کل) اتصالات پایا بعد از ۱۱۵ ثانیه عدمِ فعالیت بسته خواهند شد که البته این مقدار نیز قابل تنظیم است.<ref>{{یادکرد وب |نویسنده = |نشانی= http://kb.mozillazine.org/Network.http.keep-alive.timeout|عنوان= | ناشر = |تاریخ = |تاریخ بازبینی= |
مرورگر [[فایرفاکس]] نیز از این نوع اتصال پشتیبانی میکند. تعداد اتصالات قابل تنظیم است. (برای هر سرور یا پراکسی سرور و یا در کل) اتصالات پایا بعد از ۱۱۵ ثانیه عدمِ فعالیت بسته خواهند شد که البته این مقدار نیز قابل تنظیم است.<ref>{{یادکرد وب |نویسنده = |نشانی= http://kb.mozillazine.org/Network.http.keep-alive.timeout|عنوان= | ناشر = |تاریخ = |تاریخ بازبینی=}}</ref> |
||
مروگر [[اپرا (مرورگر وب)|اپرا]] از نسخهٔ ۴ از اتصالات پایا پشتیبانی میکند. تعداد اتصالات همزمان در این مرورگر قابل تنظیم میباشد. (برای هر سرور یا در کل) |
مروگر [[اپرا (مرورگر وب)|اپرا]] از نسخهٔ ۴ از اتصالات پایا پشتیبانی میکند. تعداد اتصالات همزمان در این مرورگر قابل تنظیم میباشد. (برای هر سرور یا در کل) |
||
خط ۴۵: | خط ۴۵: | ||
== منابع == |
== منابع == |
||
* {{یادکرد ویکی|عنوان = HTTP Persistent Connection |پیوند = http://en.wikipedia.org/wiki/HTTP_persistent_connection |زبان =انگلیسی| بازیابی =۱۳ اردیبهشت ۱۳۹۲}} |
* {{یادکرد ویکی|عنوان = HTTP Persistent Connection |پیوند = http://en.wikipedia.org/wiki/HTTP_persistent_connection |زبان =انگلیسی| بازیابی =۱۳ اردیبهشت ۱۳۹۲}} |
||
{{پانویس}} |
{{پانویس|۲}} |
||
{{درگاه|اینترنت}} |
{{درگاه|اینترنت}} |
نسخهٔ ۱۰ اوت ۲۰۱۷، ساعت ۱۹:۳۷
HTTP |
---|
روشهای درخواست |
زمینههای سرآیند |
کدهای وضعیت |
ارتباطدهنده سمج، اتصال پایا یا اتصال ماندگار (به انگلیسی: Persistent Connection) ایدهٔ استفاده از یک اتصال TCP برای ارسال و دریافت چندین درخواست و پاسخ HTTP میباشد. این ایده در مقابل حالتی که برای هر درخواست HTTP، یک اتصال TCP ایجاد شود، قرار میگیرد.
نحوه عملکرد
HTTP 1.0
در نسخهٔ اول از پروتکل انتقال ابرمتن هیچ تعریف رسمی برای استفاده از اتصال پایا وجود نداشت. این تعریف بعدها به این پروتکل افزوده شد. تمامی عوامل کابری که قابلیت اتصال پایا را دارا بودند، سرآیند زیر را به بستهٔ پاسخ میافزودند:
Connection: Keep-Alive
با ارسال این درخواست، در صورت پشتیبانی سرور از این نوع اتصال، در بستهٔ پاسخ نیز همین سرآیند افزوده میشود. این عمل به معنای موافقت سرور برای برقرار نگاه داشتن اتصال میباشد. بهاینترتیب، کلاینت بدون از بین بردن اتصال TCP میتوانست درخواست بعدی خود را ارسال نماید.
HTTP 1.1
در نسخهٔ ۱٫۱ تمامی اتصالها پایا محسوب میشوند مگر اینکه خلاف آن در بسته مشخص گردد.[۱] اتصالهای پایا در این نسخه از پیام Keep-Alive که در نسخهٔ قبلی استفاده میشد، استفاده نمیکنند. البته مهلتِ ارسالِ درخواست بر روی اتصال قبلی نیز کم شده است. مثلاً در سرور آپاچی نسخهٔ ۲٫۰ این زمان ۱۵ ثانیه[۲] و در نسخهٔ ۲٫۲ تنها ۵ ثانیه[۳] تعریف شده است.
مزیتها
- امکان استفاده از لولهکشی HTTP فراهم میشود.
- نیازی به انجام عمل Handshaking نیست
- امکان گزارش خطاها بدون نیاز به بستن اتصال
براساس متن تعریف پروتکل انتقال ابرمتن (RFC 2616)[صفحه ۴۶] هیچ کاربری نباید بیش از ۲ اتصال همزمان به یک وب سرور یا پراکسی سرور ایجاد نماید. یک سرور پراکسی نیز تنها میتواند 2N اتصال به پراکسی سرور دیگر ایجاد نماید که N تعداد کاربران پراکسی سرور میباشد. این امر برای افزایش کارایی پروتکل انتقال ابرمتن لازم است تا جلوی ایجاد شلوغی در شبکه را بگیرد. در صورت پیادهسازی و استفاده صحیح از لولهکشی HTTP، اتصالهای بیشتر هیچ تأثیری در افزایش کارایی شبکه نخواهند داشت.
معایب
- امروزه با توجه به گسترش شبکههای پرسرعت، باز نگاه داشتن اتصال وبسرور (مثلاً به مدت ۵ ثانیه در آپاچی) بیشتر باعث کاهش کارایی شبکه میشود تا افزایش آن.[۴]
- برای سرویسهایی که تکمنبعی میباشند مانند سرویس میزبانی عکس بازنگاهداشتن اتصال بعد از ارسال منبع تنها هدر دادن توان سرور است.
- در حالت ارتباطدهنده سمج، برنامهمیتواند این امکان را بهدستآورد که به طور مداوم گزارشات خود را باتوجه به بسته نشدن اتصال، ارسال نماید.[۵]
استفاده در مرورگرها
مرورگر نت اسکیپ (از نسخهٔ ۴٫۰۵ به بعد) و مرورگر اینترنت اکسپلورر (از نسخهٔ ۴٬۰۱ به بعد) از اتصال پایا پشتیبانی میکنند.
مرورگر اینترنت اکسپلورر در نسخههای ۶ و ۷ از ۲ اتصال پایا استفاده میکند. اما از نسخهٔ ۸ تعداد اتصالات پایای استفاده شده به ۶ رسیده است.[۶] اتصالات پایا بعد از ۶۰ ثانیه عدمِ فعالیت بسته خواهند شد. این مقدار از طریق رجیستری ویندوز قابل تنظیم است.
مرورگر فایرفاکس نیز از این نوع اتصال پشتیبانی میکند. تعداد اتصالات قابل تنظیم است. (برای هر سرور یا پراکسی سرور و یا در کل) اتصالات پایا بعد از ۱۱۵ ثانیه عدمِ فعالیت بسته خواهند شد که البته این مقدار نیز قابل تنظیم است.[۷]
مروگر اپرا از نسخهٔ ۴ از اتصالات پایا پشتیبانی میکند. تعداد اتصالات همزمان در این مرورگر قابل تنظیم میباشد. (برای هر سرور یا در کل)
جستارهای وابسته
منابع
- مشارکتکنندگان ویکیپدیا. «HTTP Persistent Connection». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۱۳ اردیبهشت ۱۳۹۲.
- ↑ «RFC 2616 - HTTP/1.1 Definition». IETF. تاریخ وارد شده در
|تاریخ=
را بررسی کنید (کمک) - ↑ . Apache 2 Documentation http://httpd.apache.org/docs/2.0/mod/core.html#keepalivetimeout. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - ↑ . Apache 2.2 Documentation http://httpd.apache.org/docs/2.2/mod/core.html#keepalivetimeout. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - ↑ «HTTP Keep Alive is now considered harmful».
- ↑ http://javabyab.com/7762/قابلیت-persistent-connection-پروتکل-http-چیست-مزایایی-دارد؟
- ↑ «IE8 Speeds things up».
- ↑ http://kb.mozillazine.org/Network.http.keep-alive.timeout. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک)