بسم الله الرحمن الرحيم
نظرة تمهيدية :
من المعلوم ان ظهور الانترنت ادى الى تطور هائل في مجال الاتصالات وتكنولوجيا المعلومات بشكل مذهل , وفي زمن قياسي .
وهي بحد ذاتها عباره عن شئ مذهل , فهي تسمح لملايين الاشخاص في انحاء العالم بالتواصل مع بعضهم البعض وتبادل العلوم والمعارف من خلال جهاز الحاسوب , فتصور انه بإمكان شخص يعمل على جهاز حاسب في مقهى انترنت موجود في حارة الدمغه في مدينه الحديدة في اليمن , ان يقرأ كتاب موجود في مكتبه موجود في مدينه "تشي وينج هونج!!" في اليابان في طرف العالم . فهذا بحد ذاته سحر !! ..
وكما نعرف أيضا فإن شبكه الانترنت مكونه من ألوف مؤلفه من الشبكات والاجهزه في العالم المتصلة مع بعضها البعض . وهذه الشبكة الضخمة تعمل على مبدأ الزبون/الخادم client/server .
ومن ضمن الخدمات التي تقدمها شبكة الانترنت خدمه الويب أو www (Word Wide Web) التي ساعدت في تغيير مفهوم استخدام الانترنت بعدما كانت الانترنت حكراً على استخدام الأكاديميين والشركات والحكومات إلى جعل الانترنت والويب خصوصاً متاحة للكل بلا اسثناء .
وخدمة الويب تجعل من الممكن الحصول على المعلومات بجميع أشكالها سواء نصية Text أو وسائط متعددة Multimedia (صور , فيديو , أصوات .. الخ ) بشكل سهل وواجهه مبسطه . والويب بشكل عام مكونه من الملايين من صفحات الويب Web pages والتي تحتوي على معلومات نصية أو وسائط متعددة والتي أيضا قد تحتوي على رابط Link لصفحة أخرى موجودة في أي مكان في العالم والتي يمكن الانتقال إليها بمجرد الضغط على هذا الرابط .
وصفحات الويب هذه تكون مكتوبة بشفرة أو لغة تسمى HTML (HyperText Markup Language) واخواتها (XHTML) والتي هي عبارة عن مجموعه من العناصر التي تحدد بناء الصفحة (يرجى مراجعه لغة HTML ) .
وصفحات الويب هذه يمكن مشاهداتها والاطلاع عليها بواسطة برنامج مساعد يسمى المتصفح browser مثل الانترنت اكسبلور ا و متصفح الفايرفوكس وغيرها و الذي يقوم بقراءة شفرة الـ HTML الخاصة بصفحه الويب المطلوبه وتحويلها إلى صيغه مرئية واضحة للمستخدم . وهنا يظهر مبدأ الزبون/الخادم client/server الذي تحدثنا عن سابقاً .
فأجهزة الخوادم Servers الموجودة في الانترنت هي التي تحتوي على الصفحات والمعلومات (المواقع) , وهي أجهزة تمتلك مواصفات مادية عاليه وبرامج خاصة تجعل من الممكن استخدامها كخوادم , ولها رقم IP (عنوان خاص على الانترنت ) ثابت ومعروف . وفي حالة الويب , يسمى هذا السيرفر بـ "المستضيف Host" وفية برنامج خاص يسمى الويب سيرفر Web Server .
تعريف:
المستضيف هو عبارة عن سيرفر ذو مواصفات خاصة موجود على الانترنت ويتم فيه وضع المواقع والبيانات الخاصة بها , وهو ما يشير إليه مصطلح "استضافه المواقع" .
تعريف:
الــ HTTP هو اختصار HyperText Transmission Protocol وهو برتوكول يسمح بتراسل صفحات الويب خلال شبكة الانترنت .
تعريف:
الويب سيرفر هو عبارة عن برنامج موجود في السيرفر "المستضيف" ويقوم هذا البرنامج باستقبال طلبات صفحات الويب والتي تأتي غالباً من المتصفح الخاص بالزبون ويقوم بالاستجابة لهذا الطلب ومن ثم إرجاع الطلب . ويتم هذا التواصل من خلال بروتوكول الــ HTTP . ومثال على برامج الويب سيرفر هو سيرفر الاباتشي Apache (مقتوح المصدر) والـ IIS (من مايكروسوفت ) .
أما الأجهزة الزبون Client هنا هي الأجهزة التي نعمل عليها عندما نتصل بشبكة الانترنت والتي تحتاج إلى برنامج المتصفح لكي نستطيع الاطلاع وعرض الصفحات التي نطلبها من الخادم . والشكل التالي يوضح هذه الفكرة :
[/img]
وألان , دعونا نسرد سيناريو بسيط لنفهم آلية طلب صفحات الويب .
لنفترض انه لدينا اتصال بشبكة الانترنت , ومن ثم قمنا بتشغيل المتصفح وطلبنا الصفحة التالية عنوان الـ URL ( عبارة عن عنوان مميز لكل صفحه على الويب ) التالي : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] , فسوف يحدث ألان التالي :
1- بعد أن نكتب عنوان الـ URL ونطلب الصفحة , سوف يقوم المتصفح بالاتصال مع الويب سيرفر المسمى [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و يطلب الصفحة التي باسم directory.html بواسطة برتوكول HTTP (سوف نتحدث عنه لاحقاً ) .
2- سوف يستجيب الويب سيرفر [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] للطلب, ويبحث عن الملف directory.html.
3- سوف يقوم بعدها الويب سيرفر بقراءة الملف directory.html من القرص الصلب الخاص بالسيرفر .
4- بعدها القراءة , سوف يقوم الويب سيرفر بإعادة محتوى directory.html الى المتصفح .
5- وبما أن محتوى الصفحة directory.html هو شفرة HTML , سوف المتصفح اذاً بقراءة هذه الشفرة ويترجمها ويحولها الى واجهه مرئية للمستخدم .
والشكل التالي يوضح السيناريو السابق :
الذي من المهم ان نفهمه الان , هو ان الملف directory.html يتعتبر صفحه ويب ساكنه static web page لانها ببساطه هي فقط نقل المعلومات التي كانت في الملف directory.html من السيرفر الى المتصفح كما هو , فاي شخص يطلب نفس العنوان السابق , سوف تظهر نفس المحتويات على الصفحه بدون اي تغيير , لذلك تسمى صفحه ويب ساكنه .
قد تكون صفحات الويب الساكنة كافية في بعض الحالات البسيط والتي يكون التفاعل فيها بسيط مع المستخدم , مثلاً انشاء صفحه شخصية بسيطه بحيث توجد فيها معلومات ثابته , صفحات تعريفية بشركات او منتجات .
لكن في الغالبية الاخرى من الحالات سوف لن يكون استخدام الصفحات الساكنه مجدياً ابداً . لنفهم ذلك , لنفترض اننا نريد بناء منتدى لغرض تبادل الاراء والخبرات , وجعل هذا المنتدى متاح للجميع مما يعني انه سوف يزوره عشرات الالاف من الزوار .
لنفترض ان صفحات الموقع مبنيه بشكل ساكن , فانه في هذه الحالة , اذا اردت اضافه موضوع جديد للمنتدى , سوف اضطر ان اقوم بكتابه صفحه HTML بإي برنامج سواء الـ FrontPage او Dreamwaver , ومن ثم اقوم برفع الصفحه الجديدة الى الويب سيرفر حتى يتمكن باقي الزوار من جميع انحاء العالم الاطلاع على الموضوع , واخيراً افتح الصقحه الرئيسية للموقع واعدل في شيفرة الـ HTML بواسطه اي برنامج واضيف رابط جديد يشير الى الموضوع الجديد حتى يعرف الزوار انه تم إضافه موضوع جديد ..
مع ان اللبيب منا , سوف يفهم حجم المشكلة الان , لكن لنفرض جدلاً ان الامر جيد وكافي بالنسبة لي , لنأتي لنقطه اخرى وهي موضوع السماح لزوار لمنتدى المشاركة فيه . فتوجد هناك طريقتان لتحقيق ذلك , الأولى وهي جعل الزوار الذين المشاركة في الموقع يقوموا بإرسال بريد الكتروني على عنواني الخاص ويضعوا فيها الموضوع الذي يريدون إضافته ومن ثم أقوم بصفه دورية بفتح بريدي الوارد وقراءة الرسائل الجديدة وإذا وجدت رسالة من احد الزوار فيها موضوعه , أقوم أنا بعمل صفحه جديدة بواسطة أي برنامج تصميم HTML مثل الفرونت بيج , وأضيف فيها موضوعه , ومن ثم ارفع الصفحة الجديدة إلى السيرفر , واخيراً اذهب الى الصفحه الرئيسية للمنتدى واعدلها بحيث اضيف رابط يشير الى وجود مشاركة جديدة من احد الزوار .
قد يكون هذه العملية متعبه بعض الشئ اذا كان لدي خمسة او عشرة مشاركات في اليوم . فما بالك اذا كانت هناك مئات المشاركات يومياً !!!! .
والطريقة الخيالية الثانية , هي اعطاء صلاحيات الوصول للسيرفر للزوار الذين يريدون المشاركة حتى يقوموا هم بإنفسهم بكتابة صفحات الـ HTML بإستخدام الفرونت بيج مثلاً , ومن ثم يرفعوا مشاركاتهم الى السيرفر الخاص بالموقع بحكم ان لديهم صلاحيات الوصول . وطبعاً هذه الطريقه مستحيلة لانه سوف يصبح بمقدور هولاء العبث بالبيانات الموجود في الموقع او حتى تخريبها ! . وحتى لو فرضنا انهم قلوبهم صافيه ولايضمرون اي شر , فيجب ان يكون لدي هولاء خبرة في كتابة صفحات الـ HTML او استخدام برامج تصميم المواقع مثل الفرونت بيج او الدريم ويفر , وهذا بالطبع حل غير عملي نهائياً ..
اذاً ما نحتاجه في هذه الحالة حل أخر يكون أكثر عملية , حل يلغي التدخل اليدوي للمستخدمين , سواء كان صاحب الموقع , أو المشاركين فيه , ويجعل العملية تتم بصورة آلية على غرار برامج قواعد البيانات العادية والتي تسمح لنا بإضافة والتعامل مع البيانات بصورة سهلة وسريعة بدون الحاجة إلى فك شفرة البرنامج والتعديل عليها .
ومن هذا المنطلق , ظهر ما يعرف بصفحات الويب الديناميكية Dynamic Web Page , والتي يتم توليدها بشكل آلي مما يسمح بمرونة كبيرة في تغيير محتوى الصفحات بدون الحاجة إلى التدخل اليدوي .
ماذا سوف تفيد صفحات الويب الدينامكية في حالة موقعنا السابق ؟ الإجابة سهلة , فالآن كل ما نحتاجه هو وجود قاعدة بيانات موجودة في السيرفر , وطريقه ما تمكنا من التعامل مع قاعدة البيانات هذه , بحيث نتمكن من إضافة مشاركات جديدة إلى قاعدة البيانات بصورة سهله , وأيضا توليد صفحه ويب (صفحه HTML) بشكل إلي بحيث تحتوي هذه الصفحة على المشاركات الجديدة التي موجودة في قاعدة البيانات , وأيضا تمكين الزوار من إضافة مشاركاتهم بصورة سهل من خلال المتصفح فقط .
وهذه الآلية يمكن الحصول عليها من خلال استخدام لغات برمجة الويب والتي تعتبر لغة PHP واحدة منها .
والتي تسمى أيضا "سكربت جهة السيرفر Server-Side Script " .
ملاحظة:
إذا لم تفهم عزيزي القارئ المغزى من كل ما سبق, فأنصحك أن تقف هنا, و "تصحي النوم", وتذهب وتشرب شاهي "أبو ثلاث خمسات" وتعيد قراءة ما سبق حتى تستوعبه جيداً قبل مواصلة القراءة :) .
آلية عمل لغات برمجة الويب
___________________________________
Desperado