الفرق بين مقابس الويب وعمال الويب وعمال الخدمة وذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

الفرق بين مآخذ الويب وعاملي الويب وعاملي الخدمة

مآخذ الويب ، وعمال الويب ، وعمال الخدمة ... هذه مصطلحات ربما تكون قد قرأتها أو سمعتها. ربما ليس كلهم ​​، ولكن من المحتمل واحد منهم على الأقل. وحتى إذا كان لديك تعامل جيد مع تطوير الواجهة الأمامية ، فهناك فرصة جيدة لأنك تحتاج إلى البحث عما تعنيه. أو ربما تكون مثلي وتخلط بينهم من وقت لآخر. تبدو جميع المصطلحات متشابهة بشكل فظيع ومن السهل حقًا الخلط بينها.

لذلك ، دعونا نقسمهم معًا ونميز بين مآخذ الويب وعاملي الويب وعاملي الخدمة. ليس بالمعنى الدقيق للكلمة حيث نقوم بغوص عميق والحصول على خبرة عملية مع كل واحد - أشبه بمساعد صغير لوضع إشارة مرجعية في المرة القادمة I أنت بحاجة لتجديد المعلومات.

مرجع سريع

سنبدأ بنظرة عامة عالية المستوى للمقارنة والتباين بسرعة.

الميزات ما هو عليه
مقبس الويب ينشئ اتصالًا مفتوحًا ومستمرًا ثنائي الاتجاه بين المتصفح والخادم لإرسال الرسائل واستلامها عبر اتصال واحد يتم تشغيله بواسطة الأحداث.
عامل الويب يسمح بتشغيل البرامج النصية في الخلفية في سلاسل منفصلة لمنع البرامج النصية من حظر بعضها البعض على السلسلة الرئيسية.
خدمة العمال نوع من Web Worker يقوم بإنشاء خدمة خلفية تعمل ببرامج وسيطة للتعامل مع طلبات الشبكة بين المستعرض والخادم ، حتى في المواقف غير المتصلة.

مآخذ الويب

مقبس الويب هو بروتوكول اتصال ثنائي الاتجاه. فكر في هذا على أنه مكالمة جارية بينك وبين صديقك لن تنتهي إلا إذا قرر أحدكما إنهاء المكالمة. الاختلاف الوحيد هو أنك المتصفح وأن صديقك هو الخادم. يرسل العميل طلبًا إلى الخادم ويستجيب الخادم بمعالجة طلب العميل والعكس صحيح.

الفرق بين مآخذ الويب وعاملي الويب وعاملي الخدمة

التواصل يعتمد على الأحداث. أ WebSocket يتم إنشاء الكائن ويتصل بالخادم ، وتقوم الرسائل بين الخادم بتشغيل الأحداث التي ترسلها وتستقبلها.

هذا يعني أنه عند إجراء الاتصال الأولي ، يكون لدينا اتصال بين العميل والخادم حيث يتم بدء الاتصال والبقاء على قيد الحياة حتى يختار العميل أو الخادم إنهاءه عن طريق إرسال CloseEvent. وهذا يجعل Web Sockets مثالية للتطبيقات التي تتطلب اتصالًا مستمرًا ومباشرًا بين العميل والخادم. معظم التعريفات التي رأيتها تستدعي تطبيقات الدردشة كحالة استخدام شائعة - تكتب رسالة ، وترسلها إلى الخادم ، وتطلق حدثًا ، ويستجيب الخادم بالبيانات دون الحاجة إلى اختبار اتصال الخادم مرارًا وتكرارًا.

ضع في اعتبارك هذا السيناريو: أنت في طريقك للخروج وقررت تشغيل خرائط Google. من المحتمل أنك تعرف بالفعل كيفية عمل خرائط Google ، ولكن إذا لم تكن تعرف ذلك ، فستجد موقعك تلقائيًا بعد الاتصال بالتطبيق وتتبعه أينما ذهبت. يستخدم نقل البيانات في الوقت الفعلي لتتبع موقعك طالما كان هذا الاتصال حيًا. هذا هو Web Socket الذي ينشئ محادثة مستمرة ثنائية الاتجاه بين المتصفح والخادم للحفاظ على هذه البيانات محدثة. قد يستخدم تطبيق رياضي مع نتائج في الوقت الفعلي أيضًا Web Sockets بهذه الطريقة.

الاختلاف الكبير بين Web Sockets و Web Workers (وبالتالي ، كما سنرى ، عمال الخدمة) هو أن لديهم وصولاً مباشرًا إلى DOM. بينما يعمل Web Workers (و Service Workers) على خيوط منفصلة ، فإن Web Sockets هي جزء من الخيط الرئيسي الذي يمنحهم القدرة على التعامل مع DOM.

هناك أدوات وخدمات للمساعدة في إنشاء وصيانة اتصالات Web Socket ، بما في ذلك: مجموعة المقبس, أسينكابي, راعي البقر, ملك WebSocket, القنواتو مقبس الويب الغوريلا. MDN لديه قائمة التشغيل التي تتضمن خدمات أخرى.

المزيد من معلومات مآخذ الويب

عمال الويب

ضع في اعتبارك سيناريو تحتاج فيه إلى إجراء مجموعة من العمليات الحسابية المعقدة مع إجراء تغييرات في نفس الوقت على DOM. JavaScript هو تطبيق ذو ترابط واحد وقد يؤدي تشغيل أكثر من برنامج نصي إلى تعطيل واجهة المستخدم التي تحاول إجراء تغييرات عليها بالإضافة إلى العمليات الحسابية المعقدة التي يتم إجراؤها.

هذا هو المكان الذي يلعب فيه عمال الويب.

يسمح عاملو الويب بتشغيل البرامج النصية في الخلفية في سلاسل منفصلة لمنع البرامج النصية من حظر بعضها البعض على مؤشر الترابط الرئيسي. وهذا يجعلها رائعة لتحسين أداء التطبيقات التي تتطلب عمليات مكثفة حيث يمكن إجراء هذه العمليات في الخلفية على خيوط منفصلة دون التأثير على واجهة المستخدم من العرض. لكنهم ليسوا رائعين في الوصول إلى DOM لأنه ، على عكس Web Sockets ، يعمل عامل الويب خارج السلسلة الرئيسية في مؤشر ترابط خاص به.

عامل الويب هو كائن يقوم بتنفيذ ملف برنامج نصي باستخدام ملف Worker كائن لتنفيذ المهام. وعندما نتحدث عن العمال ، فإنهم يميلون إلى الانقسام إلى ثلاثة أنواع:

  • العمال المتفانون: لا يمكن الوصول إلى العامل المتفاني إلا من خلال النص الذي يسميه. لا يزال ينفذ مهام عامل الويب النموذجي ، مثل البرامج النصية متعددة الخيوط.
  • العمال المشتركون: العامل المشترك هو عكس العامل المتفاني. يمكن الوصول إليه من خلال نصوص متعددة ويمكنه عمليًا تنفيذ أي مهمة ينفذها عامل الويب طالما كانت موجودة في نفس المجال مثل العامل.
  • عمال الخدمة: يعمل عامل الخدمة كوكيل شبكة بين التطبيق والمتصفح والخادم ، مما يسمح بتشغيل البرامج النصية حتى في حالة عدم اتصال الشبكة. سنصل إلى هذا في القسم التالي.

المزيد من المعلومات حول Web Workers

عمال الخدمة

هناك بعض الأشياء التي لا نتحكم فيها كمطورين ، وأحد هذه الأشياء هو اتصال شبكة المستخدم. مهما كانت الشبكة التي يتصل بها المستخدم فهي ما هي عليه. لا يسعنا سوى بذل قصارى جهدنا لتحسين تطبيقاتنا حتى تحقق أفضل أداء ممكن على أي اتصال يتم استخدامه.

يعد عمال الخدمة أحد الأشياء التي يمكننا القيام بها لتحسين أداء التطبيق بشكل تدريجي. يجلس عامل الخدمة بين التطبيق والمتصفح والخادم ، مما يوفر اتصالاً آمنًا يعمل في الخلفية في سلسلة منفصلة ، وذلك بفضل - كما خمنت - عمال الويب. كما تعلمنا في القسم الأخير ، يعد عمال الخدمة واحدًا من ثلاثة أنواع من عمال الويب.

إذن ، لماذا قد تحتاج إلى عامل خدمة يجلس بين تطبيقك ومتصفح المستخدم؟ مرة أخرى ، ليس لدينا سيطرة على اتصال شبكة المستخدم. قل الاتصال يعطي لسبب غير معروف. سيؤدي ذلك إلى قطع الاتصال بين المتصفح والخادم ، مما يمنع نقل البيانات ذهابًا وإيابًا. يحافظ عامل الخدمة على الاتصال ، ويعمل كوكيل غير متزامن قادر على اعتراض الطلبات وتنفيذ المهام - حتى بعد فقد اتصال الشبكة.

رمز ترس الترس المسمى Service Worker بين رمز المستعرض المسمى العميل ورمز السحابة المسمى الخادم.
الفرق بين مآخذ الويب وعاملي الويب وعاملي الخدمة

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

الشيء المهم الآخر الذي يجب معرفته عن عمال الخدمة هو أنهم يعترضون كل طلب واستجابة من تطبيقك. على هذا النحو ، فإن لديهم بعض التداعيات الأمنية ، وأبرزها أنهم يتبعون سياسة نفس الأصل. لذلك ، هذا يعني عدم تشغيل عامل خدمة من خدمة CDN أو خدمة تابعة لجهة خارجية. تتطلب أيضًا اتصال HTTPS آمنًا ، مما يعني أنك ستحتاج إلى شهادة SSL لتشغيلها.

مزيد من المعلومات حول عمال الخدمة

اختتام

هذا شرح عالي المستوى للاختلافات (والتشابهات) بين مآخذ الويب ، وعمال الويب ، وعمال الخدمة. مرة أخرى ، المصطلحات والمفاهيم متشابهة بدرجة كافية لخلط أحدهما مع الآخر ، ولكن نأمل أن يمنحك هذا فكرة أفضل عن كيفية التمييز بينهما.

بدأنا الأمور بجدول مرجعي سريع. هذا هو الشيء نفسه ، لكن تم توسيعه قليلاً لإجراء مقارنات أكثر سمكًا.

الميزات ما هو عليه متعدد الخيوط؟ HTTPS؟ الوصول إلى DOM؟
مقبس الويب ينشئ اتصالًا مفتوحًا ومستمرًا ثنائي الاتجاه بين المتصفح والخادم لإرسال الرسائل واستلامها عبر اتصال واحد يتم تشغيله بواسطة الأحداث. يعمل على الخيط الرئيسي غير مطلوب نعم
عامل الويب يسمح بتشغيل البرامج النصية في الخلفية في سلاسل منفصلة لمنع البرامج النصية من حظر بعضها البعض على السلسلة الرئيسية. يعمل على موضوع منفصل مطلوب: لا
خدمة العمال نوع من Web Worker يقوم بإنشاء خدمة خلفية تعمل ببرامج وسيطة للتعامل مع طلبات الشبكة بين المستعرض والخادم ، حتى في المواقف غير المتصلة. يعمل على موضوع منفصل مطلوب: لا

الطابع الزمني:

اكثر من الخدع المغلق