مقبس ويب
مستودع الشفرة المصدرية | |
---|---|
موقع الويب | |
البروتوكول |
مقبس ويب (بالإنجليزية: WebSocket) هو بروتوكول لاتصالات الحاسوب، يوفر قنوات اتصال ثنائية الاتجاه عبر اتصال TCP واحد. تم توحيد بروتوكول مقبس ويب من قبل IETF ك RFC 6455 في عام 2011. تُعرف مواصفات واجهة برمجة التطبيقات الحالية التي تسمح لتطبيقات الويب باستخدام هذا البروتوكول بأسم مقبس ويب.[2]
![رسم تخطيطي يوضح الاتصال باستخدام مقبس ويب](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/1/10/Websocket_connection.png/220px-Websocket_connection.png)
يختلف بروتوكول مقبس ويب عن بروتوكول إتش تي تي بي. كلا البروتوكولين يقعان في الطبقة السابعة في نموذج OSI ويعتمدان على TCP في الطبقة الرابعة. على الرغم من اختلافهما ، إلا أن RFC 6455 يشير إلى أن مقبس ويب "مصمم للعمل عبر منافذ إتش تي تي بي 443 و 80 وكذلك لدعم الوكلاء والوسطاء إتش تي تي بي" ، مما يجعله متوافقًا مع إتش تي تي بي. ولتحقيق التوافق .[3]
يتيح بروتوكول مقبس ويب التفاعل بين متصفح الويب (أو تطبيق العميل الآخر) وخادم الويب بتكلفة أقل من البدائل نصف الاتجاه مثل استطلاع إتش تي تي بي ، مما يسهل نقل البيانات في الوقت الفعلي من وإلى الخادم. يتم ذلك عن طريق توفير طريقة موحدة للسماح للخادم بإرسال المحتوى إلى العميل دون طلبه من العميل ، والسماح بتمرير الرسائل قدمًا وعائدًا مع الاحتفاظ بالاتصال مفتوحًا. وبهذه الطريقة ، يمكن أن يحدث حوار مستمر ذهابًا وإيابًا بين العميل والخادم. تتم الاتصالات عادةً عبر منفذ TCP رقم 443 (أو 80 في حالة الاتصالات غير المؤمنة) ، مما يفيد في البيئات التي تحظر الاتصالات الإنترنتية غير الويب باستخدام جدار الحماية.
يدعم معظم المتصفحات البروتوكول ، بما في ذلك جوجل كروم، وفايرفوكس، ومايكروسوفت إيدج، وإنترنت إكسبلورر، وسفاري ووأوبرا.[4]
التاريخ
[عدل]أشارت المواصفة HTML5 لأول مرة إلى مقبس ويب بأسم أتصال بروتوكول التحكم بالنقل (بالإنجليزية: TCPConnection) [5] بأعتبارُها عبارة عن حاوية مؤقتة لواجهة برمجة التطبيقات المستندة إلى مأخذ TCP. وفي يونيو 2008، أدت سلسلة من المناقشات التي قادها مايكل كارتر إلى إصدار الإصدار الأول من البروتوكول المعروف باسم مقبس ويب.[5]
تم صياغة اسم "مقبس ويب" من قبل إيان هيكسون ومايكل كارتر بعد ذلك بوقت قصير من خلال التعاون في غرفة الدردشة #whatwg على IRC[6]، وكتبها إيان هيكسون للإدراج في مواصفة HTML5. وفي ديسمبر 2009، كان متصفح Google Chrome 4 أول متصفح يدعم بشكل كامل المعيار، مع تمكين مقبس ويب بشكل افتراضي.
تم نقل تطوير بروتوكول مقبس ويب من مجموعة W3C وWHATWG إلى IETF في فبراير 2010[7]، وكتبها إيان هيكسون لمراجعتها في اثنين من المراجعات. وبعد تمكين البروتوكول في عدة متصفحات، تم الانتهاء من 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);
};
المراجع
[عدل]- ^ ا ب وصلة مرجع: https://api.github.com/repos/whatwg/websockets. الوصول: 10 ديسمبر 2022.
- ^ "WebSockets Standard". websockets.spec.whatwg.org. مؤرشف من الأصل في 2023-03-12. اطلع عليه بتاريخ 2023-03-12.
- ^ "RFC ft-ietf-hybi-thewebsocketprotocol: The WebSocket Protocol". IETF Datatracker (بالإنجليزية). 11 Dec 2011. Archived from the original on 2023-03-12. Retrieved 2023-03-12.
- ^ "The WebSocket API (WebSockets) - Web APIs | MDN". developer.mozilla.org (بالإنجليزية الأمريكية). Archived from the original on 2023-03-12. Retrieved 2023-03-12.
- ^ ا ب "[whatwg] TCPConnection feedback from Michael Carter on 2008-06-18 (whatwg@whatwg.org from June 2008)". lists.w3.org. مؤرشف من الأصل في 2023-03-07. اطلع عليه بتاريخ 2023-03-12.
- ^ "IRC logs: freenode / #whatwg / 20080618". krijnhoetmer.nl. مؤرشف من الأصل في 2023-03-12. اطلع عليه بتاريخ 2023-03-12.
- ^ "The WebSocket protocol". IETF Datatracker (بالإنجليزية). Archived from the original on 2023-03-12. Retrieved 2023-03-12.