רשתות ואינטרנט מערך שיעור למרצה

מערך שיעור: רשתות ואינטרנט

משך: יום לימוד מלא — 6 שעות אקדמיות (270 דקות).

מטרת השיעור: הסטודנטים יבנו מודל מנטלי שלם של איך מידע עובר ברשת, ויבינו את המונחים שישמשו אותם בנושא Backend ומסדי נתונים (Backend): Request, Response, Method, Status Code, Host, Port.

בסוף השיעור הסטודנטים צריכים:

  1. להסביר את מודל Client-Server ולזהות את התפקידים בתרחיש נתון.
  2. לפרק URL ולהסביר את התפקיד של IP, Port ו-DNS.
  3. לתאר בסדר נכון את 8 שלבי המסע מהקלדת כתובת ועד הצגת אתר.

דגש קריטי: Request/Response ו-Status Codes. זו השפה של כל נושא Backend ומסדי נתונים. אם הסטודנטים יוצאים מהיום עם “בקשה = Method + Path, תשובה = Status + Body”, הגשר ל-FastAPI כבר בנוי.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה: “מה קורה כשגולשים?”10 דק'לשאול את הכיתה ולרשום תשובות. לחזור אליהן בסוף היום.
רשת, LAN, אינטרנט, Client/Server40 דק'אנלוגיות הדואר והמסעדה. הדגמה חיה: python -m http.server והדפדפן. הלפטופ הוא גם Client וגם Server.
IP, Port, Domain, DNS45 דק'dns_lookup.py. להדגים פורט תפוס (במק/לינוקס) ופורט שאין בו שרת.
הפסקה15 דק'
פרוטוקולים: HTTP, HTTPS, TCP, UDP50 דק'raw_http.py: לראות את הטקסט הגולמי של HTTP. טבלת Status Codes על הלוח, והיא נשארת עד סוף השבוע.
הפסקה15 דק'
המסע מהדפדפן לשרת45 דק'8 השלבים על הלוח. journey.py. DevTools → Network → Timing.
תרגול + בדוק את עצמך50 דק'Mini Project “מפת הרשת”. סיום: לחזור לתשובות מהפתיחה ולתקן יחד.

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

  • הרבה ציורים. רשתות מובנות דרך דיאגרמות: חצים בין Client ל-Server, שכבות של פרוטוקולים. לצייר כל מושג לפני שמציגים קוד.
  • הקוד הוא חלון, לא מטרה. אין צורך שהסטודנטים יזכרו את socket.create_connection. המטרה היא שיראו שהבקשה היא באמת טקסט, ושיש שלבים נפרדים.
  • להפריד בבירור בין “השרת לא קיים” ל-“השרת ענה 404”. זה בלבול נפוץ שחוזר בנושא Backend ומסדי נתונים.
  • localhost הוא מושג קריטי לנושא Backend ומסדי נתונים. כדאי להדגים שהטלפון לא מגיע ל-127.0.0.1 של הלפטופ.
  • Windows: http.server לא תמיד נכשל על פורט כפול. להדגים את “פורט תפוס” ממחשב Mac/Linux, או להסתפק בהסבר. בנושא Backend ומסדי נתונים uvicorn יראה את השגיאה כמו שצריך.
  • אינטרנט בכיתה: אם רשת הכיתה חוסמת אתרים כמו httpbin.org, אפשר להחליף לכתובת אחרת שמחזירה 404 (למשל נתיב לא קיים ב-example.com).
  • שאלת הראיון: לומר במפורש שזו שאלה שנשאלת בראיונות, וזה מוטיבציה גבוהה.

מושגים

מושגהסבר קצר
Network / LAN / Internetמכשירים מחוברים / רשת מקומית / רשת של רשתות.
Routerמחבר בין ה-LAN לאינטרנט ומנתב חבילות.
Client / Serverיוזם בקשה / מחכה ועונה. תפקידים של תוכנות.
IP Addressכתובת של מכשיר ברשת. פרטית, ציבורית, או 127.0.0.1.
Portמספר שמזהה תוכנה בתוך המחשב. 80, 443, 8000.
Domain / DNSשם קריא / המערכת שמתרגמת אותו ל-IP.
Protocolסט כללים מוסכם לתקשורת.
HTTP RequestMethod + Path + Headers + Body.
HTTP ResponseStatus Code + Headers + Body.
Status Code2xx הצלחה, 4xx טעות לקוח, 5xx טעות שרת.
HTTPS / TLSHTTP מוצפן ומאומת בתעודה.
TCP / UDPאמין ומסודר / מהיר ולא מובטח.
URLProtocol + Host + Port + Path + Query.

תרגיל חשיבה

שאלת פתיחה (תחילת חלק “המסע”): “אתר הקורס לא נטען לי. תנו לי חמש סיבות שונות שיכולות לגרום לזה, ולכל אחת — איך הייתם בודקים?”

מהלך:

  1. בקבוצות של 3, חמש דקות. כל קבוצה כותבת את הסיבות שלה.
  2. אוספים על הלוח. תשובות צפויות: “אין אינטרנט”, “האתר נפל”, “כתבתי לא נכון את הכתובת”.
  3. המרצה מצייר את 8 שלבי המסע, ומבקש מהכיתה למקם כל סיבה על השלב שלה. “כתבתי לא נכון” נופל על DNS או על 404, “האתר נפל” על TCP או 500, “תעודה פגה” על TLS.
  4. לשאול: “איזה שלב חסר לנו סיבה?” ולהשלים יחד.

מה המרצה מראה בסוף: טבלת “סימפטום → שלב” מתוך השיעור, ואז הדגמה של שלוש תקלות אמיתיות בדפדפן: Domain שלא קיים (שגיאת DNS), localhost:9999 (Connection refused) ונתיב לא קיים (404). משפט סיום: “דיבאג של רשת = לשאול באיזה שלב זה נשבר.”