يُقدم لكم هذه الدروس: الأستاذ إبرهيم حمادة جزاه الله خيرا.
الدرس الأول: المُتصفح و الخادم
client and server
إذا أردنا أن نطَّلع على صفحة مِن صفحات الوب
ماذا نفعل عادةً
نفتح المتصفح, و في مسطرة العنوان, address bar
نكتب عنوان الصفحة التي نريد أن نراها, و لنفترض مثلا أنها صفحة جوجل للبحث:
www.google.com
ثُمَّ نضغط إنتر.
هكذا نكون قد عمِلنا request أو طلب لصفحة جوجل.
هذا الطلب يذهب إلى خادم جوجل
خادم جوجل يقرأ الطلب, و يُرسل لنا الصفحة المطلوبة.
الرد على الطلب الذي أرسلناه أو ال request, يُسمى response أو رد.
إذان, الخادم يعمل response و يُرسل لنا الصفحة.
عندما يُرسل الصفحة هو يُرسلها بصيغة html.
المتصفح بعدها يستلم الرد
ثُمَّ يُظهر لنا صفحة جوجل بهذا الشكل الجميل.
بين المتصفح و الخادم, طلب الصفحة, و الرد على الطلب يتم بلغة جافاسكرِيبت javascript.
هل يُمكن أن يحدث ذلك بدون المتصفح؟
يعني إرسال الطلب و الرد عليه
بالطبع يُمكن ذلك بواسطة برامج أخرى, بينها بايثون
---
معلومات أخرى تُرسل مع الطلب, و معلومات أخرى تُرسل مع الرد
و هي:
headers
هذه المعلومات نحن لا نلاحظها في حالة المتصفح.
لكن هي موجودة و مُتبادلة بين الذي أرسل الطلب, سواء كان متصفح أو برنامج و بين الخادم
المعلومات التي تُرسل مع الطلب, أي مع عنوان الصفحة www.google.com
هي request headers, أو رأس الطلب
و تتضمن عدة أشياء , و مِن بينها
user-agent: ...
يعني مَن الذي أرسل الطلب
في حالة المتصفح يُمكن أن يكون: 'firefox مِن وندوس 64bit مثلا
و في حالة البرنامج يُمكن أن يكون: python أو java أو غيرها
و المعلومات التي تأتي مع الرد, يُمكن أن تحتوي على معلومات عديدة منها
Content-Length: أي حجم المحتوى المُرسل
Content-Type: أي نوع المُحتوى, مثلا نص أو صورة أو xml أو json و غيرها
و معلومات أخرى عديدة.
و يجدر ذكره, أنَّ مواقع و خوادم كثيرة
لا تُحب أن يتصفحها, أو يطلب الصفحة منها برنامج مثل بايثون أو غيره, بل تُفضل أن تتعامل مع المتصفحات.
لذلك عندما تقرأ أنَّ ال user-agent الذي يطلب الصفحة هو برنامج, فإنها بعد وقت تمنعه و تحجب الصفحة عنه.
لهذا عند طلب الصفحة بواسطة بايثون, فإننا أغلب الأوقات نُضيف على الطلب user-agent وهمي أو مُزيف, فنقول مثلا أنَّ الذي يطلب الصفحة هو فيرفوكس أو كروم أو غير ذلك.
و بهذه الطريقة نتغلب على حجب الصفحة مِن قِبَل بعض المواقع و الخوادم البخيلة, و التي لا تمنح صفحاتها للجميع.
---
http protocole
بروتوكول نقل النص التشعبي
بروتوكول http, هي الطريقة التي يتفاهم بها المتصفح و الخادم, عند إرسال الطلب, و استلام الرد.
هناك طبعا بروتوكولات أخرى كثيرة مثل
fttp لنقف الملفات أو smtp للبريد, و غيرها.
أما http, فهو البروتوكول المُستخدم في طلب صفحة الوب و استلام الرد.
وإلى لقاءٍ آخر.
لا تنسوْا ذكر الله.
جزاكم الله خيرا وننتظر المزيد.
ردحذف