سنتعرف في هذه المقالة على ماهيّة خوادم الويب، كيفيّة عملها، وأهميتها.

المتطلبات: يجب أن تكون على علم مُسبَق بكيفيّة عمل الإنترنت، ومُتفَهِماً الفرق بين صفحة الويب، الموقع، خادم الويب، ومُحرِّك البحث.
الهدف: ستتعلم ماهيّة خوادم الويب وستحصل على فهم عام لكيفيّة عملها.

الخلاصة

يُمكِن أن يشير مُصطلَح "خادم الويب (Web Server)" إلى برمجيّة أو جهاز، أو لكلاهما عندما يعملان معاً.

  1. خادم الويب (كجهاز) هو حاسوب يُخزِّن برمجيّة خادم الويب والملفات المكوِّنة للموقع (مثل ملفات لغة ترميز النص الفائق، الصور، ملفات صفحات الأنماط الانسيابية، وملفات الجافاسكربت). يتصِل هذا الخادم بالشابكة (الإنترنت) ويدعم التبادل المادي للبيانات مع الأجهزة الأخرى المتصلة بالويب.
  2. خادم الويب (كبرمجيّة) يتضمن أجزاء عدَّة تتحكم بطريق وصول مُستخدمين الويب للملفات المُستضافة، يتضمن على الأقل خادم ميثاق نقل النص الفائق (HTTP Server). خادم ميثاق نقل النص الفائق هو جزء من برمجيّة تفهم الروابط (عناوين الويب) وميثاق نقل النص الفائق (ميثاق يستخدمه مُتصفِحُك لعرض صفحات الويب). يُمكِن الوصول لهذا الخادم عبر أسماء نطاقات الموقع (مثل mozilla.org) التي يُخزِنها، والوصول للمحتوى الذي تقدمه لأجهزة مستخدميها.

كشرح بسيط جداً، كلما احتاج المُتصفِح ملفاً مُستضافاً على خادم ويب، يطلب المُتصفِح الملف عبر ميثاق نقل النص الفائق (HTTP). عندما يصل الطلب لخادم الويب المطلوب (الجهاز)، يقبل خادم ميثاق نقل النص الفائق (البرمجيّة) هذا الطلب، ويبحث عن الملف المطلوب (إن لم يكن موجوداً، سيعيد الخادم رمز الحالة 404)، ثم يُعيدُه بواسطة ميثاق نقل النص الفائق إلى المُتصفِح.

تمثيل بسيط للإتصال بين الخادم والعميل بواسط ميثاق نقل النص الفائق

تحتاج إما لخادم ويب ساكن (static) أو ديناميكي (dynamic) لنشر موقعك.

يتألَّف خادم الويب الساكن من حاسب (الجهاز) وميثاق نقل النص الفائق (البرمجيّة). نُسمي هذا النوع من الخوادم "ساكناً" لأنَّه يُرسِل الملف المُستضاف كما هو إلى مُتصفِحك.

يتألَّف خادم الويب الديناميكي من خادم ويب ساكن وبرمجيات إضافيّة، أكثرها شعبيّة خادم التطبيق (application server) وقاعدة البيانات. نُسمي هذا النوع من الخوادم "ديناميكياً" لأنَّ خادم التطبيق يُحدِّث الملفات المُستضافة قبل إرسالها إلى مُتصفِحك بواسطة خادم ميثاق نقل النص الفائق.

على سبيل المثال، لإنتاج الصفحات النهائيّة التي تراها في مُتصفِحك، قد يملأ خادم التطبيق قالب لغة ترميز النص الفائق ببعض المحتويات من قاعدة البيانات. مواقع مثل شبكة مطوري موزيلا (MDN) والموسوعة الحرَّة (ويكيبيديا) تملك آلاف الصفحات، ولكنها ليست مستندات لغة ترميز نص فائق فعليّة، وإنما بضعة قوالب وقاعدة بيانات ضخمة. هذه الطريقة تجعل من السهل والسريع صيانة وتسليم المحتوى.

التعلم النشط

لا يوجد بعد قسم تعلم نشط في هذه الصفحة. الرجاء النظر في المُساهمة.

الشرح بتعمُق

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

استضافة الملفات

على خادم الويب أولاً تخزين ملفات الموقع، أي جميع مستندات لغة ترميز النص الفائق وأصولها (assets)، بما فيها الصور، ملفات صفحات الأنماط الانسيابية، ملفات الجافاسكربت، الخطوط، والفيديوهات.

تقنياً، يمكنك استضافة كل تلك الملفات على حاسبك الشخصي، ولكنه من الأكثر ملائمة تخزينهم في خادم ويب مخصص:

  • يعمل طوال الوقت.
  • مُتصل بالإنترنت دوماً.
  • يملك عنوان الشبكة (IP) ثابِت (لا توفِر جميع مزودات الخدمة عناوين شبكة ثابتة للخطوط المنزليّة).
  • تتم صيانته من قبل مزوِّد خارجي.

تبعاً لكل تلك الاسباب، إيجاد مزوِّد استضافة جيد هو جزء رئيسي من عمليّة بناء موقعك. ابحث بين عروض الشركات الخدميّة المتنوعة واختر العرض المناسب لاحتياحاتك وميزانيتك (تترواح أسعار الخدمات من المجان إلى الألف دولار في الشهر). يمكنك إيجاد المزيد من التفاصيل في هذه المقالة.

حالما تنتهي من إعداد استضافة الويب، سيكون عليك رفع (تحميل) ملفاتك إلى خادم الويب.

التواصل عبر ميثاق نقل النص الفائق

ثانياً، يوفِر خادم الويب دعماً لميثاق نقل النص الفائق. كما يوضِح اسمه، يحدد هذا الميثاق كيفيّة نقل النص الفائق (أي مستندات الويب المُرتَبِطة) بين حاسوبين.

الميثاق (البروتوكول) هو مجموعة من القواعد التي تحدد كيفيّة تواصل حاسوبين مع بعضهما. يعد ميثاق نقل النص الفائق ميثاقاً نصيّاً (textual) وعديم الحالة (stateless).

ميثاق نصي
أي أنَّ جميع الأومر نصيّة ومقروءة من قبل البشر (غير مُشفَرة أو معماة).
عديم الحالة
لا الخادم أو العميل يتذكر عمليّة التواصل السابقة. على سبيل المثال، بالإعتماد على ميثاق نقل النص الفائق وحسب، لن يكون الخادم قادراً على تذكر كلمة المرور التي أدخلتها، أو الخطوة التي أنت فيها في عمليّة التسجيل. تحتاج إلى خادم تطبيق لإنجاز هذه الأمور. (سنغطي نوع التقنيات هذا في مقالات مستقبليّة).

يوفِر ميثاق نقل النص الفائق قواعد واضحة للكيفيّة التي يتواصل بها الخادم والعميل. سنغطي الأمور المتعلقة بالميثاق ذاته في مقالة تقنيّة مرجعيّة لاحقاً. حالياً عليك أن تعلم هذه الأمور وحسب:

  • فقط العميل يمكنه إرسال الطلبات، وللخادِم وحسب. يُمكن للخوادم فقط الرد على طلبات العميل.
  • عندما يتم طلب ملف عبر ميثاق نقل النص الفائق، على العميل إرسال رابط الملف.
  • على خادم الويب الإجابة (لا خيار آخر) على كل طلب يأتيه، على الأقل عليه أن يرسل رسالة الخطأ.

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

  1. عند تلقي طلب، يقوم خادم ميثاق نقل النص الفائق بدايةً بالتحقق مما إذا كان رابط الملف المطلوب موجوداً.
  2. إن كان كذلك، يُرسِل خادم الويب محتوى الملف إلى المُتصفِح. إن لم يكن، يقوم خادم التطبيق ببناءه (عندما يكون المحتوى ديناميكياً لا تُمثِل جميع الصفحات ملفاتاً، لذلك يبني خادم التطبيق الملف المطلوب من قالب آخر).
  3. إن لم تكن كلتا العمليتين ممكنتين، يُرسِل خادم الويب رسالة خطأ إلى المُتصفِح، أكثر تلك الرسائل شيوعاً هي "404 غير موجود" (هذا الخطأ شائع لأنَّ الكثير من مصممي الويب يقضون وقتاً لتصميم صفحة الخطأ 404).

المحتوى الساكن والديناميكي

بشكل تقريبي، يُمكِن للخادم إما أن يُرسِل محتوى ساكناً أو ديناميكياً. يعني المُصطلَح "ساكن (Static)" أنَّ المحتوى "يُرسَل كما هو (served as-is)". المحتويات الساكنة هي الأكثر سهولةً في الإعداد، لذلك ننصحك بأن يكون أوَّل موقع لك ساكناً.

يعني المُصطلَح "ديناميكي (Dynamic)" أنَّ الخادِم يعالِج المحتوى أو حتى يولِّده كاملاً من قاعدة البيانات. يوِفِر هذا حل أكثر مرونة، ولكن الجانب التقني يصبح التعامُل معه أكثر صعوبة، مما يجعل بناء الموقع أكثر صعوبة بمقدار كبير.

لنأخذ الصفحة التي تقرأها الآن على سبيل المثال. على خادم الويب المُستضيف للموقع، يوجد خادم تطبيق يأخذ محتوى المقالة من قاعدة بيانات، ينسِقَهُ، يَضَعُهُ بداخل بعض القوالب، ومن ثم يرسِل لك النتائج. في مثالنا هذا، اسم خادم التطبيق هو كوما (Kuma) وهو مبني بواسطة بايثون (باستخدام إطار جانغو). قام فريق موزيلا ببناء كوما وفقاً لاحتياجات الشبكة، ولكن توجد العديد من التطبيقات الأخرى المشابهة مبنيّة على العديد من التقنيات الأخرى.

توجد العديد من خوادم التطبيقات مما يجعل من الصعب اقتراح واحد. تلبي بعض خوادم التطبيقات احتياجات فئة معينة من التطبيقات مثل المدونات، الموسوعات (wiki)، أو مواقع التسوق الإلكترونيّة، وأُخرى تدعى أنظمة إدارة المحتوى (CMS) وهي أكثر عموميّة. إن كنت تبني موقعاً ديناميكياً، تمهل قليلاً لاختيار الأداة التي تناسب احتياجاتك. ما لم ترغب بتعلم بعض مهارات برمجة خوادم الويب (والذي يعد مجال مثير بحد ذاته!)، فأنت لا ترغَب بكتابة خادم تطبيق خاص بك. فهذا إعادة اختراع للعجلة!

الخطوات التالية

الآن، وبمعرفتك لكيفيّة عمل خوادم الويب يمكنك:

Document Tags and Contributors

الوسوم: 
المساهمون في هذه الصفحة: ahmadnourallah
آخر مَن حدّثها: ahmadnourallah,