0.1 רשתות בסיסי הרצאה
הקדמה¶
ברוכים הבאים לקורס צד שרת :)
מייד נעבור על תכני הקורס, בנתיים שימו לב לנקודות הבאות.
- עליכם לסיים את קורס תכנות במלואו באתר לפני הקורס.
- בקורס זה רוב הלמידה היא עליכם. אתם נדרשים לפתח פרויקט מאוד משמעותי, לתרגל, לחקור בעצמכם באינטרנט על נושאים וללמוד המון בעצמכם- בלי כפיות זהב.
- השקיעו, חקרו באינטרנט, דברו עם הai, קראו דוקמנטציות, וכתבו כמה שיותר קוד- רק ככה תוכלו באמת להצליח ולממש את מלוא הפוטנציאל.
קורס צד שרת¶
ברוכים הבאים לקורס צד שרת :)
בקורס נלמד כיצד לכתוב ״צד שרת״ או באנגלית ״backend״.
לפני שנלמד מה זה צד שרת, נצטרך ללמוד קצת על רשתות מחשבים ומה המילה שרת בכלל אומרת.
בעמית-טק קיים גם קורס רשתות שמסביר בצורה עמוקה מאוד את עולם הרשתות, אבל בקורס הזה אנחנו לא נתרכז בלהסביר על רשתות- אלה יותר נתרכז רק בחלק שאותו אנחנו צריכים להכיר בשביל פיתוח צד שרת.
מושגים בסיסיים ברשתות¶
כתובת ip: בעולם הרשתי לכל ישות באינטרנט יש כתובת ip שמייצגת אותה. לדוגמה: 12.34.56.78, 8.8.8.8 או 192.168.0.1
רק בהנחה שאתם יודעים מה הIP של מחשב מסוים, תוכלו לדבר איתו. חשבו על IP כמו על כתובת של הבית שלכם, אם לא תדעו את הכתובת של בית של חבר, לא תוכלו להגיע לבקר אותו.
דומיין: כדי להתחבר למחשבים/שרתים אחרים באינטרנט נצטרך לדעת את כתובת הip שלהם, וזה דבר שקצת קשה לזכור (קבוצה של מספרים).
לעומת זאת מחרוזות יותר קל לזכור ובגלל זה אנחנו משתמשים בדומיינים.
דומיין הוא מחרוזת שאפשר לתרגם לכתובת ip, דומיין למשל יכול להיות: google.com, youtube.com, amittech.dev ועוד.
כל דומיין באינטרנט מצביע על כתובת IP מסוימת, מחשבים יודעים להמיר דומיין לכתובת IP. בהמשך נדבר על איך הם עושים את זה.
פורט: לכל סוג של תקשורת שהמחשב שלנו עושה עם מחשבים אחרים בעולם יש פורט,
דמיינו שהמחשב שלנו רוצה לדבר גם עם האתר אינטרנט של יוטיוב, וגם להתכתב עם חבר בווצאפ במקביל.
המחשב שלנו יודע לעשות כמה חיבורים במקביל, אבל הוא נותן לכל חיבור מספר (פורט)- כדי לדעת לזהות אותו.
למזלנו, לכל המספרים האלו יש משמעות, בדרך כלל פורט 80 משומש בשביל אתרי אינטרנט.
ופורט 443 בדרך כלל מייצג אתרי אינטרנט מאובטחים.
שרת ולקוח: ברוב המקרים בתקשורת של מחשבים יש שרת ולקוח,
שרת הוא מחשב שבדרך כלל נועד לשרת מחשבים אחרים- כמו מחשב שמריץ אתר אינטרנט, ולקוח הוא בדרך כלל מחשב קצה שנועד להתחבר לשרתים- כמו לקוח שמתחבר לאתר האינטרנט של יוטיוב כדי לראות סרטונים.
שרתים בדרך כלל מאזינים לתקשורת, ומספר רב של לקוחות יודעים להתחבר אליהם ולדבר איתם.
כאן בדיוק נופל עקרון חשוב שעליכם לדעת על פורטים:
אם שרת מאזין בפורט 80, זה אומר שכנראה מדובר באתר אינטרנט שאפשר לתקשר איתו על הפורט הזה.
אותו השרת יכול לאזין גם בפורט 443, וזה אומר שכנראה מדובר באתר אינטרנט מוצפן שאפשר לתקשר איתו גם על הפורט הזה.
פרוטוקולים: פרוטוקולים הם אופן מוגדר מראש שבו תוכן עובר בין מחשבים באינטרנט,
דמיינו שפרוטוקול היא הדרך שבה מחשבים מדברים אחד עם השני כדי להשיג מטרה מסוימת.
פרוטוקול http למשל מגדיר כיצד אתרים באינטרנט מדברים אחד עם השני, כלומר- כאשר המחשב שלנו רוצה לגשת לאתר אינטרנט, כאשר הוא מדבר עם אתר כמו יוטיוב- יש דרך מסוימת שבה המחשב שלנו מדבר עם יוטיוב כדי לקבל את האתר מיוטיוב. (בהמשך נדבר על פרוטוקול http ונבין איך מחשבים מדברים עם שרתים של אתרי אינטרנט)
קיימים עוד פרוטוקולים, לדוגמה פרוטוקול dns מגדיר כיצד מחשב יכול לדעת מה הip שעומד מאחורי דומיין מסוים. (לדוגמה מה הIP שמאחורי google.com)
דפדפן: דפדפן היא שיודעת לתקשר עם אתרי אינטרנט, כמו גוגל כרום, firefox, ספרי של אפל וכו.
הדפדפן יודע לגשת לאתרי אינטרנט באמצעות קישורים (URL-ים).
נדבר בהמשך יותר בהרחבה על קישורים, אבל הנה דוגמה לקישור לאתר של גוגל:
- כשאנחנו ניגשים בדפדפן עם הקישור http://google.com:443 אנחנו אומרים לדפדפן לגשת לדומיין של גוגל, google.com, בפורט 80- בפורטוקול http.
- כלומר, אנחנו מבקשים מהמחשב שידבר עם גוגל, בפורט 443 בפרוטוקול http.
כדי שהדפדפן ידע באמת לשלוח את הבקשה לגוגל, הוא צריך לדעת מה כתובת הIP של גוגל, ובשביל זה- הוא ימיר את הדומיין google.com לכתובת IP שלה, (זה נעשה באמצעות פרוטוקול "DNS", על זה לא נדבר כרגע, אבל מוזמנים לקרוא על זה.)
כדי לראות מה הIP של דומיין כמו google.com, תוכלו לבצע את הפקודה הבאה בטרמינל:

בהרצאה נדבר על פרוטוקול http וכיצד אתרים מתקשרים אחד עם השני.