مقبس ويب

مقبس ويب  هو بروتوكول لاتصالات الحاسوب، يوفر قنوات اتصال ثنائية الاتجاه عبر اتصال TCP واحد. تم توحيد بروتوكول مقبس ويب من قبل IETF ك RFC 6455 في عام 2011. تُعرف مواصفات واجهة برمجة التطبيقات الحالية التي تسمح لتطبيقات الويب باستخدام هذا البروتوكول بأسم مقبس ويب.

يختلف بروتوكول مقبس ويب عن بروتوكول إتش تي تي بي. كلا البروتوكولين يقعان في الطبقة السابعة في نموذج OSI ويعتمدان على TCP في الطبقة الرابعة. على الرغم من اختلافهما ، إلا أن RFC 6455 يشير إلى أن مقبس ويب "مصمم للعمل عبر منافذ إتش تي تي بي 443 و 80 وكذلك لدعم الوكلاء والوسطاء إتش تي تي بي" ، مما يجعله متوافقًا مع إتش تي تي بي. ولتحقيق التوافق .

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

يدعم معظم المتصفحات البروتوكول ، بما في ذلك جوجل كروم، وفايرفوكس، ومايكروسوفت إيدج، وإنترنت إكسبلورر، وسفاري ووأوبرا.

التاريخ 
أشارت المواصفة HTML5 لأول مرة إلى مقبس ويب بأسم أتصال بروتوكول التحكم بالنقل   بأعتبارُها عبارة عن حاوية مؤقتة لواجهة برمجة التطبيقات المستندة إلى مأخذ TCP. وفي يونيو 2008، أدت سلسلة من المناقشات التي قادها مايكل كارتر إلى إصدار الإصدار الأول من البروتوكول المعروف باسم مقبس ويب.

تم صياغة اسم "مقبس ويب" من قبل إيان هيكسون ومايكل كارتر بعد ذلك بوقت قصير من خلال التعاون في غرفة الدردشة #whatwg على IRC، وكتبها إيان هيكسون للإدراج في مواصفة HTML5. وفي ديسمبر 2009، كان متصفح Google Chrome 4 أول متصفح يدعم بشكل كامل المعيار، مع تمكين مقبس ويب بشكل افتراضي.

تم نقل تطوير بروتوكول مقبس ويب من مجموعة W3C وWHATWG إلى IETF في فبراير 2010، وكتبها إيان هيكسون لمراجعتها في اثنين من المراجعات. وبعد تمكين البروتوكول في عدة متصفحات، تم الانتهاء من 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);
};

المراجع 

إتش تي إم إل 5
بروتوكولات طبقة التطبيق
تطوير الويب
علم الحاسوب في 2011
مصطلحات الإنترنت
مقابس شبكات