CodeGym /בלוג Java /Random-HE /חלק 1. מה שאתה צריך לדעת לפני לימוד Spring ו-JavaEE
John Squirrels
רָמָה
San Francisco

חלק 1. מה שאתה צריך לדעת לפני לימוד Spring ו-JavaEE

פורסם בקבוצה
אם כבר סיימתם (או קרובים) ללמוד Java SE, אז הגיע הזמן לחשוב על הצעדים הבאים שלכם בכיבוש המקצוע של מפתח Java. חלק 1. מה שאתה צריך לדעת לפני לימוד אביב ו-JavaEE - 1 מצד אחד, יש לך כבר הבנה טובה של Java: אתה יודע איך לעבוד עם IDE, לכתוב תוכניות ועוד הרבה יותר. אבל מה עליך לעשות הלאה עם התוכניות שלך? איך הופכים אותם לקרירים יותר ו"משחררים אותם על העולם"? זה הופך להיות ברור שהגיע הזמן להתחיל ללמוד טכנולוגיות ארגוניות. ועכשיו הכיף מתחיל. זה לא משנה מאיזו ערימת טכנולוגיה תחליט להתחיל. בין אם זה JavaEE או Spring, אתה צפוי להיתקל בהמון דברים שהם הרבה, הרבה מעבר להבנתך. בין יסודות Java לטכנולוגיות מתקדמות נותר שלב ביניים בידע שיש לנקוט כדי לשמור על מה שנותר מהשליטה העצמית והביטחון העצמי שלך בזמן שאתה קורא תיעוד רב עוצמה. לכן, מטרת סדרת מאמרים זו היא לתת לך את הידע התיאורטי המינימלי הדרוש להמשך לימודיך ב-JavaEE או באביב. חומר זה מחולק ל-7 חלקים:
  1. נדבר קצת על נטוורקינג.
  2. נבחן את ארכיטקטורת שרת-לקוח וארכיטקטורת שלוש שכבות.
  3. נחקור את פרוטוקולי HTTP/HTTPS.
  4. נלמד את כל מה שאתה צריך לדעת על מייבן.
  5. אנחנו מדברים על רישום.
  6. לגבי מיכלי סרבל.
  7. ולבסוף, לגבי MVC.

חלק 1. נדבר קצת על נטוורקינג.

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

דגם OSI

מודל ה-Open Systems Interconnection (OSI) יוצר גישה מדורגת לבניית רשת. זה מראה בבירור כיצד ובאיזה שכבה ישויות של אותה רשת יכולות לקיים אינטראקציה זו עם זו. בסך הכל, הדגם הזה מכיל 7 שכבות:
7 יישום
6 הַצָגָה
5 מוֹשָׁב
4 תַחְבּוּרָה
3 רֶשֶׁת
2 קישור למידע
1 גוּפָנִי
פריצת המודל לשכבות הפשטה מאפשרת למפתחים העובדים על שכבת התעבורה, למשל, לא לחשוב על פרטי הטמעה ברמת הרשת והשכבות ההפעלה. גישה זו משמשת גם בתכנות. בואו נבחן את כל השכבות של מודל ה-OSI, ונקבע אילו מהם מעניינים אותנו:
  1. רובד פיזי - שכבה זו עוסקת בחוקי הפיזיקה וכיצד להשתמש בהם למטרותינו. למשל, יצירת כבלים והנחתם לגופים ברשת.

    הרובד הזה לא מעניין אותנו.

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

    שכבה זו לא מעניינת אותנו אלא אם כן אתה רוצה לכתוב קושחה עבור החומרה שמקימה קישורי נתונים.

  3. שכבת רשת - שכבה זו מיועדת לקביעת הכתובות של משתמשי רשת בודדים והמסלולים אליהם. יש ערך ללמוד יותר על הפרטים של שכבה זו, כלומר, כתובות רשת.

    כתובות רשת מוגדרות על ידי פרוטוקול מיוחד: הנפוץ ביותר הוא IPv4 (גרסה 4 של פרוטוקול אינטרנט). זהו הפרוטוקול שבו מתכנת אינטרנט צריך להשתמש כדי ליצור קשר עם משתמש רשת אחר.

    כתובת IPv4 מורכבת מארבעה ערכי בתים המופרדים בנקודות, לדוגמה: 192.0.2.235. כדאי לזכור שערכים אלו הם בתים, כלומר הם נמצאים בטווח 0..255.

    כתובות IP, בתורן, מחולקות למחלקות. אנחנו לא יכולים פשוט להקצות לעצמנו שילוב יפה של מספרים, אבל לא נעמיק כאן. זה מספיק כדי להבין שכתובת IP מזהה באופן ייחודי משתמש ברשת וניתן להשתמש בו כדי ליצור קשר עם אותו משתמש.

  4. שכבת תחבורה - שכבה זו מטפלת במסירת מידע לנמען. נעשה שימוש בפרוטוקולים שונים כדי להשיג זאת. בינתיים אנחנו לא מעוניינים בהם. אנחנו מתעניינים הרבה יותר בקונספט של נמל , המופיע בשכבה זו.

    פורטים אחראים לזיהוי אפליקציה ספציפית במחשב. לדוגמה, נניח שאתה כותב אפליקציית צ'אט ב-Java, מתקין אותה בשני מחשבים וברצונך לשלוח הודעה לחבר שלך. ההודעה שלך נארזה, נשלחת לכתובת IP ספציפית ומועברת לחבר שלך, אבל המחשב שלו לא יודע מה לעשות עם המידע שהתקבל, כי הוא לא מבין איזו אפליקציה צריכה לעבד את ההודעה שלך. כאשר ישויות רשת מתקשרות, משתמשים ביציאות כדי לציין איזו אפליקציה צריכה לעבד את המידע.

    היציאה היא מספר בטווח שבין 0 ל-65535. הוא מתווסף לכתובת ה-IP אחרי נקודתיים: 192.0.2.235:8080 . אבל אתה לא יכול להשתמש בכל היציאות בטווח שצוין: חלק מהן שמורות למערכת ההפעלה, אחרות משמשות בדרך כלל למטרות ספציפיות. לא נעמיק במטרות של נמלים שונים. לעת עתה, די להבין את תפקידם בתהליך התקשורת ברשת.

  5. שכבת הפעלה - שכבה זו יוצרת ומנהלת מפגשי תקשורת. בשכבה זו, יישומים מתאפשרים אינטראקציה, שולחים בקשות ברמת השירות. מה שאנחנו צריכים לדעת זה שבשכבה הזו נפתח סשן בין שני משתמשים, ועלינו לעבוד עם הסשן.

    הפעלה היא ישות שנוצרת כאשר נוצר חיבור בין שני משתמשים. זה יכול לאחסן מידע הכרחי על משתמש ועל היסטוריית האינטראקציה עם המשתמש. פרט חשוב הוא שכאשר חילופי המידע מפסיקים, הפגישה לא נעלמת. במקום זאת, הוא שומר על מצבו למשך פרק זמן מוגדר, כך שמשתמשים יכולים להמשיך ולהחליף מידע לאחר הפסקה.

    אם אפליקציה מתקשרת עם מספר משתמשים בו-זמנית, נוצר מספר מתאים של חיבורים (ולכן הפעלות). לכל הפעלה יש מזהה ייחודי (ID) , המאפשר לאפליקציה להבחין בין המשתמשים איתם היא מתקשרת.

  6. שכבת מצגת - שכבה זו אחראית על קידוד/פענוח נתונים. ברור שאם אנחנו צריכים לשלוח את המחרוזת "Hello web" למשתמש אחר, היא מומרת תחילה לקוד בינארי (מקודד כ) ורק לאחר מכן היא נשלחת. בהגיעו לנמען, ההודעה מומרת חזרה (מפוענחת), והנמען יכול לראות את המחרוזת המקורית. פעולות אלו מתרחשות בשכבת המצגת.

  7. שכבת היישום היא השכבה המעניינת ביותר עבורנו. זה מאפשר ליישומים לתקשר עם הרשת. בשכבה זו אנו מקבלים ושולחים הודעות ופונים לשירותים ולמאגרי מידע מרוחקים.

    ישנם פרוטוקולים רבים בשימוש בשכבה זו: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET וכמובן HTTP/HTTPS. פרוטוקול הוא הסכם אוניברסלי שאנו מקפידים עליו בעת תקשורת. בהחלט נספק דיון מפורט נפרד על HTTP/HTTPS.

חלק 1. מה שאתה צריך לדעת לפני לימוד אביב ו-JavaEE - 2אנחנו לא צריכים לדעת איך כל שכבה של הדגם עובדת. העיקר להבין את העקרונות מאחורי פעולת האלמנטים איתם נצטרך לעבוד בעת כתיבת אפליקציות אינטרנט, כלומר:
  • כתובת IP — כתובת המשתמש ברשת
  • יציאה — הכתובת של יישום ספציפי של משתמש
  • Session - ישות הקיימת לאורך כל תקופת התקשורת בין שני משתמשים
  • פרוטוקולי יישומים (HTTP/HTTPS) - אלו כללים שנפעל לפיהם בעת חיבור ושליחת הודעות.
כאשר אנו מבקרים בחנות מקוונת, למשל, אנו מציינים את הכתובת והיציאה שלה. בביקורנו הראשון נוצר מפגש. החנות יכולה להקליט מידע בסשן. לדוגמה, החנות עשויה לשמור מידע על פריטים שהשארנו בעגלת הקניות. אם נסגור את הכרטיסייה עם החנות המקוונת ואז נחזור אליה מאוחר יותר, הפריטים שלנו עדיין יהיו בעגלה כי הם נשמרים בסשן. כמובן שכל המידע שאנו מקבלים מהחנות אנו מקבלים באמצעות פרוטוקול HTTP/HTTPS והדפדפן שלנו יודע לעבד אותו. אתה יכול להתנגד, ולומר שמעולם לא הזנת את הכתובת והיציאה בדפדפן, ואתה צודק בחלקו. מה שכן עשית זה להזין את שם הדומיין, שהומר על ידי שרת DNS. בואו נסתכל טוב יותר על מה יש כאן.

DNS (מערכת שמות דומיין)

כפי שכבר למדנו, לכל משתמש רשת יש כתובת ייחודית. אם אנחנו מדברים על האפליקציה, הכתובת הייחודית שלה תהיה IPv4-address:port . אם אתה מכיר את הכתובת הזו, תוכל לגשת ישירות לאפליקציה. תארו לעצמכם שכתבנו אפליקציית אינטרנט המציגה את טמפרטורת האוויר הממוצעת בכל המדינות בזמן אמת. פרסנו אותו על שרת עם הכתובת 226.69.237.119, על יציאה 8080. על מנת שיוכל לקבל מאיתנו מידע, על המשתמש להזין 5 מספרים בדפדפן: 226.69.237.119:8080. אנשים לא אוהבים לשנן קבוצות של מספרים: רבים מאיתנו לא יכולים לזכור יותר משני מספרי טלפון. לכן הומצאה מערכת שמות הדומיין . אנחנו יכולים ליצור "כינוי" עבור הכתובת שלנו, למשל, world-temperature.com. במקום לחפש אותנו באמצעות כתובת המורכבת מחמישה מספרים שקשה לזכור, המשתמש יכול להזין את שם הדומיין שלנו בשורת הכתובת של הדפדפן. ישנם שרתי DNS שממפים שמות דומיין לכתובות אמיתיות. לדוגמה, כאשר משתמש מזין codegym.cc בדפדפן, הבקשה שלה נשלחת לשרת DNS, אשר ממיר אותה לכתובת בפועל. חלק 1. מה שאתה צריך לדעת לפני לימוד אביב ו-JavaEE - 4זה חשוב לנו להבין, כי האפליקציות שלנו יתקשרו לשירותים מרוחקים הן לפי שמות מתחם והן לפי כתובות אמיתיות. אנחנו צריכים להבין שבכל מקרה השירותים זהים. זהו לבינתיים! במאמר זה, בדקנו את היסודות של רשתות, אשר יהיו שימושיים כאשר תתחיל ללמוד תכנות אינטרנט. בפעם הבאה נבחן מהי ארכיטקטורת שרת-לקוח ומדוע כל כך חשוב להבין. חלק 2. בואו נדבר קצת על ארכיטקטורת תוכנה חלק 3. HTTP/HTTPS חלק 4. היסודות של Maven Part 5. Servlets ו-Java Servlet API. כתיבת יישום אינטרנט פשוט חלק 6. מיכלי Servlet חלק 7. היכרות עם תבנית MVC (Model-View-Controller)
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION