شرح نموذج 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