מערך שיעור: רשתות ואינטרנט
משך: יום לימוד מלא — 6 שעות אקדמיות (270 דקות).
מטרת השיעור: הסטודנטים יבנו מודל מנטלי שלם של איך מידע עובר ברשת, ויבינו את המונחים שישמשו אותם בנושא Backend ומסדי נתונים (Backend): Request, Response, Method, Status Code, Host, Port.
בסוף השיעור הסטודנטים צריכים:
- להסביר את מודל Client-Server ולזהות את התפקידים בתרחיש נתון.
- לפרק URL ולהסביר את התפקיד של IP, Port ו-DNS.
- לתאר בסדר נכון את 8 שלבי המסע מהקלדת כתובת ועד הצגת אתר.
דגש קריטי: Request/Response ו-Status Codes. זו השפה של כל נושא Backend ומסדי נתונים. אם הסטודנטים יוצאים מהיום עם “בקשה = Method + Path, תשובה = Status + Body”, הגשר ל-FastAPI כבר בנוי.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה: “מה קורה כשגולשים?” | 10 דק' | לשאול את הכיתה ולרשום תשובות. לחזור אליהן בסוף היום. |
| רשת, LAN, אינטרנט, Client/Server | 40 דק' | אנלוגיות הדואר והמסעדה. הדגמה חיה: python -m http.server והדפדפן. הלפטופ הוא גם Client וגם Server. |
| IP, Port, Domain, DNS | 45 דק' | dns_lookup.py. להדגים פורט תפוס (במק/לינוקס) ופורט שאין בו שרת. |
| הפסקה | 15 דק' | |
| פרוטוקולים: HTTP, HTTPS, TCP, UDP | 50 דק' | 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 Request | Method + Path + Headers + Body. |
| HTTP Response | Status Code + Headers + Body. |
| Status Code | 2xx הצלחה, 4xx טעות לקוח, 5xx טעות שרת. |
| HTTPS / TLS | HTTP מוצפן ומאומת בתעודה. |
| TCP / UDP | אמין ומסודר / מהיר ולא מובטח. |
| URL | Protocol + Host + Port + Path + Query. |
תרגיל חשיבה
שאלת פתיחה (תחילת חלק “המסע”): “אתר הקורס לא נטען לי. תנו לי חמש סיבות שונות שיכולות לגרום לזה, ולכל אחת — איך הייתם בודקים?”
מהלך:
- בקבוצות של 3, חמש דקות. כל קבוצה כותבת את הסיבות שלה.
- אוספים על הלוח. תשובות צפויות: “אין אינטרנט”, “האתר נפל”, “כתבתי לא נכון את הכתובת”.
- המרצה מצייר את 8 שלבי המסע, ומבקש מהכיתה למקם כל סיבה על השלב שלה. “כתבתי לא נכון” נופל על DNS או על 404, “האתר נפל” על TCP או 500, “תעודה פגה” על TLS.
- לשאול: “איזה שלב חסר לנו סיבה?” ולהשלים יחד.
מה המרצה מראה בסוף: טבלת “סימפטום → שלב” מתוך השיעור, ואז הדגמה של שלוש תקלות אמיתיות בדפדפן: Domain שלא קיים (שגיאת DNS), localhost:9999 (Connection refused) ונתיב לא קיים (404). משפט סיום: “דיבאג של רשת = לשאול באיזה שלב זה נשבר.”