שרת–לקוח

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

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

מודל שרת–לקוח הפך לאחד מהרעיונות המרכזיים ברשתות מחשבים. רבים מהיישומים העסקיים הנכתבים כיום משתמשים במודל זה (ראו Enterprise software), כמו גם פרוטוקולי התקשורת העיקריים של האינטרנט, לדוגמה: Telnet, SSH, SMTP, DNS, HTTP ועוד.

את האינטראקציה בין לקוח ושרת נוהגים לתאר באמצעות תרשימי הרצף במסגרת ה-Unified Modeling Language.

דוגמאות 

שירותים כגון דואר אלקטרוני (לדוגמה: שרת Exchange), גישה לאתרי אינטרנט, וגישה לבסיסי נתונים, כולם בנויים במודל שרת–לקוח.

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

דוגמאות ספציפיות לתוכנות לקוח: דפדפנים, לקוחות דואר אלקטרוני (לדוגמה: Microsoft Outlook), לקוחות צ'אט, ועוד.

דוגמאות ספציפיות לתוכנות שרת: שרתי HTTP, שרתי FTP, שרתי יישומים, שרתי בסיסי נתונים, שרתי דואר, שרתי קבצים, שרתי הדפסה, ועוד.

רוב ה-Web services הם גם סוגים של שרתים.

סוגי לקוחות 

נהוג להפריד את הלקוחות ללקוח "דל" (Thin client), כזה שמסוגל רק לבצע את ההתחברות לשרת, והשרת הוא זה שמנהל את כל התקשורת עם המשתמש, ולקוח "עשיר" (Rich client), כזה שמבצע את כל האינטראקציה עם המשתמש בעצמו, ופונה לשרת רק על מנת לאחזר נתונים. בעבר היה שימוש נפוץ במסופים, שהיוו לקוחות "רזים", התחברו למחשב מרכזי (Mainframe) וביצעו את כל הפעולות עליו, אך עם ההתקדמות המהירה של המחשבים האישיים הם נדחקו הצידה בשנות ה-90 ופינו את מקומם ללקוחות "עשירים", המקטינים את תעבורת הרשת ואת העומס על השרת. התפתחות האינטרנט והגידול ברוחב הפס החזירו את הלקוח הדל למרכז התמונה.

ראו גם
 שרת
 צד שרת
 צד לקוח
 קצה לקצה
 מונחים בתוכנה

קישורים חיצוניים 

 

ארכיטקטורת רשת
ארכיטקטורת תוכנה
שרתים