بررسی مفهوم client-side و server-side و تفاوت آن ها
بررسی مفهوم client-side و server-side و تفاوت آن ها آموزش

client-side و  server-side چیست ؟

client-side و server-side دو اصطلاح رایج در زمینه توسعه وب هستند که محل اجرای کد برنامه را توصیف می کنند . توسعه دهندگان وب همچنین به این تمایز به عنوان front-end در مقابل back-end اشاره می کنند . اگرچه client-side و server-side با frontend و backend تفاوت هایی دارند .

در یک معماری بدون سرور ، فروشنده بدون سرور ، منابعی را به تمام فرایند های server-side اختصاص می دهد و میزبانی می کند و در نهایت با افزایش استفاده از برنامه ها ، فرآیند ها افزایش می یابند .

پس از خواندن این مقاله شما می توانید :

  1. مدل client-server را درک کنید .
  2. انواع پردازش های انجام شده در کلاینت ها و سرور ها را بیاموزید .
  3. نحوه ارتباط کلاینت ها و سرور ها با برنامه های front-end و back-end را تحلیل کنید .
  4. بفهمید که چگونه استفاده از معماری بدون سرور بر فرآیند های server-side تأثیر می گذارد .

مدل client-server چیست ؟

بیشتر اینترنت بر اساس مدل client-server است . در این مدل ، دستگاه های کاربر به جای برقراری ارتباط با یکدیگر ، از طریق شبکه با سرور های مستقر در مرکز ارتباط برقرار می کنند .

دستگاه های کاربر نهایی مانند لپ تاپ ، تلفن های هوشمند و رایانه های رومیزی به عنوان  ” client ” سرور ها محسوب می شوند ، گویی مشتریانی هستند که از یک شرکت خدمات دریافت می کنند .

دستگاه های کلاینت درخواست ها را برای صفحات وب یا برنامه ها به سرور ها ارسال می کنند و سرور ها هم به آن ها پاسخ می دهند .

از مدل client-server به این دلیل استفاده می شود که چون سرور ها معمولاً از دستگاه های کاربر قدرتمند تر و قابل اطمینان ترند . آن ها همچنین به طور مداوم در محیط های کنترل شده نگهداری و محافظت می شوند تا مطمئن شوند همیشه روشن و در دسترس هستند .

اگرچه سرور های منفرد ممکن است خراب شوند ، اما معمولاً سرور های دیگری نیز از آن ها بکاپ تهیه می کنند . در همین حال ، کاربران می توانند دستگاه های خود را روشن یا خاموش کنند . یا اگر حتی دستگاه های خود را گم یا خراب کنند ، این نباید بر سرویس اینترنت برای سایر کاربران تأثیر بگذارد .

سرور ها می توانند همزمان به چندین دستگاه سرویس گیرنده سرویس دهند و هر دستگاه سرویس گیرنده در طی دسترسی و مرور اینترنت درخواست های خود را به چندین سرور ارسال می کند .

چندین کلاینت و سرور با یکدیگر ارتباط برقرار می کنند :

client-side و server-side

 

هر کلاینت با چندین سرور و بالعکس ارتباط برقرار خواهد کرد .

فرض کنید یک کاربر در حال گشت و گذار در اینترنت است و ” netflix.com ” را در نوار مرورگر خود تایپ می کند . این امر منجر به درخواست از سرور های DNS برای آدرس IP netflix.com می شود و سرور  های DNS با ارائه آدرس IP به مرورگر به این درخواست پاسخ می دهند .

در مرحله بعدی ، مرورگرِ کاربر از محتوای نمایش داده شده در صفحه مثل تصاویر کوچک، فیلم ، آرم Netflix و نوار جستجو ، از سرور های Netflix درخواست می کند ( با استفاده از آدرس IP ) . سرور های Netflix این مورد را به مرورگر تحویل می دهند و مرورگر صفحه را در دستگاه مشتری بارگیری می کند .

client-side یعنی چه ؟

در توسعه وب ، ” client-side ” به هر آنچه در برنامه وب نمایش داده می شود یا روی کلاینت ( دستگاه کاربر نهایی ) نشان داده می شود ، اشاره دارد . این شامل همه مواردی است که کاربر با چشم می بیند ، مانند متن ، تصاویر و بقیه UI ، همراه با هر عملی که یک برنامه در مرورگر کاربر انجام می دهد .

زبان های علامت گذاری مثل HTML و CSS توسط مرورگر در client-side تفسیر می شوند . علاوه بر این ، بسیاری از توسعه دهندگان معاصر شامل فرایند های client-side در معماری برنامه خود هستند و از انجام هر کاری در server-side دوری می کنند .

منطق تجاری برای صفحات وب پویا ، به عنوان مثال ، معمولاً client-side را در یک برنامه وب مدرن اجرا می کند . فرایند های client-side تقریباً همیشه با JavaScript نوشته می شوند .

در مثال netflix.com که در بالا گفتیم ، HTML ، CSS و JavaScript که نحوه نمایش صفحه اصلی Netflix برای کاربر را توصیف می کنند توسط مرورگر در client-side تفسیر می شوند .

این صفحه همچنین می تواند به “رویدادها ” پاسخ دهد : به عنوان مثال ، اگر ماوس کاربر بر روی یکی از تصاویر کوچک فیلم قرار گیرد ، تصویر بزرگ می شود و تصاویر کوچک مجاور کمی به طرف دیگر منتقل می شوند تا فضای بیشتری برای تصویر بزرگتر ایجاد شود .

این نمونه ای از فرآیند client-side است . کد موجود در صفحه وب خود به ماوس کاربر پاسخ می دهد و این عمل را بدون برقراری ارتباط با سرور آغاز می کند .

client-side هم به عنوان front-end شناخته می شود . اگرچه این دو اصطلاح دقیقاً به یک معنی نیستند . client-side فقط به محلی که فرایند ها اجرا می شوند اشاره دارد . در حالی که front-end به انواع پردازش هایی که در client-side انجام می شوند اشاره می کند .

 یک صفحه وب پویا به صفحه وبی گفته می شود که محتوای یکسانی را برای همه کاربران نمایش نمی دهد و براساس ورودی کاربر تغییر می کند . مثلا صفحه اصلی فیس بوک یک صفحه پویا یا داینامیک است . صفحه ورود به فیس بوک در اکثر موارد ایستا یا استاتیک است .

server-side یعنی چی ؟

دقیقاً مانند client-side ، منظور از ” server-side ” هر آن چیزیست که به جای اینکه در کلاینت رخ دهد ، در سرور اتفاق می افتد . در گذشته ، تقریباً تمام منطق تجارت در server-side اجرا می شد و این شامل ارائه صفحات وب پویا ، تعامل با پایگاه های داده ، احراز هویت و اعلان های هشدار بود .

مشکلی که در میزبانی همه این فرایند ها در server-side وجود دارد ، این است که هر درخواست مربوط به یکی از آن ها باید هر بار از کلاینت به سرور طی شود .

این کار باعث بروز تاخیر زیادی می شود . به همین دلیل ، برنامه های امروزی  کد بیشتری را در client-side اجرا می کنند . یک مورد استفاده ، ارائه صفحات وب پویا در real time با اجرای اسکریپت هایی در مرورگر است که تغییراتی در محتوای کاربر ایجاد می کند .

در واقع backend هم مانند ” front-end ” و ” client-side ” ،  اصطلاحی برای فرآیند هایی است که در سرور اتفاق می افتند . اگرچه back-end فقط به انواع پردازش ها اشاره دارد و server-side به مکانی که فرایند ها اجرا می شوند اشاره می کند .

اسکریپت نویسی client-side چیست ؟ 

اسکریپت نویسی client-side به سادگی به معنای اجرای اسکریپت هایی مانند JavaScript در دستگاه کلاینت است که معمولاً درون مرورگر اتفاق می افتد .

اگر اسکریپت ها در JavaScript نوشته شده باشند ، می توانند در client-side اجرا شوند . زیرا JavaScript به طور جهانی پشتیبانی می شود . سایر زبان های اسکریپت نویسی فقط در صورتی قابل استفاده هستند که مرورگر کاربر از آن ها پشتیبانی کند .

اسکریپت نویسی server-side چیست ؟

اسکریپت های server-side به جای سرویس گیرنده ، اغلب به منظور ارائه محتوای پویا به صفحات وب در پاسخ به اقدامات کاربر ، روی سرور اجرا می شوند . اسکریپت های server-side نیازی به نوشتن JavaScript ندارند ، زیرا ممکن است سرور از زبان های مختلف پشتیبانی کند .

اسکریپت ها در client-side و server-side  اجرا می شوند :

client-side و server-side

برنامه نویسی client-side و برنامه نویسی server-side 
( داده ها بین کلاینت و سرور به front و back منتقل می شوند و اسکریپت ها می توانند از هر دو طرف اجرا شوند ) .

 

فرآیند های server-side در معماری بدون سرور چگونه کار می کنند ؟

در محاسبات بدون سرور ، همه فرایند های server-side یا Back-end به جای دستگاه های سرویس گیرنده ، همچنان روی سرور ها اجرا می شوند . اما در هیچ سرور یا مجموعه خاصی از سرور ها نصب نمی شوند .

فرآیند های Back-end به عملکرد هایی تقسیم می شوند که براساس تقاضا اجرا می شوند و به طور خودکار افزایش می یابند . توسعه دهندگان هنوز هم می توانند تمام عملکرد هایی را که معمولاً از server-side در یک معماری بدون سرور اجرا می شوند ، ایجاد کنند .