السبت، 8 أكتوبر 2011

كيف يعمل خادم صفحات الويب


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

إذا كنت بالفعل قد تساءلت بينك وبين نفسك أو سالت احد أصدقائك لتعرف ما يحدث فأنت في المكان الصحيح الآن وستعرف الإجابة بإذن الله ففي هذا المقال من كيف تعمل الأشياء سوف نقوم بشرح فكرة عمل خادم صفحات الويب المسئول عن تلبية طلبك وإحضار الصفحة التي تريد سواء كنت في بيتك أو في مكان عملك أو في أي مكان في العالم.
 
الفكرة الأساسية
دعنا نفترض انك تتصفح مواقع الانترنت على كمبيوترك وبينما أنت مستغرق في قراءة هذا المقال اتصل بك احد أصدقاؤك ليخبرك انه قرأ مقال رائعاً ويريد منك ان تقرأه أنت أيضا.  فوافقت وأحضرت قلما لتكتب عنوان المقال والذي هو رابط URL وهي اختصار لـ  uniform resource locator وكتبت العنوان على النحو التالي:
فقمت بطباعة العنوان في المتصفح وضغط على مفتاح الإدخالEnter. فظهرت لك الصفحة التي قرأها صديقك لتستمتع أنت بقراءتها. وببساطة فان الشكل التالي يوضح الخطوات التي تمت لكي تأتي الصفحة من الانترنت إلى جهازك.
 

يقوم المتصفح بالاتصال مع خادم صفحات الويب والذي يعرف باسم web server ويطلب منه الصفحة والذي يقوم بدوره بإرسال الصفحة للمتصفح.  هذا باختصار شديد ولكن دعنا نلقى نظرة أعمق على تفاصيل العملية.
 
خلف الكواليس
ان تفاصيل ما يحدث عندما نقوم بطلب الحصول على صفحة ما من الانترنت وبمجرد ان نضع رابط الـ URL وضغط على مفتاح الإدخال Enterفان الخطوات الرئيسية التالية تحدث تباعاً وهي:
(1) يقوم المتصفح بتقسيم عنوان الموقع URL إلى ثلاثة أقسام هي:
(i) بروتوكول http
(ii) اسم النطاق server name والذي يكون www.hayatk.com
(iii) اسم الملف والذي هو index.thm
 
(2) يتصل المتصفح بخادم أسماء النطاقات name server ليحصل منه على عنوان IP الخاص باسم النطاق www.hazemsakeek.com
(3) يقوم المتصفح في هذه المرحلة بالاتصال بخادم الصفحة على عنوان IP الذي حصل عليه من خلال المنفذ (port) 80 (سنقوم بتوضيح ذلك لاحقا)
(4) يقوم بروتوكول HTTP بتوجيه المتصفح لإرسال طلب حصول على الموقع باستخدام اسم الملف www.hayatk.com*
(5) يقوم الخادم بإرسال كود HTML الخاص بالصفحة المطلوبة إلى المتصفح.
(6) يقوم المتصفح بقراءة كود الـ HTML وتحويله إلى صفحة انترنت تظهر على الشاشة.
 
* في بعض الأحيان يرسل الكوكيز cookies طلب للحصول على الصفحة من خلال المتصفح وسوف نقوم بشرح فكرة عمل الكوكيز
 
لاحظ عزيزي القارئ إننا اعتمدنا على عدد من المصطلحات الخاصة بالانترنت مثل IP و HTTP و HTML و port و protocol وسوف نقوم بشرح هذه المصطلحات لمزيد من التوضيح.
 
الانترنت
نعود من البداية ونسأل أنفسنا ما هي الانترنت؟ الانترنت هي تجمع ضخم جدا لملايين الكمبيوترات ومن جميع الأنواع والأصناف تربطها شبكة توصل كل جهاز بالأجهزة الباقية.  تسمح الشبكة لهذه الأجهزة بالاتصال مع بعضها البعض فمثلا كمبيوتر المنزل يمكنك ان يتصل مع هذه الشبكة من خلال اتصال تلفوني عبر جهاز المودم أو عن طريق DSL أو بأي طريقة أخرى، مع مزود خدمة الانترنت والذي يعرف بالاسمinternet service provider وتختصر بالأحرف ISP أما الكمبيوتر في العمل سواء في شركة أو جامعة فإنها تتصل مع شبكة الانترنت من خلال كرت شبكة مثبت في الجهاز ليتصل مع الشبكة المحلية للمؤسسة التي تربط أجهزتها مع بعضها البعض، وهذه الشبكة المحلية تتصل بالانترنت من خلال مزود خدمة الانترنت ISP ولكن من خلال خط تلفوني سريع مثل T1 والذي يستطيع ان يتعامل مع 1.5 مليون بت (وحدة المعلومات المتداولة في ذاكرة الكمبيوتر) في الثانية الواحدة.  في حين ان الخط التلفوني العادي المعتمد في الاتصال بالانترنت عبر المودم فان سرعته تتراوح بين 30,000 إلى 50,000 بت في الثانية.
يتصل مزود الخدمة المحلي بمزود خدما اكبر من خلال كوابل الألياف الضوئية fiber optics والتي تعتبر العمود الفقري لكامل شبكة الانترنت في العالم بمجمله.  حيث تربط قارات العالم شبكة ضخمة من خلال كوابل الألياف البصرية الممتدة في أعماق البحار (تذكر المشكلة التي حدثت في انقطاع الانترنت في العديد من الدول بسبب انقطاع كابل انترنت في البحر المتوسط) وبهذه الطريقة يكون كل كمبيوتر متصل على شبكة الانترنت سيكون متصلا أيضا جهاز آخر متصل مع الشبكة معه في نفس الوقت.
 
 
العملاء والخوادم clients and servers
بصفة عامة يمكن ان نقوم بتصنيف أجهزة الكمبيوتر المتصلة بشبكة الانترنت إلى فئتين هما الخوادم servers والعملاء clients حيث تعتبر الأجهزة التي توفر خدماتها على الانترنت مثل تصفح المواقع أو إرسال البريد أو تبادل الملفات تعتبر أجهزة خوادم servers مثل web serverأو mail server أو FTP servers والأجهزة التي تستفيد من هذه الخدمات تسمى عملاء clients فمثلا عندما تقوم بالطلب موقع ياهوwww.yahoo.com فان الجهاز الذي يستضيف موقع ياهو يعتبر خادم والجهاز الذي تستخدمه هو عميل.
 
في الحقيقة يمكن ان يكون كل جهاز على شبكة الانترنت خادم لبعض الأجهزة وعميل لأجهزة أخرى وحسب البرامج التي تثبت على أجهزة الخوادم يمكن ان يقوم الخادم بدور خادم صفحات الويب أو خادم للبريد الالكتروني أو خادم لتبادل الملفات.  وحسب البرنامج الذي تستخدمه على جهازك فانه يتعامل مع الخادم المناسب فمثلا إذا كنت تستخدم متصفح الإكسبلورر أو متصفح الفيرفوكس فان المتصفح سيتعامل مع خوادم صفحات الويب أما إذا كنت تستخدم برنامج للبريد الالكتروني فانه سيتعامل مع خوادم البريد الالكتروني وهكذا.
 
عناوين بروتوكول الانترنت IP Addresses
لكي تصبح الأمور على شبكة الانترنت أكثر انتظاما وسهولة في التعامل مع هذا الكم الكبير جد في الأجهزة وأنواعها وطبيعة عملها فان كل جهاز على الشبكة يخصص له رقم فريد ومميز يسمى عنوان بروتوكول الانترنت IP address حيث الحرفين IP هي اختصار لكلمة Internet protocol، وتتميز هذه العناوين في إنها مكونة من 32bit تمثل في أربع مجموعات تفصلها نقطة كما في الشكل التالي
216.183.103.150
تسمى الأربع أرقام في عنوان IP بالثمانية لان تأخذ القيم من 0 إلى 255 أي ان هناك 28 من الاحتمالات لكل مجموعة.
كل جهاز متصل بالانترنت له عنوان IP مميز.  أما الخادم فيكون له عنوان IP ثابت ولا يتغير في اغلب الأحيان.  ولتوضيح هذا الأمر فانك عندما تقوم بالاتصال بالانترنت عبر جهاز المودم فان جهازك يحصل على رقم IP من مزود الخدمة المشترك معه ويكون هذا الرقم مخصص لك ومميز طالما استمر اتصالك بالانترنت ولكن إذا قمت بقطع الاتصال وإعادته مرة أخرى فان الجهاز يحصل على رقم IP آخر. 
 
لنقوم بفحص عنوان IP لجهازك الآن، كل ما عليك هو ان تقوم بتشغيل الأمر RUN وتكتب CMD وتضغط على زر موافق لتفتح لك شاشة تنفيذ الأوامر (شاشة سوداء) تكتب عند إشارة الإدخال الأمر IPCONFIG.EXE ثم تضغط على المفتاح Enter.
 

وبالتالي فانه من حيث فكرة عمل الانترنت فانه يمكن ان يتم كتابة رقم IP للموقع المراد تصفحه وسيقوم المتصفح بالوصول للخادم الذي يحتوي على الموقع ويجلبه لك.  ولكننا بالتأكيد نفضل التعامل مع أسماء المواقع Domain name.
 
 
أسماء النطاقات Domain Names
حيث ان معظم الناس تجيد تذكر الأسماء وحفظها بطريقة أفضل كثيرا من حفظ الأرقام وتذكرها مثل أرقام عناوين بروتوكولات الانترنت فان هذه العناوين ترتبط باسم نطاق (على سبيل المثال عندما تقوم بتخزين رقم صديقك على الهاتف تقوم بحفظ الرقم وحفظ اسم صاحب هذا الرقم، وعندما تريد الاتصال به فانك تبحث عن اسمه أسهل بكثير من البحث عن رقمه من بين الأرقام المخزنة) ويكون اسم النطاق مكون من ثلاثة مقاطع كما في عنوان الموقع التعليمي للفيزياء هذا
 
الجزء الأول وهو الأحرف المشهورة ("www") تسمى اسم المضيف host name
الجزء الثاني هو  ("hazemsakeek") هو اسم النطاق domain name
الجزء الثالث هو ("com") ويعتبر المستوى الأعلى لاسم النطاق top-level domain name
 
خوادم أسماء النطاقات Name Servers
تختص هذه الخوادم بحفظ كل أسماء النطاقات وضمان عدم تكرارها وربطها مع عناوين بروتوكول الانترنت IP address وذلك من خلال قاعدة بيانات ضخمة موزعة على شبكة الانترنت حول العالم.  وقد تحدثنا عن هذه الخوادم بالتفصيل في مقال منفصل بعنوان كيف تعمل خادم أسماء النطاقات على الرابط التالي:

السبت، 8 أكتوبر 2011

كيف يعمل خادم صفحات الويب


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

إذا كنت بالفعل قد تساءلت بينك وبين نفسك أو سالت احد أصدقائك لتعرف ما يحدث فأنت في المكان الصحيح الآن وستعرف الإجابة بإذن الله ففي هذا المقال من كيف تعمل الأشياء سوف نقوم بشرح فكرة عمل خادم صفحات الويب المسئول عن تلبية طلبك وإحضار الصفحة التي تريد سواء كنت في بيتك أو في مكان عملك أو في أي مكان في العالم.
 
الفكرة الأساسية
دعنا نفترض انك تتصفح مواقع الانترنت على كمبيوترك وبينما أنت مستغرق في قراءة هذا المقال اتصل بك احد أصدقاؤك ليخبرك انه قرأ مقال رائعاً ويريد منك ان تقرأه أنت أيضا.  فوافقت وأحضرت قلما لتكتب عنوان المقال والذي هو رابط URL وهي اختصار لـ  uniform resource locator وكتبت العنوان على النحو التالي:
فقمت بطباعة العنوان في المتصفح وضغط على مفتاح الإدخالEnter. فظهرت لك الصفحة التي قرأها صديقك لتستمتع أنت بقراءتها. وببساطة فان الشكل التالي يوضح الخطوات التي تمت لكي تأتي الصفحة من الانترنت إلى جهازك.
 

يقوم المتصفح بالاتصال مع خادم صفحات الويب والذي يعرف باسم web server ويطلب منه الصفحة والذي يقوم بدوره بإرسال الصفحة للمتصفح.  هذا باختصار شديد ولكن دعنا نلقى نظرة أعمق على تفاصيل العملية.
 
خلف الكواليس
ان تفاصيل ما يحدث عندما نقوم بطلب الحصول على صفحة ما من الانترنت وبمجرد ان نضع رابط الـ URL وضغط على مفتاح الإدخال Enterفان الخطوات الرئيسية التالية تحدث تباعاً وهي:
(1) يقوم المتصفح بتقسيم عنوان الموقع URL إلى ثلاثة أقسام هي:
(i) بروتوكول http
(ii) اسم النطاق server name والذي يكون www.hayatk.com
(iii) اسم الملف والذي هو index.thm
 
(2) يتصل المتصفح بخادم أسماء النطاقات name server ليحصل منه على عنوان IP الخاص باسم النطاق www.hazemsakeek.com
(3) يقوم المتصفح في هذه المرحلة بالاتصال بخادم الصفحة على عنوان IP الذي حصل عليه من خلال المنفذ (port) 80 (سنقوم بتوضيح ذلك لاحقا)
(4) يقوم بروتوكول HTTP بتوجيه المتصفح لإرسال طلب حصول على الموقع باستخدام اسم الملف www.hayatk.com*
(5) يقوم الخادم بإرسال كود HTML الخاص بالصفحة المطلوبة إلى المتصفح.
(6) يقوم المتصفح بقراءة كود الـ HTML وتحويله إلى صفحة انترنت تظهر على الشاشة.
 
* في بعض الأحيان يرسل الكوكيز cookies طلب للحصول على الصفحة من خلال المتصفح وسوف نقوم بشرح فكرة عمل الكوكيز
 
لاحظ عزيزي القارئ إننا اعتمدنا على عدد من المصطلحات الخاصة بالانترنت مثل IP و HTTP و HTML و port و protocol وسوف نقوم بشرح هذه المصطلحات لمزيد من التوضيح.
 
الانترنت
نعود من البداية ونسأل أنفسنا ما هي الانترنت؟ الانترنت هي تجمع ضخم جدا لملايين الكمبيوترات ومن جميع الأنواع والأصناف تربطها شبكة توصل كل جهاز بالأجهزة الباقية.  تسمح الشبكة لهذه الأجهزة بالاتصال مع بعضها البعض فمثلا كمبيوتر المنزل يمكنك ان يتصل مع هذه الشبكة من خلال اتصال تلفوني عبر جهاز المودم أو عن طريق DSL أو بأي طريقة أخرى، مع مزود خدمة الانترنت والذي يعرف بالاسمinternet service provider وتختصر بالأحرف ISP أما الكمبيوتر في العمل سواء في شركة أو جامعة فإنها تتصل مع شبكة الانترنت من خلال كرت شبكة مثبت في الجهاز ليتصل مع الشبكة المحلية للمؤسسة التي تربط أجهزتها مع بعضها البعض، وهذه الشبكة المحلية تتصل بالانترنت من خلال مزود خدمة الانترنت ISP ولكن من خلال خط تلفوني سريع مثل T1 والذي يستطيع ان يتعامل مع 1.5 مليون بت (وحدة المعلومات المتداولة في ذاكرة الكمبيوتر) في الثانية الواحدة.  في حين ان الخط التلفوني العادي المعتمد في الاتصال بالانترنت عبر المودم فان سرعته تتراوح بين 30,000 إلى 50,000 بت في الثانية.
يتصل مزود الخدمة المحلي بمزود خدما اكبر من خلال كوابل الألياف الضوئية fiber optics والتي تعتبر العمود الفقري لكامل شبكة الانترنت في العالم بمجمله.  حيث تربط قارات العالم شبكة ضخمة من خلال كوابل الألياف البصرية الممتدة في أعماق البحار (تذكر المشكلة التي حدثت في انقطاع الانترنت في العديد من الدول بسبب انقطاع كابل انترنت في البحر المتوسط) وبهذه الطريقة يكون كل كمبيوتر متصل على شبكة الانترنت سيكون متصلا أيضا جهاز آخر متصل مع الشبكة معه في نفس الوقت.
 
 
العملاء والخوادم clients and servers
بصفة عامة يمكن ان نقوم بتصنيف أجهزة الكمبيوتر المتصلة بشبكة الانترنت إلى فئتين هما الخوادم servers والعملاء clients حيث تعتبر الأجهزة التي توفر خدماتها على الانترنت مثل تصفح المواقع أو إرسال البريد أو تبادل الملفات تعتبر أجهزة خوادم servers مثل web serverأو mail server أو FTP servers والأجهزة التي تستفيد من هذه الخدمات تسمى عملاء clients فمثلا عندما تقوم بالطلب موقع ياهوwww.yahoo.com فان الجهاز الذي يستضيف موقع ياهو يعتبر خادم والجهاز الذي تستخدمه هو عميل.
 
في الحقيقة يمكن ان يكون كل جهاز على شبكة الانترنت خادم لبعض الأجهزة وعميل لأجهزة أخرى وحسب البرامج التي تثبت على أجهزة الخوادم يمكن ان يقوم الخادم بدور خادم صفحات الويب أو خادم للبريد الالكتروني أو خادم لتبادل الملفات.  وحسب البرنامج الذي تستخدمه على جهازك فانه يتعامل مع الخادم المناسب فمثلا إذا كنت تستخدم متصفح الإكسبلورر أو متصفح الفيرفوكس فان المتصفح سيتعامل مع خوادم صفحات الويب أما إذا كنت تستخدم برنامج للبريد الالكتروني فانه سيتعامل مع خوادم البريد الالكتروني وهكذا.
 
عناوين بروتوكول الانترنت IP Addresses
لكي تصبح الأمور على شبكة الانترنت أكثر انتظاما وسهولة في التعامل مع هذا الكم الكبير جد في الأجهزة وأنواعها وطبيعة عملها فان كل جهاز على الشبكة يخصص له رقم فريد ومميز يسمى عنوان بروتوكول الانترنت IP address حيث الحرفين IP هي اختصار لكلمة Internet protocol، وتتميز هذه العناوين في إنها مكونة من 32bit تمثل في أربع مجموعات تفصلها نقطة كما في الشكل التالي
216.183.103.150
تسمى الأربع أرقام في عنوان IP بالثمانية لان تأخذ القيم من 0 إلى 255 أي ان هناك 28 من الاحتمالات لكل مجموعة.
كل جهاز متصل بالانترنت له عنوان IP مميز.  أما الخادم فيكون له عنوان IP ثابت ولا يتغير في اغلب الأحيان.  ولتوضيح هذا الأمر فانك عندما تقوم بالاتصال بالانترنت عبر جهاز المودم فان جهازك يحصل على رقم IP من مزود الخدمة المشترك معه ويكون هذا الرقم مخصص لك ومميز طالما استمر اتصالك بالانترنت ولكن إذا قمت بقطع الاتصال وإعادته مرة أخرى فان الجهاز يحصل على رقم IP آخر. 
 
لنقوم بفحص عنوان IP لجهازك الآن، كل ما عليك هو ان تقوم بتشغيل الأمر RUN وتكتب CMD وتضغط على زر موافق لتفتح لك شاشة تنفيذ الأوامر (شاشة سوداء) تكتب عند إشارة الإدخال الأمر IPCONFIG.EXE ثم تضغط على المفتاح Enter.
 

وبالتالي فانه من حيث فكرة عمل الانترنت فانه يمكن ان يتم كتابة رقم IP للموقع المراد تصفحه وسيقوم المتصفح بالوصول للخادم الذي يحتوي على الموقع ويجلبه لك.  ولكننا بالتأكيد نفضل التعامل مع أسماء المواقع Domain name.
 
 
أسماء النطاقات Domain Names
حيث ان معظم الناس تجيد تذكر الأسماء وحفظها بطريقة أفضل كثيرا من حفظ الأرقام وتذكرها مثل أرقام عناوين بروتوكولات الانترنت فان هذه العناوين ترتبط باسم نطاق (على سبيل المثال عندما تقوم بتخزين رقم صديقك على الهاتف تقوم بحفظ الرقم وحفظ اسم صاحب هذا الرقم، وعندما تريد الاتصال به فانك تبحث عن اسمه أسهل بكثير من البحث عن رقمه من بين الأرقام المخزنة) ويكون اسم النطاق مكون من ثلاثة مقاطع كما في عنوان الموقع التعليمي للفيزياء هذا
 
الجزء الأول وهو الأحرف المشهورة ("www") تسمى اسم المضيف host name
الجزء الثاني هو  ("hazemsakeek") هو اسم النطاق domain name
الجزء الثالث هو ("com") ويعتبر المستوى الأعلى لاسم النطاق top-level domain name
 
خوادم أسماء النطاقات Name Servers
تختص هذه الخوادم بحفظ كل أسماء النطاقات وضمان عدم تكرارها وربطها مع عناوين بروتوكول الانترنت IP address وذلك من خلال قاعدة بيانات ضخمة موزعة على شبكة الانترنت حول العالم.  وقد تحدثنا عن هذه الخوادم بالتفصيل في مقال منفصل بعنوان كيف تعمل خادم أسماء النطاقات على الرابط التالي: