# מערך שיעור: HTTP — Request, Response, Status Codes📋 מערך מרצה

משך: 2 שעות אקדמיות (90 דקות).

מטרת השיעור: הסטודנטים יבינו את מבנה HTTP Request/Response ואת המוסכמות של Methods ו-Status Codes, כבסיס ליחידת ASP.NET Core כולה.

בסוף השיעור הסטודנטים צריכים: לבחור Method נכון לפעולה נתונה, לפרש Status Code בקטגוריה הנכונה (2xx/4xx/5xx), ולהסביר מה ההבדל בין Request ל-Response.

דגש קריטי: זהו שיעור הפתיחה של יחידת ASP.NET Core — אין עדיין קוד C# בכלל, רק הבנת הפרוטוקול. אל תמהרו לקוד, הבסיס הזה חייב להיות מוצק.

---

## מהלך השיעור

| חלק בשיעור | משך | הערות ודגשים |
| --- | --- | --- |
| פתיחה וחיבור | 5 דקות | שאלו: "מה קורה בפועל כשלוחצים על קישור באתר?" |
| הרעיון: Request/Response | 20 דקות | מבנה, כתבו דוגמה מלאה על הלוח |
| HTTP Methods | 20 דקות | GET/POST/PUT/DELETE, קשרו לפעולות CRUD מוכרות |
| Status Codes | 25 דקות | קטגוריות 2xx/4xx/5xx, הדגישו 401 מול 403 |
| הדגמה חיה: DevTools | 10 דקות | פתחו אתר אמיתי, הראו Network tab עם בקשות אמיתיות |
| תרגול מודרך | 10 דקות | תרגיל 1+2 |

---

## דגשים להעברת השיעור

- הדגמה חיה ב-DevTools (טאב Network בדפדפן) על אתר אמיתי היא הרגע שהופך את כל הנושא ממופשט למוחשי — אל תדלגו עליה אם יש זמן.
- ההבחנה `401` מול `403` היא מלכודת קלאסית בראיונות עבודה — הקדישו לה זמן נפרד: `401` = "אני לא יודע מי אתה" (לא מחובר); `403` = "אני יודע מי אתה, ואתה לא רשאי" (מחובר אך חסר הרשאה).
- אין עדיין קוד ASP.NET Core בשיעור הזה — זה מכוון. הבנת הפרוטוקול לפני התחביר מונעת "לימוד תחביר בלי להבין למה".

---

## מושגים

**HTTP Request/Response** — הודעת בקשה/תשובה בין לקוח לשרת.
**HTTP Method** — GET/POST/PUT/DELETE, מבטא כוונת פעולה.
**Status Code** — קוד תלת-ספרתי שמסכם תוצאה: 2xx/4xx/5xx.

---

## תרגיל חשיבה

**שאלת פתיחה:** "אם שרת מחזיר תמיד `200 OK` — גם כשמשהו נכשל, גם כשמשתמש לא נמצא — מה הבעיה עבור מי שכותב את הלקוח (frontend) שמדבר איתו?"

**מהלך:** הובילו לתובנה: הלקוח **חייב** לפרש כל תשובה בעצמו (לקרוא את ה-Body ולנחש אם זו שגיאה) במקום לסמוך על קוד סטטוס אמין. זה מבטל את כל התועלת של Status Codes — הם קיימים בדיוק כדי שלקוח יוכל להחליט מיד, בלי לפרש תוכן חופשי, אם הבקשה הצליחה.

**מה המרצה מראה בסוף:** פתחו DevTools על אתר אמיתי, בצעו כמה פעולות (ניווט, טעינת עמוד, אולי שליחת טופס), והראו את הבקשות בטאב Network — Method, Status Code, Headers ו-Body האמיתיים, לא רק דוגמה תיאורטית על הלוח.
