إذن كيف تعمل المواقع الإلكترونية؟
الآن لدي دورة كاملة لتطوير الويب ، لذلك نظرًا لأن هذه دورة لغة Python
، فلن نتعمق في هذا الموضوع.
بدلاً من ذلك ، سنركز على جانب بايثون للأشياء.
لكني أرغب في مساعدتك على فهم ما نبنيه وكيف يعمل كل شيء ، لأنه في نهاية هذه الدورة
التدريبية ، ستتمكن بالفعل من تغيير محفظتك ، وتحديث محفظتك حسب رغبتك
، وعرض المشاريع التي بنينا خلال الدورة.
لذلك لدي موقع على شبكة الإنترنت لك هنا.
لدينا xkcd ، وهو موقع فكاهي مضحك قليلاً.
إذا قمت بالنقر فوق "تحديث" هنا أو أدخل عنوان URL هذا ، فسيتم نقلي إلى موقع الويب هذا.
لكن كيف يعمل هذا في الواقع؟
كيف يمكن لمتصفحي في هذه الحالة Google Chrome عرض صفحة الويب هذه لي؟
أحتاج أن أكون متصلاً بالإنترنت ، أليس كذلك؟
لذلك هناك نوع من البيانات التي يتم نقلها لي لأتمكن من رؤية ذلك.
لذلك دعونا نستكشف كيف يعمل هذا.
وانظر إلى ذلك.
لقد أنشأت مخططًا صغيرًا لطيفًا لك.
وفي هذا الرسم البياني ، سأحاول فقط أن أخبرك بالضبط كيف يعمل.
انها بسيطة جدا.
لدينا متصفحنا هنا ، والذي يمكن أن يكون Google Chrome ، أو Safari ، أو Firefox
، لا يهم.
هذا المتصفح ، يمكننا كتابة موقع ويب فيه أو ربما Google لموقع ويب ثم النقر فوق أحد مواقع
الويب.
عندما نضغط على أحد مواقع الويب ، فإن ما يحدث هو أنه من خلال الإنترنت ، يقوم المتصفح بتقديم طلب وصولاً
إلى جهاز آخر.
وهذا الجهاز ، الذي نسميه الخادم ، موجود في أي مكان في العالم.
لا يهم حقًا لأنه من خلال شبكة الإنترنت الخاصة بنا ، سيقول المتصفح ، مرحبًا ، هذا
الموقع ، من يمتلك هذا الموقع؟
أو أي آلة يمكنها أن تخدمني الملفات الخاصة بهذا الموقع؟
وباستخدام بعض المنطق المعقد ، سيجد هذا الخادم الذي هو في نهاية اليوم مجرد جهاز كمبيوتر
وسنقوم في الواقع بعرض ونشر الخادم الخاص بنا.
حسنًا ، تقول ببساطة ، مهلاً ، أعطني بعض البيانات ، لأنه بدون بيانات ، لا يمكنني عرض أي شيء على صفحة
ويب.
والخادم.
حسنًا ، أولاً وقبل كل شيء ، يتواصلون عبر شيء يسمى HTTP و https لأن المتصفح والخادم
هما جهازان مختلفان.
الصحيح.
المتصفح موجود على جهاز الكمبيوتر المحمول الخاص بي الآن.
والجهاز الذي هو خادم.
يمكن أن يكون في أي مكان في العالم.
إنهم بحاجة إلى التواصل بطريقة ما.
ونحتاج إلى قاعدة لنقول ، كما تعلمون ، لا نريد أن تتحدث كل هذه الآلات مع بعضها البعض بدون
قواعد معمول بها.
على سبيل المثال ، يمكننا أن نتفق على أنه عندما نتواصل بيني وبينك ، سأتحدث باللغة الإنجليزية
بنفس الطريقة.
يسمح لي HTTP و https ، وهو نسخة مشفرة مؤمنة من الاتصال ، أن أقول ، مرحبًا ، هل يمكنك أن تعطيني
البيانات والخادم لفهمها؟
أوه.
يحتاج هذا الموقع أو هذا المتصفح إلى البيانات التي أمتلكها.
إذا عدت إلى هذا الموقع هنا.
ترى أنني أستخدم HTTPS وهي تقول أنني أريد استخدام بروتوكول HTTPS.
هذه هي اللغة لتوصيل ذلك.
اريد ان اذهب الى هذا الموقع.
وبمجرد الضغط على مفتاح الإدخال Enter ، سأقوم بتقديم هذا الطلب على طول الطريق إلى خادم في مكان
ما ، ثم سيستجيب الخادم بهذه البيانات.
دعنا نواصل رسمنا التخطيطي.
لذلك تم تقديم الطلب للتو.
هذا الخادم لديه ثلاثة ملفات نحتاجها.
أحدهما هو ملف HTML ، وهذا الملف هو نص أو محتوى موقع الويب.
الملف الآخر هو ملف CSS وهذا يحتوي على جميع أنماط الموقع.
هذه هي الألوان ، ربما بعض الخطوط ، ربما موضع العناصر ، أي شيء له علاقة بالنمط.
لذلك لا يبدو وكأنه قطعة نص مملة.
ومن ثم لدينا JavaScript.
JavaScript هو ما يعطي مواقع الويب السلوك.
عندما أقوم بتسجيل الدخول إلى Facebook أو ربما أغرد شيئًا ما على Twitter ، فإن JavaScript
يسمح لي بتنفيذ هذه الإجراءات لأنه باستخدام HTML و CSS فقط ، لدينا نص وبعض التصميم الجميل.
باستخدام JavaScript ، يمكننا اتخاذ إجراءات ، لكننا لسنا بحاجة إلى التركيز على ذلك كثيرًا.
كل ما نحتاج إلى معرفته هو أن الخادم ، لأنه جهاز كمبيوتر موجود في ملفاته ، لديه هذه الملفات الثلاثة
لنا.
وهذه الملفات الثلاثة ، ما حدث يتم إرساله إلى المتصفح لأن المتصفح كان لطيفًا حقًا وسأل ، مرحبًا
، هل يمكنك إعطائي بيانات؟
ويقول الخادم ، بالتأكيد ، ها هو ويرسل لنا هذه الملفات الثلاثة وهذه الملفات الثلاثة.
عندما يتم إعادتهم ، يفهمهم المتصفح.
ولأنه يفهمهم ، على الرغم من أنه قد يبدو مثل هراء ، فإنه قادر على عرض
هذا الموقع لنا.
لكن دعني اسألك سؤال.
حتى الآن ، لم أتحدث حقًا عن بايثون.
اعتقدت أن هذه كانت دورة بايثون.
أندريه ، أين تخبرني بكل هذه الأشياء التي لا أهتم بها؟
حسنًا ، لأنه يوجد هنا قطعة واحدة يمكن بالفعل كتابتها بلغة بايثون.
يمكنك تخمين ما هو هذا؟
إذا خمنت الخادم.
تهانينا.
تحصل على 5000 نقطة.
كما ترى ، المتصفح شيء جيد إنه تطبيق نقوم بتنزيله على جهاز الكمبيوتر الخاص بنا.
الصحيح.
لكن حتى الآن ، كان الخادم نوعًا من صندوق الغموض ، آلة ، كمبيوتر في مكان ما.
لكن يمكن لمبرمجي Python كتابة المنطق والقواعد التي يمكن للخوادم العمل وفقًا لها.
لذلك كل هذه الاتصالات ، هل يمكن أن تعطيني بيانات يمكن تفسيرها في Python ثم إرسال هذه البيانات
إلى المتصفح باستخدام Python.
وسنقوم ببناء خادمنا الخاص على الفيديوهات التالية ، ولكننا نتطرق أيضًا إلى ملفات
HTML و CSS و JavaScript حتى نتمكن من عرض شيء مثل موقع الويب.
الآن أريد أن أنهي هذا الفيديو بسؤال واحد.
هل تعتقد أنه يجب كتابة هذا الخادم بلغة بايثون؟
ماذا تعتقد؟
لا ، ليس كذلك.
حق؟
المتصفح لا يهتم بما يشبه هذا الجهاز.
كل ما يهم هو هذه الملفات الثلاثة.
ولأننا نتحدث في بروتوكول http https هذا.
يقول المتصفح ، مرحبًا ، لا يهمني اللغة التي تتحدث بها ، ولا يهمني أي شيء.
سأخبرك فقط من خلال https ، فقط أعطني البيانات التي أريدها ويمكننا فعل أي منطق
نريده هنا.
يمكنني إرسال رسائل بريد إلكتروني من هنا إذا أردت.
يمكنني إرسال رسائل نصية ، يمكنني إجراء عمليات حسابية.
يمكنني أن ألعب لعبة على هذا الكمبيوتر إذا أردت.
لا يهم حقًا ما دمت قادرًا على إرسال هذه الملفات مرة أخرى إلى المتصفح.
لذلك يمكننا فعل ذلك باستخدام بايثون.
لكن يمكننا القيام بذلك باستخدام لغات أخرى مثل Node ، مثل PHP ، مثل Java ، حتى نتمكن من كتابة خادم بأي
نوع من اللغات.
الشيء الوحيد الذي يمكننا فعله حقًا هو جانب المتصفح.
من ناحية المتصفح ، يتعين علينا استخدام هذه الملفات الثلاثة لأنه حسنًا ، على الأقل
بشكل عام ، يمكنه فقط فهم JavaScript ، وهي لغة برمجة أخرى.
حسنًا ، دعنا نستكشف هذا الموضوع أكثر قليلاً في الفيديو التالي.