Website Icon

מהו מודל שרת לקוח?

Diagram showing 'Server Side' with database icons and 'Client Side' with a monitor icon, arrows depict HTTP Request and HTTP Response.

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

צד לקוח - Client-side

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

צד שרת - Server-side

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

מודל שרת–לקוח - תרשים זרימה

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

אז בואו נחלק את התרשים הזה לשלבים:

  1. פעולת המשתמש:

    המשתמש בוחר לבצע פעולה בצד הלקוח (client), כמו לחיצה על כפתור מה שמתחיל את התהליך של בקשה לשרת באמצעות בקשת HTTP.

  2. בקשת HTTP ו-API:

    צד הלקוח שולח בקשת HTTP לשרת. הבקשה מתמקדת בנקודת קצה שנקראת endpoint, שהיא חלק מקבוצה גדולה יותר של endpoints המרכיבים משהו שנקרא API. כל endpoint מגדיר פעולה ספציפית שהמשתמש רוצה לבצע. למשל, אם המשתמש מעוניין לראות את כל המוצרים הזמינים בחנות, הוא ישלח בקשה לנקודת הקצה products/, שתחזיר לו את רשימת המוצרים.

  3. ניתוב (Route) ו-API:

    כאשר השרת מקבל את הבקשה, הוא משתמש בנתיבים (routes) כדי להעביר את הבקשה ל-endpoint המתאימה שמוגדרת ב-API. כל נתיב מקשר לפעולה ספציפית שהמשתמש רוצה לבצע. לדוגמה, אם המשתמש רוצה לעדכן פרטים של מוצר מסוים, הוא ישלח בקשה לנקודת הקצה /products/:id, כאשר :id הוא מזהה ייחודי של המוצר. הנתיב הזה מכוון את הבקשה לקוד המתאים שבודק את המזהה, מוצא את המוצר במסד הנתונים ומעדכן את הפרטים שלו.

  4. חישוב והחזרת תגובה:

    הקוד בשרת מעבד את הבקשה, עושה את החישובים הדרושים כמו שאילתות למסד הנתונים, ולבסוף מחזיר תגובה (response) לצד הלקוח.

  5. הצגת התוצאה:

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

diagram of client-server-model