شرح نموذج Request / Response

نموذج Request/Response هو الطريقة الأساسية اللي بيحصل بيها التواصل بين الـ Client (العميل، زي متصفحك) والـ Server (السيرفر اللي بيستضيف الخدمة أو الموقع) في الشبكات، خصوصًا في الإنترنت.

الطريقة دي هي قلب العلاقة بين الـ Client والـ Server، وبنلاقيها في أي تطبيق ويب أو خدمة إنترنت زي فتح موقع، إرسال إيميل، أو حتى لعبة أونلاين.

نموذج Request/Response بيتطبق غالبًا باستخدام بروتوكول HTTP، لكنه مش مقتصر عليه، لأن الفكرة نفسها أوسع وبتقوم على مبدأ الطلب والرد.


إيه هو نموذج Request / Response؟

  • Request (الطلب)
    الـ Client (زي متصفحك أو تطبيق على موبايلك) بيبعت طلب للسيرفر عشان يطلب بيانات أو خدمة معينة.

  • Response (الرد)
    السيرفر بيعالج الطلب وبيرد بالبيانات المطلوبة أو رسالة توضح حالة الطلب (زي نجاح أو فشل).

📌
النموذج ده بيعتمد على إن:

  • الـ Client هو اللي بيبدأ التواصل
  • السيرفر عمره ما يبعت حاجة من غير Request

ازاي بيشتغل نموذج Request / Response؟

1️⃣ الـ Client بيبعت Request

الطلب بيكون عبارة عن رسالة HTTP،
والرسالة دي على مستوى الشبكة بتتحول لـ Packets أثناء انتقالها.

الـ Request بيحتوي على:

🔹 نوع الطلب (HTTP Method)

  • GET → جلب بيانات
  • POST → إرسال بيانات
  • PUT → تعديل بيانات
  • DELETE → حذف بيانات

🔹 المسار (Path)

بيحدد إنت عايز إيه من السيرفر:

/index.html /search

🔹 Headers

معلومات إضافية عن الطلب، زي:

  • نوع المتصفح
  • اللغة
  • الكوكيز

🔹 Body (اختياري)

بيكون موجود في Requests زي POST أو PUT،
وبيشيل بيانات زي تسجيل الدخول أو الفورم.

📌
الطلب بيروح للسيرفر باستخدام:

  • IP Address (بعد ترجمة اسم الموقع عن طريق DNS)
  • Port (زي 80 لـ HTTP أو 443 لـ HTTPS)

2️⃣ السيرفر بيعالج الطلب

لما الطلب يوصل للسيرفر:

  • بيشوف نوعه
  • يحدد أنهي خدمة أو برنامج هيشتغل
  • يعالج البيانات المطلوبة

أمثلة:

  • GET → يرجّع صفحة ويب أو بيانات
  • POST → يخزن بيانات (تسجيل، تعليق، إلخ)

وبعدها يجهّز الرد المناسب.

3️⃣ السيرفر بيبعت Response

الـ Response هو رد السيرفر على الطلب، وبيتكون من:

🔹 Status Code

كود بيوضح نتيجة الطلب، زي:

  • 200 OK → الطلب نجح
  • 404 Not Found → الصفحة مش موجودة
  • 403 Forbidden → الوصول ممنوع
  • 500 Internal Server Error → مشكلة في السيرفر

🔹 Headers

معلومات عن الرد، زي:

  • نوع البيانات
  • حجمها
  • الكوكيز

🔹 Body

وده المحتوى الفعلي:

  • HTML
  • JSON
  • صورة
  • ملف

مثال توضيحي: فتح موقع ويب

لما تفتح:


[www.google.com](http://www.google.com)

🔸 Request

بعد إنشاء اتصال TCP آمن (HTTPS)، المتصفح بيبعت:

GET / HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0

الطلب بيروح:

  • للـ IP بتاع جوجل (زي 172.217.167.78)
  • على Port 443 (HTTPS)

🔸 Response

السيرفر بيرد بـ:

HTTP/1.1 200 OK
Content-Type: text/html

<html>...</html>

وده كود الصفحة اللي بتظهر في المتصفح.


مثال عملي: تسجيل الدخول (Login)

🔸 Request

لما تدخل اسم المستخدم وكلمة السر وتضغط Login:

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

username=islam&password=12345

⚠️
البيانات دي بتكون مشفرة لو الاتصال HTTPS،
لكن لو HTTP فهي بتكون مكشوفة لأي حد على الشبكة.


🔸 Response

السيرفر يتحقق من البيانات ويرد بـ:

HTTP/1.1 200 OK
Set-Cookie: session=abc123

<html>Welcome, islam!</html>

العلاقة بين Request / Response والـ Ports

أي Request أو Response دايمًا بيتبعت على:

IP Address + Port

مثال:

142.250.x.x : 443

وده اللي بيحدد:

  • الجهاز
  • الخدمة اللي جوه الجهاز

📌
وده السبب اللي خلّانا نحتاج نفهم:

  • Well-Known Ports
  • Registered Ports
  • Ephemeral Ports

ليه Request / Response مهمين في الأمن السيبراني؟

لأن:

  • أي هجوم Web = تلاعب في Request
  • أي تسريب بيانات = تحليل Response

وأدوات زي:

  • Burp Suite
  • curl
  • Postman

كلها مبنية على نفس الفكرة دي ودول هتتعلمهم في طريقة لاكتشاف الثغرات.


الخلاصة

  • Request = طلب من الـ Client
  • Response = رد من السيرفر
  • HTTP قائم بالكامل على الحوار ده
  • أي Web Application بيعتمد على Request / Response