⚡ IS231 · Lecture 04 · Dr. Mohamed Nour Eldien · أسئلة امتحانات 2021 – 2025

Web Basics &
HTTP & URLs

إزاي المتصفح بيكلم السيرفر؟ وإيه اللي بيحصل لما بتضغط على أي لينك؟ شرح شامل لدورة الـ Request والـ Response، تشريح الـ URL، HTTP Methods، وأكواد الحالة — الشرح بالعربي والمصطلحات بالإنجليزي 🇪🇬

8
أقسام رئيسية
11+
سؤال امتحان حقيقي
2021–2025
سنوات الامتحانات
نجاح 🎯
01

What Happens When You Open a Website? — إيه اللي بيحصل لما بتفتح موقع؟

رحلة الـ Request من البداية لحد النهاية

🔄 دورة حياة الـ Web Request

كل مرة بتضغط على لينك أو بتكتب URL في المتصفح، بيحصل تسلسل محدد من الخطوات. ده اللي بنسميه الـ Request-Response Cycle.

1
User Action — فعل المستخدم
المستخدم بيكتب URL أو بيضغط على لينك أو بيسبمت فورم
2
Browser sends Request — المتصفح بيبعت Request
المتصفح بيبني رسالة (HTTP Request) وبيبعتها على الـ Network للسيرفر
3
Server receives & processes — السيرفر بيستقبل ويعالج
السيرفر بيشغل الـ Business Logic وممكن يكلم الـ Database
4
Server sends Response — السيرفر بيبعت الرد
السيرفر بيبعت HTTP Response فيه Status Code والمحتوى (HTML أو JSON)
5
Browser renders — المتصفح بيعرض النتيجة
المتصفح بيعرض الصفحة أو الداتا للمستخدم
👤
Browser
المتصفح
HTTP Request
HTTP Response
🖥️
Server
السيرفر
SQL Query
Data
🗄️
Database
قاعدة البيانات
🚨 قاعدة ذهبية للامتحان: المتصفح (Browser) لا يتكلم مع الـ Database مباشرة أبداً! الـ Backend هو دايماً الوسيط.
02

Client & Server — طرفا المحادثة

مين بيطلب ومين بيرد؟

💻 Client — العميل
  • عادةً المتصفح (Browser) أو تطبيق الموبايل
  • هو اللي بيبدأ المحادثة بإرسال الـ Request
  • وظيفته يعرض HTML و CSS و JavaScript للمستخدم
  • يجمع Input من الأزرار والـ Forms ويبعتها
  • يستقبل الـ Response ويعرضها (Rendering)
🖥️ Server — الخادم
  • جهاز أو خدمة بتسمع وبترد على الـ Requests
  • هو اللي بيستقبل ويعالج الـ Request
  • بيشغل الـ Business Logic والـ Validation
  • بيتواصل مع الـ Database لو محتاج
  • بيرجع Response مناسبة (صفحة، JSON، Redirect)
💡 من المحاضرة: "The client asks; the server answers." — دي أبسط طريقة تتذكر بيها العلاقة بينهم.
03

Frontend vs Backend vs Database — الطبقات الثلاث

كل طبقة عندها مسؤولية مختلفة — تفهمهم كويس مهم جداً!

🖥️ Frontend (Client Side)

  • اللي المستخدم بيشوفه ويتعامل معاه
  • HTML, CSS, JavaScript
  • بيشتغل في المتصفح (Browser)
  • بيهتم بالشكل والتفاعل (UX)
  • بيبعت Requests للـ Backend

⚙️ Backend (Server Side)

  • بيعالج الـ Requests القادمة من المستخدم
  • Python, JavaScript, Java, PHP…
  • بيشتغل على الـ Server
  • Business Logic, Validation, Permissions
  • بيتواصل مع الـ Database ويجهز الرد

🗄️ Database (Data Layer)

  • بيحفظ البيانات بشكل دائم (Persistent)
  • SQLite, MySQL, PostgreSQL
  • لا تتكلم مع المستخدم مباشرة!
  • الـ Backend هو الوسيط الوحيد
  • Tables: students, courses, grades…
📋 تمرين تصنيف — أي طبقة؟
الوظيفةالطبقة
عرض زرار "سجّل" على الشاشةFrontend
التأكد إن كلمة المرور صحBackend
حفظ بيانات الطالب في الجدولDatabase
عرض رسالة "تم التسجيل بنجاح"Frontend
التحقق من الـ PermissionsBackend
جلب بيانات الطالب للعرضBackendDatabase
04

Static vs Dynamic Websites — ثابت أم ديناميكي؟

ليه Backend موجود أصلاً؟

📄 Static Website — موقع ثابت

  • نفس المحتوى لكل الزوار بدون تغيير
  • ملفات HTML جاهزة على السيرفر
  • مناسب للمواقع التعريفية البسيطة
  • عشان تعدل لازم تعدل الـ HTML يدوياً
  • لا يحتاج Database

⚡ Dynamic Website — موقع ديناميكي

  • المحتوى بيتغير بناءً على المستخدم أو الداتا
  • الصفحة بتتولد لحظياً بكود الـ Backend
  • ضروري للمتاجر، البوابات، الـ Dashboards
  • البيانات بتيجي من الـ Database
  • يدعم Login وبيانات مخصصة لكل شخص
⚠️ أمثلة على المواقع الديناميكية: البوابة الجامعية (portal.cu.edu.eg) — بتشوف درجاتك أنت بالتحديد، مش درجات كل الطلاب. ده بيحصل بسبب الـ Backend والـ Database.
05

URL Anatomy — تشريح الرابط

كل جزء في الـ URL بيقول حاجة مهمة

🔍 ما هو الـ URL؟

الـ URL (Uniform Resource Locator) هو عنوان أي مورد على الويب. بيقول للمتصفح فين يروح وإيه اللي يطلبه. ممكن يشير لصفحة، صورة، API endpoint، أو ملف.

🧩 أجزاء الـ URL — URL Parts
https://portal.cu.edu.eg:443/students/profile?id=25
https
Protocol
portal.cu.edu.eg
Domain / Host
:443
Port (optional)
/students/profile
Path / Route
?id=25
Query String
الجزءالمعنىمثال
Protocolنوع الاتصال — آمن أو عاديhttp أو https
Domainاسم الموقع على الإنترنتportal.cu.edu.eg
Portاختياري — بييجي بعد الـ Domain مفصول بـ ::443 أو :8000
Pathالمسار للمورد المطلوب/students/profile
Query Stringبيانات إضافية للفلترة والبحث — بيبدأ بـ ??level=2&sort=name
💡 Path vs Query String:
  • الـ Path بيحدد المورد الأساسي — إنت رايح فين؟
  • الـ Query String بيضيف تفاصيل أو فلاتر إضافية — بتطلب إيه بالظبط؟
🏠 Localhost:8000 — عنوان التطوير المحلي

localhost معناها "الجهاز ده نفسه" — يعني السيرفر شغال على جهازك الشخصي. الـ 8000 هو الـ Port الافتراضي اللي Django بيشتغل عليه أثناء التطوير (Development).

http://localhost:8000/courses/list?level=2&semester=1
http
Protocol
localhost
Host (جهازك)
:8000
Django Port
/courses/list
Path
?level=2&semester=1
Query String
🚨 سؤال امتحان 2021 متكرر: "In a URL, an optional ______ can be inserted between the host and the path, separated from the host by a colon." — الإجابة: Port!
06

HTTP — لغة التخاطب بين المتصفح والسيرفر

HyperText Transfer Protocol — البروتوكول الأساسي للويب

💬 ما هو الـ HTTP؟

الـ HTTP (HyperText Transfer Protocol) هو البروتوكول اللي بيتحكم في شكل ومضمون الـ Requests والـ Responses بين المتصفح والسيرفر. هو مش بيحدد الـ Business Logic، هو بس بيحدد شكل التواصل (Communication Format).

الـ HTTPS هو نفس الـ HTTP لكن مشفّر (Encrypted) عن طريق SSL/TLS، وبيشتغل على الـ Port 443 بدل 80.

06A

Request & Response — بنية الرسالتين

كل محادثة على الويب فيها Request من الـ Client وResponse من الـ Server

📤 HTTP Request — الطلب
  • يحتوي على Request Line (Method + Path + Version)
  • يحتوي على Headers (بيانات وصفية)
  • ممكن يحتوي على Body (بيانات مرسلة مثل الفورم)
  • الـ Body مش إلزامي — GET مثلاً مبيكونش فيه Body
HTTP REQUEST — مثال
GET /students/list HTTP/1.1
Host: portal.cu.edu.eg
Accept: text/html
Authorization: Bearer token123
(Body فاضي في الـ GET)
📥 HTTP Response — الرد
  • يحتوي على Status Line (Version + Status Code + Message)
  • يحتوي على Headers (بيانات وصفية عن الرد)
  • يحتوي على Body (HTML, JSON, صورة، أو رسالة خطأ)
  • الـ Status Code مهم جداً — بيقول إيه اللي حصل
HTTP RESPONSE — مثال
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 256

{"status": "success", "data": [...]}
💡 القاعدة الذهبية — سؤال متكرر جداً: الـ HTTP Request لازم دايماً يحتوي على: Request Line + Headers. أما الـ Body فهو اختياري وبيكون موجود في POST/PUT بس — مش في GET. السؤال اللي بيجي في الامتحان: "An HTTP request message always contains ___" — الإجابة: A Request Line and A Header.
💡 Request Line vs Status Line — فرق مهم:
  • أول سطر في الـ Request = Request Line (Method + URL + Version)
  • أول سطر في الـ Response = Status Line (Version + Code + Message)
📋 Headers والـ Body

Headers — بيانات وصفية (Metadata):

  • Content-Type — نوع المحتوى (HTML, JSON, image)
  • Authorization — بيانات الـ Authentication
  • Content-Length — حجم المحتوى
  • Expires — تاريخ انتهاء الـ Cache

Body — المحتوى الفعلي:

  • في الـ Request: بيانات الفورم أو JSON
  • في الـ Response: HTML أو JSON أو صورة
  • مش كل Request بيحتاج Body
  • معظم Responses بيكون فيها Body
⭐ سؤال امتحان 2024 متكرر: "Expires: Tuesday, 17 Dec 2020 18:30 GMT" — ده Header بييجي في الـ Response (مش الـ Request) وبيعمل Time-Based Caching. الإجابة: response, time-based caching.
07

HTTP Methods — أوامر الطلب

الـ Method بيقول للسيرفر نية الـ Request — إيه اللي عايزه يعمله؟

📖 GET — القراءة
  • بيُستخدم لجلب صفحة أو بيانات (Read-Only)
  • البيانات بتظهر في الـ URL (Query String)
  • لا يحتوي على Body
  • مثال: فتح صفحة قائمة الطلاب
  • Safe — مش المفروض يغير حاجة على السيرفر
📝 POST — الإرسال والحفظ
  • بيُستخدم لإرسال بيانات جديدة للسيرفر
  • البيانات بتتبعت في الـ Body (مخفية)
  • مثال: Login، Registration، إضافة ريكورد جديد
  • أكثر أماناً من GET للبيانات الحساسة
  • بيُنشئ Record جديد أو بيُنفذ Action
✏️ PUT & PATCH — التعديل
  • PUT: تعديل كامل للـ Resource (Full Update)
  • PATCH: تعديل جزئي للـ Resource (Partial Update)
  • مثال: تحديث بيانات الطالب
  • الفرق المهم: PUT = الكل، PATCH = جزء
🚨 فخ امتحان 2025: "We use the PUT method for doing partial updates." — هذا خطأ! False. الـ PATCH هو اللي بيعمل Partial Update!
🗑️ DELETE — الحذف
  • بيُستخدم لحذف Resource من السيرفر
  • لازم يكون محمي بـ Authorization
  • Idempotent — تكراره مش بيعمل مشاكل إضافية
  • مثال: حذف كورس أو ريكورد
⚖️ مقارنة GET vs POST — سؤال الامتحان المتكرر
المعيارGETPOST
الغرضقراءة البياناتإرسال/حفظ بيانات جديدة
مكان البياناتفي الـ URL (مرئية!)في الـ Body (مخفية)
الأمانأقل أماناً للبيانات الحساسةأكثر أماناً
Bodyلا يحتوي على Bodyيحتوي على Body
الاستخدامفتح صفحات، بحثLogin، Registration، Forms
🚨 سؤال امتحان 2021 متكرر: "______ is more robust and secure than ______" — الإجابة: POST, GET. الـ POST أأمن لأن البيانات بتتبعت في الـ Body وملهاش ظهور في الـ URL.
08

HTTP Status Codes — أكواد حالة الـ Response

السيرفر بيستخدم الـ Status Code عشان يقول إيه اللي حصل

🚦 عائلات الـ Status Codes — 5 مجموعات
1xx
Informational
ردود إعلامية — نادرة في العمل اليومي المبتدئ
2xx
Success
السيرفر استقبل الطلب وتعامل معاه بنجاح
3xx
Redirection
السيرفر بيوجه العميل لمكان تاني
4xx
Client Error
فيه مشكلة في الطلب من ناحية العميل
5xx
Server Error
السيرفر فشل أثناء تنفيذ طلب تبدو صح
2xx — Success
الكودالمعنى
200 OKكل حاجة تمام — الأكثر شيوعاً
201 Createdتم إنشاء Resource جديد بنجاح
204 No Contentنجاح لكن مفيش Body في الرد
↩️ 3xx — Redirection
الكودالمعنى
301 Moved Permanentlyالصفحة اتنقلت لمكان تاني نهائياً
302 Foundتوجيه مؤقت — شائع بعد Login ناجح
304 Not Modifiedالمحتوى لم يتغير — Cache صالح
4xx — Client Error
الكودالمعنى
400 Bad Requestالطلب مكسور أو ناقص
401 Unauthorizedمحتاج Login أولاً — "مين إنت؟"
403 Forbiddenعارفك لكن مش مسموح — "مفيش صلاحية"
404 Not Foundالصفحة أو الـ Resource مش موجود
💥 5xx — Server Error
الكودالمعنى
500 Internal Server Errorكود الـ Backend وقع — مش غلط العميل
502 Bad Gatewayالسيرفر الوسيط فشل
503 Service Unavailableالسيرفر مش شغال أو عليه ضغط
🤔 401 vs 403 vs 404 vs 500 — الفروق المهمة
🚨 فروق مهمة جداً في الامتحانات:
  • 401 Unauthorized: إنت مش عامل Login أصلاً — "مين إنت؟" — السيرفر شغال ومتاح
  • 403 Forbidden: إنت عامل Login لكن معكش صلاحية — "أنا عارفك بس مش هسمحلك" — السيرفر شغال ومتاح
  • 404 Not Found: المسار أو الـ Resource غلط أو مش موجود
  • 304 Not Found: ❌ غلط! 304 = Not Modified (Cache لسه صالح) — Not Found دي 404
  • 500 Internal Server Error: الكود ضرب جوه السيرفر — المسار صح لكن في Bug
📊 سيناريوهات حقيقية — Real Scenarios
الموقفالكود المتوقعالشرح
فتح صفحة موجودة بشكل عادي200 OKكل حاجة تمام
إضافة طالب جديد بنجاح201 Createdتم إنشاء الريكورد
بعد Login ناجح وتوجيه للـ Dashboard302 FoundRedirect مؤقت
فتح URL مش موجود404 Not Foundالـ Route مش موجود
طالب عادي يحاول يفتح صفحة الـ Admin403 Forbiddenبيعرفه لكن مش مسموح
Bug في كود Python على السيرفر500 Internal Server Errorالكود وقع
💡 404 vs 500 — سؤال مهم: لو المسار غلط → 404. لو المسار صح لكن الكود وقع → 500.
09

Validation & Forms — التحقق والفورمات

ليه Backend Validation ضروري حتى لو الـ Frontend بيفحص؟

🖥️ Frontend Validation
  • بيتم في المتصفح قبل إرسال الطلب
  • هدفه تحسين تجربة المستخدم (UX)
  • سريع — مش بيحتاج رحلة للسيرفر
  • يمكن تجاوزه! المستخدم يقدر يعدله
  • JavaScript, HTML5 attributes
🔐 Backend Validation
  • بيتم على السيرفر بعد استقبال الطلب
  • هدفه حماية البيانات والأمان
  • لازم يفحص الـ required fields والـ formats
  • لا يمكن تجاوزه — هو الحكم الأخير
  • ضروري حتى لو الـ Frontend فاحص
🚨 قاعدة الأمان: "Never trust input just because it came from a nice form." الـ Frontend Validation ممكن يتجاوزه أي مستخدم بسهولة. الـ Backend Validation هو الحماية الحقيقية.
🔑 مثال عملي — Login Form Flow
1
المستخدم بيملأ الفورم
Email + Password في صفحة الـ Login
2
Browser بيبعت POST Request
البيانات في الـ Body — مش في الـ URL
3
Server بيعمل Validation
بيتحقق من الـ Email والـ Password في الـ Database
4
السيرفر بيرد
لو نجح: Session + Redirect (302). لو فشل: Form مع Error Message.
10

JSON & APIs — نقل البيانات الحديث

ازاي الـ Backend بيبعت الداتا للـ Frontend والتطبيقات

📦 ما هو الـ JSON؟

الـ JSON (JavaScript Object Notation) هو format نصي لتمثيل البيانات المنظمة. شائع جداً في الـ APIs والتطبيقات الحديثة. بيستخدم Key-Value Pairs وشبه بالـ Dictionary في Python.

JSON — مثال بسيط
{
    "name": "Ali",
    "level": 2,
    "department": "CS",
    "courses": ["IS231", "CS101"]
}
🔗 HTML Response vs JSON Response

HTML Response — رد عادي للمتصفح:

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

<html><body>Welcome!</body></html>

JSON Response — رد الـ APIs الحديثة:

JSON API RESPONSE
HTTP/1.1 200 OK
Content-Type: application/json

{"status": "success"}
💡 سؤال امتحان 2025: "An HTTP response content type denotes ___" — الإجابة: The media type of the content. الـ Content-Type بيحدد نوع الداتا (HTML, JSON, image) — وملوش علاقة بالحجم.
🌐 ما هو الـ API؟

الـ API (Application Programming Interface) هو عقد للتواصل مع برنامج عن طريق Requests والـ Responses. الـ Web API بيرجع Responses فيها Data بدل صفحات HTML كاملة — ونفس مبادئ HTTP لازم تنطبق: URL, Method, Headers, Body, Response.

11

Cookies & Sessions — ازاي السيرفر بيتذكرك

بعد الـ Login، السيرفر عارفك إزاي في الطلبات الجاية؟

🍪 Cookie
  • بيانات صغيرة مخزنة في المتصفح
  • السيرفر بيبعتها في الـ Response
  • المتصفح بيبعتها مع كل Request تاني
  • مثال: بيانات الـ Login Session
  • الهيدر: Expires بيحدد مدة صلاحيتها
🗝️ Session
  • بيانات مخزنة على السيرفر
  • بتمثل حالة المستخدم (Logged In State)
  • السيرفر بيتعرف على المستخدم عن طريق Session ID
  • الـ Session ID بيتخزن في Cookie في المتصفح
  • Django بيتعامل معاها تلقائياً
💡 مقدمة فقط: الـ Cookies والـ Sessions موضوع تفصيلي بيجي في محاضرات الـ Django. المهم دلوقتي إنك تفهم المفهوم الأساسي: السيرفر بيستخدمهم عشان "يتذكر" المستخدم بين الـ Requests المختلفة.
🎯

أسئلة امتحانات Web Basics & HTTP

كل أسئلة المحاضرة دي من امتحانات 2021 + 2024 + 2025 — مرتبة حسب ترتيب الشرح 🇪🇬

Q1 Final 2021 — Q.1
The number of objects in a web page which consists of 4 JPEG images and HTML text is:
A
1
B
3
C
5
D
8
✅ الإجابة الصح: C — 5
كل صورة JPEG بتحسب كـ Object منفصل (4 صور = 4 Objects)، وملف الـ HTML نفسه بيحسب Object واحد. إذن المجموع = 4 + 1 = 5 Objects. مفهوم الـ Object في الويب هو أي ملف يُطلب بشكل منفصل.
Q2 Final 2021 — Q.4
HTTP uses the services of ______ on well-known port 80.
A
TCP
B
UDP
C
SMTP
D
HTTPS
✅ الإجابة الصح: A — TCP
الـ HTTP بيشتغل فوق بروتوكول TCP على الـ Port 80 بشكل افتراضي. الـ TCP بيضمن وصول البيانات بالترتيب وبدون أخطاء (Reliable). أما HTTPS فبيشتغل على TCP كمان لكن على الـ Port 443.
Q3 Final 2021 — Q.5
The first line in the request message is called the ______ line, and the first line in the response message is called the ______ line.
A
Request, Status
B
Status, Status
C
Response, Status
D
None of The Above
✅ الإجابة الصح: A — Request, Status
رسالة الـ Request بتبدأ بـ Request Line (Method + Path + Version). مثال: GET /students/list HTTP/1.1
أما رسالة الـ Response بتبدأ بـ Status Line (Version + Code + Message). مثال: HTTP/1.1 200 OK
Q4 Final 2021 — Q.6
An HTTP request message always contains ______.
A
A Header and A Body
B
A Request Line and A Header
C
A Status Line, A Header and A Body
D
None of The Above
✅ الإجابة الصح: B — A Request Line and A Header
أي HTTP Request لازم يحتوي دايماً على: Request Line + Headers. أما الـ Body فهو اختياري — بيكون موجود في POST/PUT لكن GET مثلاً مبيبعتش Body. وال Status Line دي بتاعة الـ Response مش الـ Request!
Q5 Final 2021 — Q.7
______ is more robust and secure than ______.
A
GET, POST
B
POST, PUT
C
POST, GET
D
None of The Above
✅ الإجابة الصح: C — POST, GET
الـ POST أأمن من GET لأن البيانات في الـ POST بتتبعت في الـ Body (مخفية)، بينما في الـ GET بتظهر في الـ URL! لو بعتت Password بـ GET، هيظهر في الـ URL ويتسجل في الـ Browser History — ده خطر أمني كبير.
Q6 Final 2021 — Q.3
Find the oddly matched HTTP status codes:
A
200 — OK
B
400 — Bad Request
C
301 — Moved Permanently
D
304 — Not Found
✅ الإجابة الصح: D — 304 — Not Found
الـ 304 مش "Not Found"! 304 معناها Not Modified — يعني المحتوى لم يتغير والـ Cache في المتصفح لسه صالح. أما Not Found فدي الكود 404. الاختيارات التانية A و B و C كلها صح في التوصيل.
Q7 Final 2021 — Q.36
In a URL, an optional ______ can be inserted between the host and the path, separated from the host by a colon.
A
Port Number
B
Protocol
C
Host
D
None of them
✅ الإجابة الصح: A — Port Number
في الـ URL، الـ Port Number اختياري وبييجي بعد الـ Host مفصول بنقطتين (:). مثال: https://portal.cu.edu.eg:443/students — الـ 443 ده الـ Port. لو مش موجود، المتصفح بيستخدم الـ Default (80 لـ HTTP أو 443 لـ HTTPS).
Q8 Final 2021 — Q.43 & Final 2024 — Q.23
"Expires: Tuesday, 17 Dec 2020 18:30 GMT" is a ______ header denoting ______.
A
request, time-based caching
B
response, content-based caching
C
request, content-type caching
D
response, time-based caching
✅ الإجابة الصح: D — response, time-based caching
الهيدر Expires بيتبعته السيرفر في الـ Response (مش الـ Request). وبما إنه بيحدد تاريخ ووقت معين لانتهاء الصلاحية، فده يُسمى Time-Based Caching. ده من أشهر الأسئلة المتكررة — ظهر في 2021 و2024!
Q9 Final 2025 — Q.35
An HTTP response content type denotes:
A
The media type of the content
B
The image size of the content
C
The text size of the content
D
None of the answers!
✅ الإجابة الصح: A — The media type of the content
الـ Content-Type (أو الـ MIME type) بيعرّف المتصفح نوع الداتا اللي جاية: هل هي text/html ولا application/json ولا image/jpeg. ملوش دعوة بحجم المحتوى خالص — الحجم ده الـ Content-Length.
Q10 Final 2025 — Q.36
Using authorization, having a response of status 200 means that:
A
User is not authorized to see the response
B
User is authorized to see the response
C
Content cannot be displayed after authorization
D
None of the answers!
✅ الإجابة الصح: B — User is authorized to see the response
الكود 200 OK معناه الطلب نجح بالكامل — السيرفر استقبله وعالجه وبعت رد ناجح. في السياق ده: المستخدم مصرح له يشوف الداتا والدنيا تمام. (السؤال ده اتكرر بنفس الصياغة في فاينال 2021 كمان).
Q11 Final 2025 — Q.37
Using authorization, having a response of status 403 means that:
A
Server is reachable but the user is not authorized to see the response
B
Server is not reachable, and the user is not authorized to see the response
C
Server is reachable and no content available to show the user
D
None of the answers!
✅ الإجابة الصح: A — Server is reachable but the user is not authorized
الكود 403 Forbidden معناها: السيرفر شغال وموصلنا له (Reachable)، وفاهم الطلب، لكن المستخدم معكوش صلاحية (Not Authorized) يوصل لده المورد. مثال: طالب عادي بيحاول يفتح صفحة Admin. مختلف عن 401 (مش عامل Login أصلاً).
Q12 Final 2025 — T/F Q.1
We use the PUT method in the HTTP request message for doing partial updates. (True or False?)
A
True
B
False
✅ الإجابة الصح: B — False
الـ PUT بيعمل Full Update — بيعدل الـ Resource بالكامل. أما Partial Update (تعديل جزء منه بس) فده بيتعمل بـ PATCH. ده من الفخاخ المشهورة في الامتحانات!