بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
محاكات الإتصال بين المتصفح و الويب سرفر .
شرح بعض الأشياء وبشكل بسيط جدا.
1-صفحة الويب فلنقل صفحة html ويب بسيطة هي عبارة عن ملف نصي موجود في جهاز السرفر (إقرأ قليلا عن ملفات html ) .
2- السرفر ببساطة هو غالبا جهاز بعيد قد يكون بأي دولة ,يحتوي هذا الجهاز خدمة أو برنامج خاص يأخذ الطلبات ويرد عليها مثلا اريد الصورة الفلانية أو ملف html الفلاني الموجود عندك إن تحققت كل الشروط يرد بالمحتوى المطلوب إن لم تتحقق يرد بأن هناك خطأ ما (السرفرات الجدية أي المستخدمة من المواقع الفعليه هي أجهزة ذات كفائة عالية وتستخدم غالبا لينكس او ويندوز كنظام تشغيل ويكون عليها الخدمة أو البرنامج الذي سبق وتم ذكره مثلا apache و غيره ) .
3-يقوم المتصفح كزبون client بالإتصال بالسرفر ويطلب ملف ما موجود عنده مثلا ملف صفحة ويب html, إن وجد يرد السرفر بمحتوى الملف المطلوب ثم يحول المتصفح بطريقة ما محتويات هذا الملف من ال tags وh1 h2 ...إلخ إلى شيء مرئي أي مثلا يعمل النص الفلاني bold أو مائل و...إلخ ويعرضه.
الأن بشكل بسيط كيف تتم هذه العملية؟
لنأخذ مثلا تصفح http://arfedora.com/index.html .1-يقوم المتصفح بالإتصال بالسرفر وعنوانه arfedora.com (بطريقة ما يتم تحويل الإسم إلى رقم هو ip السرفر أي عنوان السرفر, على العموم هذا ليس موضوعنا ) .
2-البروتوكول المستخدم هو http والإتصال عن طريق TCP/IP (للمزيد إدرس شبكات) ,إذا لم ينجح الإتصال يعطي الخطأ المشهور وعدة إحتمالات على حسب المتصفح مثلا تأكد من أن الإنترنت يعمل لديك و...إلخ.
3-بعد نجاح الإتصال بالسرفر ,الملف أو المستند المطلوب هو index.html ,إن وجد الملف يقوم السرفر بالرد بمحتوى هذا الملف ويقوم المتصفح بعرضه ,وإن لم يكن موجود غالبا يتم إرجاع محتوى صفحة html تحتوى جمل تدل ان هناك خطأ ما حصل وبعض المعلومات.
4-ال web server إفتراضيا يتلقى طلبات http من خلال منفذ إفتراضي الذي هو 80 ,يعني إذا كان الip هو العنوان , المنفذ port تخيله شيء مثل رقم الباب لتلقي منه الطلبات .
5-المتصفح إذا لم يذكر المنفذ سيحدد المنفذ الإفتراضي للبروتوكول المذكور في اول رابط المطلوب مثلا http المنفذ 80 وhttps المنفذ 443 و...إلخ .
6-يطلب المتصفح الإتصال بالسرفر عبر البروتوكول و المنفذ والعنوان الصحيح ,لاكن إذا صح التعبير المنفذ الذي يتصل هو منه منفذ عشوائي يحدده له نظام التشغيل شيء كهذا :
-المتصفح 192.168.1.2 ومنفذ عشوائي 5643 .
-السرفر 192.168.1.1 ومنفذ 80 .
-فإذا هناك عنوان ومنفذ لل client و عنوان ومنفذ لل web server ,السرفر يتلقى الطلبات على المنفذ رقم مثلا 80 في حالة http و يرد على منفذ ال client.
الأن نأتي للشرح بالصور سأضع الصورة وفي أسفلها الشرح .
للتجارب فقط قمت بإنشاء ملف html و دخلت على المسار الموجود فيه وشغلت سرفر http بسيطة من خلال مفسر بايثون إصدار ثلاثة ,الان هذا سيمثل السرفر البعيد (ملاحظة حددت المنفذ 8080 أي غيرت الإفتراضي لبروتوكول http) .
إستخدمت nc لمحاكات إتصال المتصفح بالسرفر ,الإتصال على منفذ 8080 و localhost تعني بطريقة ما عنوان الجهاز الذي أعمل منه, الأن إذا نجح الإتصال سيظهر مثل الذي في الصورة إذا لم يظهر ساحصل على خطأ أن الإتصال فشل.
(إستخدمت localhost في الclient لأني أجرب على ذات الجهاز الذي يشغل السرفر بالمناسبة ممكن تحديد رقم ال ip بشكل صريح )
إستخدمت شيء يسمى http method بإختصار وبشكل بسيط أمر لجلب ملف index.html .
نلاحظ النتجية إرجاع أولا ما يسمى ال header أي معلومات عن السرفر والملف و...إلخ
ثانيا إرجاع محتوى الملف وهنا لو كان nc لديه إمكانيات المتصفح لكان عرضها بالشكل المطلوب .
من جهت السرفر يعرض بعض المعلومات الرقم 200 يسمى http status code وهذا الرقم يعني ان كل شيء تم من دون مشاكل وهو مذكور أيضا في ال header.
طلبت مسار غير موجود نلاحظ النتيجة .
ال code 404 يعني بشكل بسيط الملف أو المسار المطلوب غير موجود .
نجرب من المتصفح مع تحديد المنفذ المطلوب إن لم يكن المستخدم إفتراضي نلاحظ النتيجة جلب محتوى index.html و عرض كل شيء كما حدد .
ذات الشيء لاكن هذه صفحت الخطأ وهي تتغير من موقع لأخر يعني على حسب .
هذا كان شرح ببساطة للمزيد أدرس شبكات إقرأ عن الأشياء المذكورة في الشرح مثل port socket http html tcp ip و غيرهم .