اصطلاح "مشتری" به یک برنامه یا سیستم رایانه ای اشاره دارد که از برنامه یا سیستم رایانه ای دیگری که به عنوان سرور شناخته می شود، در یک ساختار شبکه درخواست خدمات می کند. کلاینت ها به عنوان یک واسطه برای کاربران عمل می کنند و به آنها کمک می کنند تا به منابع و خدمات سرور مانند صفحات وب، پایگاه های داده و فایل ها و از جمله موارد دیگر دسترسی پیدا کنند.
خاستگاه ها و استفاده اولیه از مشتری
مفهوم مشتری در سیستم های شبکه ای ریشه های خود را به توسعه اولیه محاسبات شبکه در دهه های 1960 و 1970 بازمی گرداند. اولین سیستمهایی که شبیه مدلهای مشتری-سرور امروزی بودند، سیستمهای اشتراک زمانی بودند که به چندین کاربر اجازه میدادند به طور همزمان به یک رایانه اصلی دسترسی داشته باشند.
اصطلاح "مشتری" برای اولین بار در این زمینه در مقاله ای توسط مهندسان Xerox PARC در سال 1981 استفاده شد که در مورد فناوری اترنت در حال ظهور و یک سیستم شبکه ای که عملکردها را به کلاینت ها و سرورها جدا می کند، بحث می کرد. این آغاز مدل مشتری-سرور است که برای ساختار اینترنت امروزی اساسی است.
ماهیت مشتریان: نگاهی عمیق
کلاینت ها بخش مهمی از مدل کلاینت-سرور هستند، یک ساختار کاربردی توزیع شده که وظایف را بین سرورهایی که منابع یا خدمات را ارائه می دهند و کلاینت هایی که آنها را درخواست می کنند تقسیم می کند. رابطه کلاینت و سرور زمانی برقرار می شود که مشتری درخواستی را به سرور ارسال می کند و سرور با سرویس مورد نظر پاسخ می دهد.
مشتری می تواند یک رایانه شخصی، دستگاه تلفن همراه یا برنامه نرم افزاری باشد. به طور کلی با یک رابط کاربری و فرآیندهایی که بر روی یک رایانه شخصی یا ایستگاه کاری اجرا می شوند مرتبط است. نرمافزار کلاینت را میتوان در دستگاههایی که برای عملکردهای خاصی نیاز به اتصال به سرورها دارند، مانند تلویزیونهای هوشمند و دستگاههای اینترنت اشیا، تعبیهشده پیدا کرد.
مکانیسم کار یک مشتری
یک کلاینت ارتباط را در مدل مشتری-سرور شروع می کند. این درخواست را از طریق شبکه با استفاده از یک پروتکل خاص، اغلب از طریق HTTP برای خدمات وب، به سرور ارسال می کند. سرور این درخواست را دریافت می کند، آن را پردازش می کند و پاسخ مناسب را به مشتری برمی گرداند.
سپس مشتری پاسخ سرور را تفسیر کرده و نتیجه را به کاربر نهایی تحویل می دهد. به عنوان مثال، در مورد یک مرورگر وب (یک کلاینت)، HTML دریافتی از یک وب سرور را رندر و نمایش می دهد. ارتباط بین مشتری و سرور ممکن است همزمان یا ناهمزمان باشد و می تواند شامل یک یا چند بار رفت و برگشت (RTT) باشد.
ویژگی های کلیدی مشتریان
-
رابط کاربری: کلاینت ها معمولاً رابطی را ارائه می دهند که کاربران با آن تعامل دارند. این رابط می تواند یک مرورگر وب، یک برنامه تلفن همراه یا یک برنامه دسکتاپ باشد.
-
آغازگر درخواست: کلاینت ها درخواست را در مدل کلاینت-سرور آغاز می کنند. سرور تا زمانی که درخواستی از مشتری دریافت نکند نمی تواند پاسخی ارسال کند.
-
پردازشگر پاسخ های سرور: هنگامی که سرور پاسخ می دهد، مشتری پاسخ را پردازش می کند. به عنوان مثال، یک مرورگر وب HTML، CSS و جاوا اسکریپت دریافت شده از یک وب سرور را رندر می کند.
-
وابسته به سرورها: مشتریان برای منابع یا خدمات به سرورها وابسته هستند. آنها بدون اتصال به سرور به طور کامل کار نمی کنند.
انواع مشتریان
اساساً سه نوع مشتری در یک شبکه وجود دارد:
-
مشتریان چاق یا چاق: این کلاینتها بیشتر پردازش برنامهها را انجام میدهند و سرور ذخیرهسازی دادهها را فراهم میکند. یک مثال از یک کلاینت چاق، رایانهای است که یک بازی ویدیویی اجرا میکند که از یک سرور برای دادههای چندنفره استفاده میکند.
-
مشتریان نازک: این کلاینت ها برای پردازش به شدت به سرور وابسته هستند و معمولاً فقط ورودی و خروجی را مدیریت می کنند. یک نمونه از تین کلاینت، یک سرویس گیرنده ایمیل مبتنی بر وب مانند Gmail است.
-
مشتریان ترکیبی: این مشتری ها ترکیبی از مشتری های ضخیم و نازک هستند. آنها می توانند برخی از پردازش ها را به صورت محلی انجام دهند، اما همچنان برای کارهای دیگر به سرور متکی هستند.
نوع مشتری | پردازش محلی | اعتماد به سرور | مثال ها |
---|---|---|---|
چاق/ضخیم | بالا | کم | کامپیوتر بازی ویدیویی |
لاغر | کم | بالا | جیمیل |
ترکیبی | متوسط | متوسط | پرونده های گوگل |
موارد استفاده مشتری، چالش ها و راه حل ها
کلاینت ها برای دسترسی به خدمات شبکه های مختلف از جمله سرویس های وب، اشتراک گذاری فایل، ایمیل و پایگاه های داده استفاده می شوند. آنها در حوزه های مختلفی مانند سرگرمی، تجارت، آموزش و خدمات بهداشتی استفاده می شوند.
با این حال، مشتریان با چالش هایی روبرو هستند. آنها به اتصال شبکه و در دسترس بودن سرور وابسته هستند. اگر شبکه یا سرور قطع باشد، سرویس گیرنده نمی تواند به خدمات دسترسی پیدا کند. آنها همچنین دارای آسیب پذیری های امنیتی بالقوه هستند، زیرا سرورهای مخرب می توانند داده های مضر ارسال کنند. مشتریان باید اطمینان حاصل کنند که با سرورهای قانونی در تعامل هستند و داده های آنها برای جلوگیری از رهگیری رمزگذاری شده است.
راه حل ها شامل استفاده از زیرساخت شبکه قابل اعتماد، اطمینان از در دسترس بودن سرورها، اجرای اعتبارسنجی و بررسی های سمت مشتری، و استفاده از پروتکل های شبکه ایمن مانند HTTPS است.
مشتری در مقابل مفاهیم مشابه
مشتریان را می توان با مفاهیم مشابهی مانند همتایان در یک شبکه همتا به همتا (P2P) مقایسه کرد. در حالی که یک کلاینت برای منابع به سرور وابسته است، یک همتا در یک شبکه P2P می تواند هم منابع را تهیه و هم مصرف کند. در اینجا یک مقایسه سریع وجود دارد:
مفهوم | منابع را فراهم می کند | منابع را مصرف می کند | وابسته به سرور | مثال |
---|---|---|---|---|
مشتری | خیر | آره | آره | مرورگر اینترنت |
همتا | آره | آره | خیر | بیت تورنت |
روندها و نوآوری های آینده
با ظهور محاسبات ابری، تعریف مشتریان در حال گسترش است. مشتریان مدرن نه تنها رایانه های شخصی یا دستگاه های تلفن همراه هستند، بلکه شامل برنامه های کاربردی وب نیز می شوند که بر روی پلت فرم های ابری اجرا می شوند. محاسبات لبه یکی دیگر از روند رو به رشد است که در آن برخی از پردازش ها به سمت مشتری برای کاهش تأخیر تغییر می کند.
فناوری های نوظهور مانند 5G و اینترنت اشیا (IoT) نیز بر مدل مشتری-سرور تأثیر خواهند گذاشت. دستگاه های بیشتری به عنوان کلاینت عمل می کنند و با سرعت شبکه بالاتر، تعامل بین کلاینت ها و سرورها کارآمدتر می شود.
سرورهای پروکسی و مشتریان
یک سرور پروکسی به عنوان یک واسطه بین کلاینت ها و سایر سرورها عمل می کند. می تواند عملکردهای مختلفی مانند امنیت، بهبود عملکرد و ناشناس بودن را ارائه دهد. کلاینت ها به سرورهای پروکسی متصل می شوند و سپس از طرف مشتری به سرورهای دیگر درخواست می کنند. این می تواند برای پنهان کردن آدرس IP مشتری، دسترسی به محتوای مسدود شده جغرافیایی، یا محتوای کش برای دسترسی سریع تر استفاده شود.
لینک های مربوطه
برای اطلاعات دقیق تر در مورد مشتریان در سیستم های شبکه، منابع زیر را بررسی کنید: