كل شيء في الويب بيبدأ بـ**[[Browser Server Communication]]**. تخيل متصفحك (العميل) والخادم اللي عليه الموقع كأنهم شخصين بيتكلموا. لغة الحوار الأساسية بينهم هي [[HTTP Protocol]]، وهي مجموعة من القواعد بتحدد إزاي يطلبوا البيانات ويسلموها.

الخادم اللي بيستضيف المواقع غالبًا بيكون برنامج متخصص زي [[Apache server]] (أو Nginx). وظيفته الرئيسية إنه يستقبل طلبات المتصفحات ويرد عليها بالمحتوى المطلوب.


تفاصيل الطلب والاستجابة (Request Lifecycle)

عملية طلب الصفحة مش بسيطة، لكنها بتتم في مراحل اسمها [[Request Lifecycle]]. المتصفح بيفتح اتصال مع السيرفر، يبعت الطلب بكل تفاصيله، والسيرفر بيعالجه ويرد بالاستجابة.

الطلب بيكون ليه طريقة معينة، وده بيحدده [[HTTP Request Methods]]. أشهرها:

  • الـ GET: بتستخدمها لما تكون عايز “تستقبل” معلومات من السيرفر، زي لما تفتح صفحة عادية.
  • الـ POST: بتستخدمها لما تكون عايز “ترسل” بيانات للسيرفر، زي لما تملأ استمارة تسجيل.

في الطلب والاستجابة، فيه تفاصيل مهمة جداً:

  • الـ [[Content-Type and Accept]]: المتصفح بيبعت في الطلب بتاعه هيدر (header) اسمه Accept، وده بيقول للسيرفر “أنا ممكن أقبل أنواع المحتوى دي” (مثلًا HTML، أو JSON). السيرفر بيرد بهيدر اسمه Content-Type، اللي بيحدد نوع المحتوى اللي بيبعته فعلاً (مثلًا text/html).

بعد ما السيرفر بيعالج الطلب، بيبعت [[HTTP Status Codes]] في الرد عشان يقول للمتصفح إيه اللي حصل. زي 200 OK (الطلب نجح)، أو 404 Not Found (المحتوى مش موجود).


الكوكيز، الجلسات، والأمان (Cookies, Sessions, and Security)

الـHTTP بروتوكول “بلا حالة” (stateless)، يعني كل طلب منفصل عن اللي قبله. عشان المواقع تتذكرك (زي إنك عملت تسجيل دخول)، بتستخدم [[Cookies and Sessions]]:

  • الـ Cookies: ملفات صغيرة السيرفر بيخزنها على جهازك.
  • الـ Sessions: على السيرفر، بيتم ربط الـCookie اللي عندك بحالة معينة (مثلاً: “هذا المستخدم قام بتسجيل الدخول”).

للتأمين، بنستخدم [[HTTPS and SSL_TLS]]، اللي بيضيف طبقة تشفير على كل الاتصالات بين المتصفح والسيرفر، وده بيخلي البيانات محمية.

جزء من عملية التحسين والأداء هو [[Caching]]. أحيانًا السيرفر ممكن يقول للمتصفح “البيانات دي مش هتتغير لفترة، خزنها عندك”. ودي عملية الـCaching، بتخلي المواقع أسرع جداً وتقلل الضغط على السيرفر.


طرق التواصل المتقدمة والحماية (Advanced Communication and Security)

الويب الحديث مش بس صفحات HTML. فيه طرق تواصل تانية ومهمة:

  • [[REST APIs]]: دي طريقة تواصل بين تطبيقات مختلفة. بدل ما السيرفر يبعت صفحة كاملة، بيبعت بيانات خام (زي JSON) عشان تطبيقات الموبايل أو تطبيقات الويب الحديثة تستخدمها.

  • [[WebSockets]]: دي طريقة بتسمح باتصال مستمر ومزدوج الاتجاه بين المتصفح والسيرفر. مفيدة جداً في التطبيقات اللي فيها تحديثات لحظية زي الدردشة.

لضمان الأمان، فيه مبدأ مهم جداً:

  • [[Same-Origin Policy and CORS]]: مبدأ أمان أساسي بيمنع إن موقع على دومين معين يتواصل مباشرة مع موقع على دومين تاني. CORS (Cross-Origin Resource Sharing) هي آلية بتخلي المبدأ ده مرن، بحيث إن السيرفر ممكن يسمح لدومينات تانية موثوقة بالوصول إلى بياناته، وده مهم جداً للـREST APIs.

فهمك لكل هذه النقاط مترابطة ببعضها هيخليك تفهم آليات عمل المواقع والتطبيقات بشكل عميق جداً، وده هو المفتاح لاختبار اختراقها بشكل فعال.

هل تريد أن ننتقل لأساسيات قواعد البيانات، أم نركز على أي نقطة من هذه النقاط بالتفصيل؟