في هذا الدرس، سنلقي نظرة على العلاقة بين العملاء والخوادم. توفر بنية العميل/الخادم عددًا غير محدود من إمكانيات الاتصال، وهو ما يجعل الإنترنت ممكنًا . سنغطي الفهم الأساسي لنموذج العميل/الخادم والذي سيتم استخدامه لاحقًا للاتصال بواجهة برمجة التطبيقات. إن تغطية مورد شامل لبنية العميل/الخادم خارج نطاق هذا الدرس - بدلاً من ذلك، سنركز على المبادئ الأساسية للاتصال بين العميل والخادم.
سوف تكون قادرا على:
نموذج خادم العميل لتقنيات الاتصال هو عبارة عن مجموعة من هندسة التطبيقات الموزعة وعمليات الشبكة التي تدير أحمال العمل بين مقدمي الخدمة، الذين يطلق عليهم الخوادم ، وطالبي الخدمة، الذين يطلق عليهم العملاء .
على الرغم من أنه يمكن استخدام نموذج خادم العميل بواسطة برامج داخل جهاز كمبيوتر فردي، إلا أننا سنركز على الجانب الذي يتعامل مع البيئات المتصلة بالشبكة. في هذه الحالة، يقوم العميل بإعداد اتصال بالخادم عبر شبكة محلية (LAN)، أو شبكة واسعة النطاق (WAN) مثل الإنترنت. هل سبق لك أن لعبت Xbox Live أو استخدمت شبكة PlayStation Network؟ جهاز Xbox One الخاص بك هو العميل، وعندما يقوم بتسجيل الدخول إلى الشبكة، فإنه يتصل بخوادم Xbox Live لاسترداد موارد الألعاب مثل التحديثات والفيديو والعروض التوضيحية للألعاب.
يمكن عرض بنية خادم العميل النموذجية متعددة الطبقات التي يستخدمها معظمنا في الحياة اليومية على النحو التالي.
العميل هو جهاز كمبيوتر أو برنامج يطلب خدمة يوفرها الخادم. غالبًا ما يكون الخادم (ولكن ليس دائمًا) موجودًا على جهاز كمبيوتر فعلي منفصل.
الخادم هو جهاز كمبيوتر فعلي مخصص لتشغيل الخدمات لتلبية احتياجات العملاء. اعتمادًا على الخدمة قيد التشغيل، يمكن أن يكون خادم ملفات، أو خادم قاعدة بيانات، أو خادم الوسائط المنزلية، أو خادم الطباعة، أو خادم البريد الإلكتروني، أو خادم الويب .
إن فكرة تواصل العميل والخادم عبر الشبكة هي ما يجعل عرض مواقع الويب والتفاعل مع تطبيقات الويب (مثل Gmail وFacebook وLinkedIn) أمرًا ممكنًا. هذا النموذج هو وسيلة لوصف علاقة الأخذ والعطاء بين العميل والخادم في تطبيق ويب ويتحكم في كيفية مرور المعلومات بين أجهزة الكمبيوتر.
دعونا نرى كيف يبدو تطبيق الويب الأساسي الذي يستقبل طلبًا من عميل الويب ويعمل وفقًا لذلك.
تطبيق الويب (تطبيق الويب) هو برنامج تطبيقي يتم تخزينه على خادم بعيد ويتم تسليمه عبر الإنترنت من خلال واجهة المتصفح. خدمات الويب هي تطبيقات ويب بحكم تعريفها، وتحتوي العديد من مواقع الويب، وإن لم تكن كلها، على تطبيقات ويب. أي مكون موقع ويب يؤدي بعض الوظائف للمستخدم يعتبر بمثابة تطبيق ويب. إن محرك بحث Google عبارة عن تطبيق ويب، إلا أن مفهومه الجذري لا يختلف كثيرًا عن دليل الهاتف الذي يمكّنك من البحث عن الأسماء أو الأرقام.
تستخدم معظم تطبيقات الويب في الواقع واجهة متصفح للتفاعل، أي أن المستخدمين النهائيين يطلبون الوصول ويطلبون المعلومات/الخدمة من هذه التطبيقات من خلال واجهة متصفح ويب حديثة. هناك مئات الطرق لإنشاء تطبيق ويب وتكوينه، لكن معظمها يتبع نفس البنية الأساسية: عميل الويب، وخادم الويب، وقاعدة البيانات.
العميل هو ما يتفاعل معه المستخدم النهائي. يعد رمز "جانب العميل" مسؤولاً فعليًا عن معظم ما يراه المستخدم بالفعل. لطلب بعض المعلومات كصفحة ويب، قد يكون جانب العميل مسؤولاً عن: يشمل:
تتم إدارة معظم هذه المهام بواسطة تقنيات تشبه HTML/CSS/JavaScript لتنظيم المعلومات ونمط الصفحة وتوفير كائنات تفاعلية للتنقل والتركيز.
خادم الويب في تطبيق الويب هو ما يستمع للطلبات الواردة من العملاء. عندما تقوم بإعداد خادم HTTP (بروتوكول نقل النص التشعبي - لغة الإنترنت)، نقوم بإعداده للاستماع إلى رقم المنفذ. يرتبط رقم المنفذ دائمًا بعنوان IP الخاص بجهاز الكمبيوتر. يمكنك اعتبار المنافذ بمثابة قنوات منفصلة على جهاز الكمبيوتر يمكننا استخدامها لأداء مهام مختلفة: يمكن أن يقوم أحد المنافذ بتصفح www.facebook.com بينما يقوم الآخر بجلب بريدك الإلكتروني. وهذا ممكن لأن كل تطبيق (متصفح الويب وعميل البريد الإلكتروني) يستخدم أرقام منافذ مختلفة.
بمجرد إعداد خادم HTTP للاستماع إلى منفذ معين، ينتظر الخادم وصول طلبات العميل إلى هذا المنفذ المحدد. بعد مصادقة العميل، يقوم الخادم بتنفيذ أي إجراءات ينص عليها الطلب ويرسل أي بيانات مطلوبة عبر استجابة HTTP.
قواعد البيانات هي أسس بنية الويب. تعد SQL/NoSQL أو أي نوع مماثل من قواعد البيانات مكانًا لتخزين المعلومات بحيث يمكن الوصول إليها وإدارتها وتحديثها بسهولة. إذا كنت تقوم بإنشاء موقع تواصل اجتماعي، على سبيل المثال، فقد تستخدم قاعدة بيانات لتخزين معلومات حول المستخدمين والمشاركات والتعليقات وما إلى ذلك. عندما يطلب الزائر صفحة، تأتي البيانات المدرجة في الصفحة من قاعدة بيانات الموقع، السماح بتفاعلات المستخدم في الوقت الفعلي مع مواقع مثل Facebook أو تطبيقات مثل Gmail.
في صورة المثال أعلاه، يمكننا أن نرى الإعداد المذكور أعلاه قيد التنفيذ. يرسل المتصفح طلبًا إلى خادم الويب عن طريق الاتصال بالمجال الخاص به، مثل www.google.com. بناءً على هوية مقدم الطلب، يقوم الخادم بجمع المعلومات الضرورية لقاعدة بيانات SQL. يتم تغليف هذه المعلومات كرمز HTML وإرسالها مرة أخرى إلى العميل. يقرأ متصفح الويب معلومات الهيكلة والتصميم المضمنة في HTML ويعرض الصفحة للمستخدم وفقًا لذلك.
هناك الكثير من التفاصيل حول بنيات العميل/الخادم وكيفية ظهورها على الإنترنت. سنركز أكثر قليلاً على الأفكار الموضحة في هذا القسم من خلال إعداد العميل وتقديم الطلبات في بايثون. ستساعدنا هذه المهارات في طلب البيانات من الخوادم لتجاربنا التحليلية. فيما يلي بعض الموارد الإضافية لك إذا كنت تريد التعمق في نموذج خادم العميل وكيفية إعداده للعديد من البنى المختلفة.
في هذا الدرس، نظرنا إلى أساسيات نموذج خادم العميل وركزنا على كيفية تنفيذ هذا النموذج للتطبيقات المستندة إلى الويب. لقد نظرنا إلى دور عملاء الويب وخوادم الويب وقواعد البيانات التي تحمل معلومات العميل. في الدروس التالية، سنرى كيفية تنفيذ هذه الأفكار باستخدام بايثون!