התחברת בהצלחה!
אתם כאלה מוכשרים - אבל אפשר לבחור רק שלוש יכולות

מה זה Backend (צד שרת)?

מה זה Backend? מה ההבדל בין Backend ל-Frontend? מה זה מפתח Backend? כל התשובות גם למי שלא חי ונושם טכנולוגיה.

מתוך המילון
לסטארטאפ לוגו
|
לכל המושגים  👈

⚡️ התשובה הקצרה

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

🧠  התשובה המלאה

Backend הוא מונח טכנולוגי שנעשה בו שימוש על מנת לתאר את החלק באתר, אפליקציה או תוכנה אשר לא נראה לעין עבור המשתמש וקורה ״מאחורי הקלעים״. לעומת ה-Front End שזה מה שהמשתמשים רואים בפועל (הצד הויזואלי של האתר, אפליקציה וכו׳).

Backend vs Front End


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

  1. Front End (צד לקוח): החלק שאנחנו רואים - המסכים, הכפתורים, טקסטים וכו׳. בין אם זה אפליקציה שהורדנו לטלפון או אתר שנכנסו אליו במחשב. זה מה שאנחנו רואים ממש אצלינו במכשיר (טלפון, אייפד, מחשב וכו׳).
  2. Backend (צד שרת): מה שאנחנו לא רואים. זה הקוד, הנתונים והמידע שנמצאים מאחורי הקלעים ודואגים שכל כפתור שלחצנו עליו באפליקציה באמת יעשה משהו בחיים האלה. אותו קוד יושב באיזה מחשב מרוחק (שרת) שדואג לבצע מה שביקשנו ולהחזיר לנו את התוצאה הרצויה. 

לדוגמה, כשאתם משתמשים ב-Waze, אתם רואים את המפה, הכפתורים וכו׳, אבל ברגע שהכנסת יעד לנסיעה, מאחורי הקלעים יש קוד שקורה במחשב מרוחק שמוצא עבורכם את הדרך המהירה ביותר ע״י הצלבה של מיליוני מכשירים אחרים שגם משתמשים בוויז  - במילים אחרות, זה קורה ב-Backend.

מה זה Backend? דוגמה להמחשה



למה בכלל יש חלוקה ל- Backend ו-Frontend?

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

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

  1. כל המידע על כל(ללל) המסעדות בעולם עשוי להיות ערימה ענקית של מידע שתגרום לאפליקציה לשקול הרבה (מאוד) וכנראה שלא יהיה לכם מקום בטלפון בכלל להכיל אפליקציה כזו. חבל, אתם בסה״כ מחפשים מסעדות בתל אביב. עדיף שיהיה מחשב אחר (השרת שזה בעצם ה-Backend) שהוא סופר חזק וגדול שישמור את כל המידע  בעולם ויחזיר לי רק את התוצאות שאני מבקש ורלוונטיות לי. זה גם יהיה מהיר יותר.
  2. מה יקרה אם אחרי שבוע מסעדות חדשות מתווספות? או מסעדה מעדכנת את שעות הפתיחה שלה? או ביקורת חדש התווספה למסעדה? זה אומר שכל מי שהוריד את האפליקציה יצטרך עכשיו לעדכן אותה על מנת לקבל את המידע החדש. כמובן שזה לא פרקטי, ועדיף שרת מרוחק (Backend..) שיחזיק עותק אחד מעודכן של המידע ורק אותו מעדכנים והוא דואג לעדכן את כל שאר האפליקציות שפונות אליו לקבלת מידע עדכני. 

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

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


מה זה מפתח Backend?

מפתח Backend זה מפתח שעיקר ההתמקדות שלו היא בעצם באותן פעולות שקורות מאחורי הקלעים ולא בדברים בויזואלים שהמשתמש רואה. לדוגמה, מפתח Backend בחרת Waze יהיה אחראי לפתח ולתחזק את כל המערכות שמחשבות את המסלול המהיר ביותר ולעומת זאת, מפתח Front End יהיה זה שאחראי לפתח את הנראות עצמה של האפליקציה (מפות, כפתורים וכו׳).

באיזה טכנולוגיות משתמש מפתח Backend?

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


טכנולוגיות Backend