مقبس ويب

من دار الحكمة
اذهب إلى التنقلاذهب الى البحث
وِب سوكِت
معلومات عامة
موقع الويب
P9151
websockets (الخاصية P9151 غير موجودة، لا يمكن تحديد نوع البيانات الواجب استخدامه.) عدل القيمة على Wikidata
P11144
6555138000945152 (الخاصية P11144 غير موجودة، لا يمكن تحديد نوع البيانات الواجب استخدامه.) عدل القيمة على Wikidata
مستودع الشفرة المصدرية
P4742
ws (الخاصية P4742 غير موجودة، لا يمكن تحديد نوع البيانات الواجب استخدامه.)[2] عدل القيمة على Wikidata
P8205
Web/API/WebSockets_API (الخاصية P8205 غير موجودة، لا يمكن تحديد نوع البيانات الواجب استخدامه.) عدل القيمة على Wikidata
البروتوكول

مقبس ويب (بالإنجليزية: WebSocket)‏ هو بروتوكول لاتصالات الحاسوب، يوفر قنوات اتصال ثنائية الاتجاه عبر اتصال TCP واحد. تم توحيد بروتوكول مقبس ويب من قبل IETF ك RFC 6455 في عام 2011. تُعرف مواصفات واجهة برمجة التطبيقات الحالية التي تسمح لتطبيقات الويب باستخدام هذا البروتوكول بأسم مقبس ويب.[3]

رسم تخطيطي يوضح الاتصال باستخدام مقبس ويب
رسم تخطيطي يوضح الاتصال باستخدام مقبس ويب

يختلف بروتوكول مقبس ويب عن بروتوكول إتش تي تي بي. كلا البروتوكولين يقعان في الطبقة السابعة في نموذج OSI ويعتمدان على TCP في الطبقة الرابعة. على الرغم من اختلافهما ، إلا أن RFC 6455 يشير إلى أن مقبس ويب "مصمم للعمل عبر منافذ إتش تي تي بي 443 و 80 وكذلك لدعم الوكلاء والوسطاء إتش تي تي بي" ، مما يجعله متوافقًا مع إتش تي تي بي. ولتحقيق التوافق .[4] يتيح بروتوكول مقبس ويب التفاعل بين متصفح الويب (أو تطبيق العميل الآخر) وخادم الويب بتكلفة أقل من البدائل نصف الاتجاه مثل استطلاع إتش تي تي بي ، مما يسهل نقل البيانات في الوقت الفعلي من وإلى الخادم. يتم ذلك عن طريق توفير طريقة موحدة للسماح للخادم بإرسال المحتوى إلى العميل دون طلبه من العميل ، والسماح بتمرير الرسائل قدمًا وعائدًا مع الاحتفاظ بالاتصال مفتوحًا. وبهذه الطريقة ، يمكن أن يحدث حوار مستمر ذهابًا وإيابًا بين العميل والخادم. تتم الاتصالات عادةً عبر منفذ TCP رقم 443 (أو 80 في حالة الاتصالات غير المؤمنة) ، مما يفيد في البيئات التي تحظر الاتصالات الإنترنتية غير الويب باستخدام جدار الحماية. يدعم معظم المتصفحات البروتوكول ، بما في ذلك جوجل كروم، وفايرفوكس، ومايكروسوفت إيدج، وإنترنت إكسبلورر، وسفاري ووأوبرا.[5]

التاريخ

أشارت المواصفة HTML5 لأول مرة إلى مقبس ويب بأسم أتصال بروتوكول التحكم بالنقل (بالإنجليزية: TCPConnection)‏ [6] بأعتبارُها عبارة عن حاوية مؤقتة لواجهة برمجة التطبيقات المستندة إلى مأخذ TCP. وفي يونيو 2008، أدت سلسلة من المناقشات التي قادها مايكل كارتر إلى إصدار الإصدار الأول من البروتوكول المعروف باسم مقبس ويب.[6] تم صياغة اسم "مقبس ويب" من قبل إيان هيكسون ومايكل كارتر بعد ذلك بوقت قصير من خلال التعاون في غرفة الدردشة #whatwg على IRC[7]، وكتبها إيان هيكسون للإدراج في مواصفة HTML5. وفي ديسمبر 2009، كان متصفح Google Chrome 4 أول متصفح يدعم بشكل كامل المعيار، مع تمكين مقبس ويب بشكل افتراضي. تم نقل تطوير بروتوكول مقبس ويب من مجموعة W3C وWHATWG إلى IETF في فبراير 2010[8]، وكتبها إيان هيكسون لمراجعتها في اثنين من المراجعات. وبعد تمكين البروتوكول في عدة متصفحات، تم الانتهاء من RFC 6455 بواسطة إيان فيت في ديسمبر 2011. وقدم RFC 7692 تمديد ضغط باستخدام خوارزمية DEFLATE على أساس رسالة فردية.

مثال لعميل عبر جافاسكربت

const socket = new WebSocket('wss://game.example.com/ws/updates');
socket.onopen = function () {
  setInterval(function() {
    if (socket.bufferedAmount == 0)
      socket.send(getUpdateData());
  }, 50);
};
socket.onmessage = function(event) {
  handleUpdateData(event.data);
};
socket.onclose = function(event) {
  onSocketClose(event);
};
socket.onerror = function(event) {
  onSocketError(event);
};

المراجع

  1. 1٫0 1٫1 وصلة مرجع: https://api.github.com/repos/whatwg/websockets. الوصول: 5 أبريل 2025.
  2. مذكور في: '. الفصل: 11.1.1. Registration of "ws" Scheme.
  3. "WebSockets Standard". websockets.spec.whatwg.org. مؤرشف من الأصل في 12 مارس 2023. اطلع عليه بتاريخ 2023-03-12. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ الوصول= (مساعدة)
  4. "RFC ft-ietf-hybi-thewebsocketprotocol: The WebSocket Protocol". IETF Datatracker (بEnglish). 2011-12-11. Archived from the original on 12 مارس 2023. Retrieved 2023-03-12. {{استشهاد بخبر}}: تحقق من التاريخ في: |تاريخ الوصول= (help)
  5. "The WebSocket API (WebSockets) - Web APIs | MDN". developer.mozilla.org (بالإنجليزية الأمريكية). Archived from the original on 12 مارس 2023. Retrieved 2023-03-12. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ الوصول= (help)
  6. 6٫0 6٫1 "[whatwg] TCPConnection feedback from Michael Carter on 2008-06-18 (whatwg@whatwg.org from June 2008)". lists.w3.org. مؤرشف من الأصل في 7 مارس 2023. اطلع عليه بتاريخ 2023-03-12. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ الوصول= (مساعدة)
  7. "IRC logs: freenode / #whatwg / 20080618". krijnhoetmer.nl. مؤرشف من الأصل في 12 مارس 2023. اطلع عليه بتاريخ 2023-03-12. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ الوصول= (مساعدة)
  8. "The WebSocket protocol". IETF Datatracker (بEnglish). Archived from the original on 12 مارس 2023. Retrieved 2023-03-12. {{استشهاد بخبر}}: تحقق من التاريخ في: |تاريخ الوصول= (help)