جدول محتوا
در گذشته دو واژه سرور و کلاینت اصطلاحاً به تجهیزات سختافزاری کامپیوتر مربوط بودند. کامپیوتری که به عنوان مرکز نقل و انتقال اطلاعات در یک شبکه شناخته میشد، با نام Server شناخته میشد و کامپیوتری که از این خدمات استفاده میکرد، به عنوان Client شناخته میشد. تشخیص تفاوت سرور و کلاینت نیازمند توضیح دقیق هر یک از این واژههاست؛ در ادامه این مقاله به بررسی دقیق هریک میپردازیم.
تفاوت سرور و کلاینت
اگر با مفاهیم شبکه آشنایی دارید، احتمالاً واژه “کلاینت” را شنیدهاید. در دنیای کامپیوتر، هر چیزی که درخواستی را به سمت سرور ارسال کند، به عنوان کلاینت شناخته میشود. اما در اینجا ما به شما توضیح میدهیم که کلاینت چیست؟ و سرور به چه معناست و این دو چه تفاوتی با یکدیگر دارند.
سرور (Server) چیست؟
سرور کامپیوتر همواره روشن است و در همه زمانها در دسترس قرار دارد، به کامپیوترها و تجهیزات دیجیتالی که به شبکه متصل هستند، سرویس میدهد، و به همین دلیل به آن سرور یا سرویسدهنده گفته میشود؛ بنابراین راهاندازی سرورها به منظور ارائه خدمات به تجهیزات متصل در شبکه انجام میشود تا بتوانند به درخواستهای کلاینتها پاسخ دهند. بهعنوانمثال زمانی که به یک وبسایت متصل میشوید و از خدمات آن استفاده میکنید، سرور آن سایت در حال ارائه خدمات به شما است. سرورها خدمات متنوعی را برای کلاینتها فراهم میکنند، از جمله فایل سرور، وب سرور، سرور بازی، سرور پرینتر، و غیره.
کلاینت (Client) چیست؟
در برابر سرور، تجهیزات و کامپیوترهایی که از سرور، خدمات دریافت میکنند، به عنوان کلاینت (Client) شناخته میشوند. در معنای لغوی، کلاینت به عنوان سرویسگیرنده تعبیر میشود. همه تجهیزات، کامپیوترها و نرمافزارهای متصل به سرویسدهنده که سرور به آنها خدمت ارائه میدهد، به عنوان سرویسگیرنده محسوب میشوند. به عنوان مثال، کامپیوترهای متصل به چاپگر در شبکه، ازآنجاکه از خدمات چاپ چاپگر شبکه بهره میبرند، به عنوان سرویسگیرنده شبکه در نظر گرفته میشوند. مثالهای ملموس از سرویسگیرنده شامل تجهیزات ویدئوکنفرانس، نرمافزارهای پست الکترونیکی تحت شبکه، و پیامرسانهای مود استفاده میشوند.
انواع تفاوت سرور و کلاینت
سرور و کلاینت در ارتباط با برنامهنویسی میتوانند به دو دسته زبان سمت سرور(Server-side) و زبان سمت کاربر (Client-side) تقسیم شوند که دارای تفاوتهایی هستند. در ادامه به توضیح این تفاوتها میپردازیم.
تفاوت server و Client از نظر برنامه نویسی
هنگامی که میخواهیم یک صفحه وب را مشاهده کنیم، ابتدا درخواست ما به سرور میزبان آن سایت ارسال میشود. در این مرحله، عملیات و برنامههای مورد نیاز برای تهیه محتوای مناسب انجام میشود، مانند برقراری ارتباط با پایگاه داده در سرور که توسط زبانهای سمت سرور انجام میشود. PHP، ASP، JSP از جمله این زبانها هستند. پس از انجام این عملیات در سمت سرور سایت، خروجی برنامه به صورت کدهای سمت کاربر، به کاربر فرستاده میشود. این کدها مانند HTML، CSS، JavaScript هستند و برنامههای سمت کاربر را تشکیل میدهند. در این نقطه، پردازش این اطلاعات به عهدهی سرور نیست و مرورگر کاربر (مانند Mozilla Firefox) مسئول پردازش این کدها و نمایش نتیجه به صورت یک صفحه وب برای کاربر است.
تفاوت server و Client از نظر شبکه
تفاوت بین این دو نوع شبکه بسیار واضح و مهم است، اگرچه تفاوتهای آنها را از نظر فیزیکی نمیتوان مشاهده کرد، اما از نظر منطقی میتوان آنها را بهدرستی از یکدیگر تشخیص داد.
شبکه همتا به همتا Peer to Peer Network))
در این نوع شبکه، هیچگونه مرکزیت میان کامپیوترهای شبکه وجود ندارد. هر کامپیوتر میتواند به عنوان یک کلاینت یا یک سرور عمل کند. هنگامی که یک کاربر به منابع کامپیوتر دیگر دسترسی میخواهد، سیستم امنیتی کامپیوتر مقصد (کامپیوتری که منابع درخواست شده را دارد) بررسی میکند که آیا کاربر اجازه دسترسی به منابع را دارد یا خیر. هر کاربر موظف است نسخه پشتیبان محلی از اطلاعات خود را داشته باشد، و ملاحظات امنیتی بسیار محدود است. این نوع شبکه شامل تعداد کمی از کامپیوترها میباشد.
شبکه مشتری/سرور (Client/Server Network)
برخلاف شبکه همتا به همتا، در این نوع شبکه از یک سیستم عامل متخصص برای مدیریت اطلاعات شبکه در یک نقطه مرکزی یا نقطه مرکزی استفاده میشود که به عنوان سرور شناخته میشود. مشتریها (کلاینتها) از سرور درخواست اطلاعات میکنند و سرور با ارائه اطلاعات یا دسترسی به منابع به آنها پاسخ میدهد. این نوع شبکه نسبت به شبکه همتا به همتا مزایای بسیاری دارد و به طور کلی سازماندهی شدهتر است. پیدا کردن فایلها و منابع آسانتر است، زیرا آنها بر روی سرور ذخیره میشوند و از امنیت بسیار بالایی برخوردارند. همه نام کاربریها و رمزهای عبور در یک پایگاه داده مشترک ذخیره میشوند که همان سرور است، و کاربران نمیتوانند از سرور به عنوان یک کامپیوتر مشغول استفاده کنند. بنابراین شبکه مشتری/سرور بهترین کارایی را دارد.
نحوه برقراری ارتباط کلاینت و سرور
کلاینتها و سرورها در چارچوبی از قوانین و مقرراتی که به آن پروتکلهای شبکه گفته میشود، با یکدیگر تعامل میکنند. یکی از پروتکلهای رایج، TCP/IP نام دارد که زبان و الگوهای مورد استفاده کلاینت و سرور را تعریف میکند. به این صورت که TCP ارتباط بین کلاینت و سرور را از ابتدای درخواست تا پایان ارائه خدمات میان آنها حفظ میکند. همچنین، نحوه توزیع دادهها، ارسال و دریافت بستههای دادهای و مدیریت بستههای حذف شده نیز توسط پروتکل TCP تعیین میشود.
هنگامی که یک سرور در یک زمان مشخص تعداد زیادی درخواست از سمت کلاینتها دریافت میکند، این درخواستها باید در یک سیستم زمانبندی و بر اساس اولویت سازماندهی شوند. این کار با استفاده از انواع مختلفی از نرمافزارهای کنترل دسترسی که به آنها ابزارهای کنترل دسترسی مشتری میگویند، انجام میشود. در برخی مدلهای سرور، یک کاربر یا نیروی انسانی باید نظم و اولویت دریافت خدمات از سرور را برای کلاینتها تعیین کند.
انواع کلاینت شبکه کدام اند؟
در شبکه، چهار نوع کلاینت معمول وجود دارند که به ترتیب شامل موارد زیر میشوند:
Thick Client
کلاینتهای ضخیم (Thick Client) کلاینتهایی هستند که دارای قابلیتها و منابع محلی قابل توجهی هستند و به طور مستقل از سرور، قادر به اجرای بسیاری از عملیات هستند. این نوع کلاینتها به طور معمول دارای پردازنده، حافظه، و سیستم عامل محلی هستند و برای اجرای برنامهها به صورت مستقل از سرور استفاده میشوند.
Thin Client
کلاینتهای نازک (Thin Client) کلاینتهایی هستند که به منابع محلی کمی نیاز دارند و از سرور برای اجرای برنامهها و ارائه خدمات به کاربران استفاده میکنند. این نوع کلاینتها به طور معمول فقط دارای یک رابط کاربری ساده هستند و برای اجرای برنامهها و دسترسی به منابع، به سرور وابستهاند.
Hybrid Client
کلاینتهای هیبرید ( (Hybrid Clientکلاینتهایی هستند که ترکیبی از ویژگیهای کلاینتهای ضخیم و نازک را دارا میباشند. این نوع کلاینتها به طور همزمان از منابع محلی و منابع سرور استفاده میکنند و میتوانند برخی از عملیات را به صورت مستقل از سرور انجام دهند.
Zero Client
کلاینتهای صفر ( (Zero Client کلاینتهایی هستند که بسیار کم منابع هستند و به طور کامل از سرور برای اجرای برنامهها و ارائه خدمات به کاربران استفاده میکنند. این نوع کلاینتها تنها دارای یک رابط کاربری بسیار ساده هستند و تمامی عملیات را به صورت مرکزی از سرور دریافت میکنند.
جمع بندی
با بررسی تفاوت سرور و کلاینت فهمیدیم واژه “کلاینت سرور” دارای معانی گستردهتری است نسبت به تنها جداسازی یک کامپیوتر به عنوان سرویسگیرنده و دیگری به عنوان سرویسدهنده. این واژه به سرعت در دنیای نرمافزار نیز معروف شده و در این زمینه جایگاه ویژهای پیدا کرده است. به علاوه، میتوان گفت یک روتین (سرویس) میتواند خدمات خاصی را به سایر سرویسها ارائه دهد. در این وضعیت، سرویس ارائهدهنده خدمات را “سرور” و سرویس استفادهکننده از یک خدمات را “کلاینت” مینامند.