מצב תצוגה
מה זה האינטרנט?
Java Script היא שפת תכנות שהומצאה עבור האינטרנט. גם כאן, אם אתם כבר מכירים את האינטרנט ומושגים כמו צד-לקוח, צד שרת, תעבורה ודפדפן ברורים לכם דלגו לפרק הבא.
המילה אינטרנט היא הלחם של המילים International net – רשת בינלאומית.
ההגדרה הטובה ביותר לאינטרנט היא "רשת מחשבים"
רשת מחשבים = מחשב שמחובר למחשב אחר.
רק שלא מדובר כאן על מחשב אחד ולא על רשת אחת.
דיאגרמה של מחשב מחובר למחשב מחובר למחשב עוד ועוד
האינטרנט מורכב מתשתיות רשת ענקיות, החל מכבלים קטנים המחברים בין מחשבים במתחם אחד ועד לכבלים תת-ימיים המחברים בין אזורים, מדינות ויבשות.
בכל גישה לרשת יש שני שחקנים עיקריים.
צד הלקוח – המכשיר שמבקש למידע מהרשת. החל מהטלפון החכם שלנו, מחשב וכלה ברכיבים של בתים חכמים.
צד שרת – המכשיר ששולח את המידע ברשת. ואשר נקרא שרת.
שרת הוא מחשב המחובר לאינטרנט 24/7 עם כתובת גישה קבועה, כך שבכל מקרה שמשתמש ירצה לגשת לשירותים ברשת השרת יחזיר לי תשובה.
לכל שרת יש מגבלות כמו:
מקום אחסון, כמה מידע יכול שרת להחזיק לפני שיאזלו מאגרי האחסון.
מספר בקשות בשנייה, כמה בקשות יוכל השרת לקבל ולספק עבורם מידע בזמן נתון.
חוץ מהשרת אשר הוא נקודת הקצה הקיצונית ביותר ברשת הרשת מכילה גם נתבים. נתבים הם אלו המעבירים את חבילות המידע משני הצדדים. מצד הלקוח לצד השרת ומצד השרת לצד הלקוח ו\או צד שרת אחר נוסף.
מושג זה נקרא תעבורה, תעבורה זו נמדדת ע"י כמות המידע הנשלחת דרך הרשת. אם לדוגמא נוריד שיר ששוקל 4 מגה-בייט השרת שלח (וישלם) תעבורה בסך 4 מגה-בייט. תעבורת-רשת היא פקטור רציני בפיתוח של מוצרים באינטרנט. כך שעל המתכנתים לעיתים רבות לדאוג שהתעבורה בסך הכולל תהיה כמה שפחות כדי לחסוך בעלויות ובביצועים.
כדי לגלוש לאתרי אינטרנט אנו נשתמש בתוכנה הנקראת דפדפן. דפדפן מלשון דפדוף בין דפים. התוכנה בה אתם קוראים פרק זה נקראת דפדפן. דפדפנים נפוצים הם Chrome של Google. Edge של Microsoft ו-Safari של חברת Apple.
כדאי לדעת שהאינטרנט לא מתחיל ומסתיים בדפדפן, האינטרנט כאמור הוא כל שירות שבשביל לבצע פעולות משתמש בתהליך שהצגנו קודם של לקוח-מול-שרת. דוגמאות לאינטרנט שלא במסגרת דפדפן:
כל אפליקציה אשר אינה מציגה אפשרויות דפדוף ומשתמשת באינטרנט לשמירה ושליחה של נתונים. WhatsApp היא דוגמא מצוינת לאפליקציה שמשתמשת באינטרנט.
IoT – האינטרנט של הדברים – רשת של דברים פיזיים. כמו רכיבים של בתים חכמים ובעצם ההגדרה היא כל מוצר שמציג אפשרויות ניהול ברשת. בין אם מדובר על מצלמת אבטחה ובין אם מדובר על חיישן מזג אוויר עבור חדר השינה שלכם.
שפת Java Script בהקשרה המקורי נוצרה לשימוש עבור צד הלקוח בתקשור של רשת דרך דפדפן. (עוד על כך בפרק הבא)
חשוב לזכור את המושגים צד-לקוח וצד-שרת בהקשר לדפדפן.
בעת השימוש בדפדפן וכאשר המשתמש גולש לכל אתר שהוא זהו התהליך שקורה.
דיאגרמה המציגה את פעולת המשתמש נשלחת לצד השרת אשר מחזיר בתגובה את המשאבים המכילים את המידע עבור הבקשה.
תהליך גלישה לאתר מפורק באופן הבא:
בקשה של אתר לדוגמא google.com
ספק האינטרנט שלכם יישלח בקשה לקבלת המידע עבור הכתובת google.com
בעזרת שימוש בשרתי DNS אשר לוקחים כתובת אתר דוגמת google.com וממירים אותה למספר מזהה של השרת בו מאוחסן האתר
השרת של google.com מכין הדף להצגה ושולח אותו חזרה למחשב שלנו, לדפדפן.
הדפדפן שמקבל את המידע, יודע לקרוא אותו ומציג עבורנו את האתר.
בתהליך כאן היו מעורבים באופן מלא שני צדדים.
צד השרת – השרת של google.com קיבל בקשה, פענח אותה ושלח את המידע חזרה.
צד הלקוח – הדפדפן במחשב שקיבל את המידע, פענח אותו והציג את המידע עבורנו.
כל אתר מורכב משני הצדדים ולכל צד השפות תכנות והטכנולוגיות שמשמשות אותה.
בצד לקוח השפות הן:
HTML – בעזרת תחביר קבוע מראש מגדירים את המבנה, השלד של האתר
CSS – שפה איתה נעצב את המבנה. נחליט היכן ימוקם כל אלמנט מה יהיה הצבע, הגודל ,כיוון הטקסט שלו ועוד.
Java Script – המנוע של צד השרת. השפה שהופכת את המידע המוצג בצד שרת ל-"חי"
השפות HTML ו-CSS אינן נקרות שפות תכנות כיוון שאינן מציגות יכולות של לוגיקה וחישוב.
Java Script לעומתן היא שפת תכנות לכל דבר.
בצד שרת מגוון השפות הוא גדול אבל נחלקן לשני סיווגים עיקריים 1. 2. שפת תכנות כמו PHP, C#, Python ואחרים – היא תהיה השפה הראשית שתפענח הבקשות ותחזיר חזרה למשתמש את המידע המבוקש. 2. 3. שפה בתקן של מסד נתונים כמו SQL או NoSQL – בעזרת שפה זו ניגש למסד-הנתונים (מאגר המידע) של התוכנה.
דבר אחרון שכדאי לדעת בקשר לשרתים באינטרנט זה המושג של תוכנת שרת.
כאשר צד השרת שולח בקשה לצד השרת לקבלת דף אינטרנט מסוים הבקשה בדרך כלל לא תגיע ישר לשפת התכנות של צד שרת אלא תעבור דרך תוכנת המשמשת כשרת HTTP.
תוכנות נפוצות בנושא הזה הן כמו Apache Server, Nginx אשר רצים גם על שרתי Linux שהיא מערכת הפעלה חינמית. או IIS של חברת Microsoft אשר רץ רק על שרתי Windows Server המוצעים בתשלום חודשי.
בדרך כלל וודאי בשלבים הראשונים של כל פרויקט לא יהיה צורך לדאוג לאופן עבודת השרת HTTP ויש מספיק חברות שמציעות שרתי כאלו במחירים שווים לכל נפש, החל מ-3$ לחודש.