سرور چیست؟ راهنمای ساده برای سازندگان برنامه
سرور رایانهای است — یا برنامهای که روی یک رایانه اجرا میشود — که منتظر درخواستها میماند و به آنها پاسخ میدهد. وقتی وبسایتی را باز میکنید، مرورگر شما (کلاینت) درخواستی را در اینترنت میفرستد و سروری جایی دیگر صفحه، تصاویر یا داده را برمیگرداند. هر برنامهای که استفاده میکنید، از ایمیل تا بانکداری آنلاین، به سرورهایی وابسته است که این کار را میلیونها بار در روز انجام میدهند.
چرا سرورها وقتی با هوش مصنوعی میسازید اهمیت دارند
وقتی یک سازنده هوش مصنوعی برنامهای برایتان میسازد، بخشی از کد در مرورگر بازدیدکننده اجرا میشود و بخشی معمولاً روی سرور. بخش سرور کارهایی را انجام میدهد که مرورگر نمیتواند به آن اعتماد کند یا بهتنهایی انجامشان دهد:
- ذخیره و بارگذاری داده از یک پایگاه داده.
- نگه داشتن رازها، مثل کلیدهای API پرداخت یا هوش مصنوعی، که هرگز نباید به مرورگر برسند.
- بررسی دسترسیها — اطمینان از اینکه یک کاربر فقط بتواند رکوردهای خودش را ببیند و تغییر دهد.
- صحبت با سرویسهای دیگر: شارژ کارت، ارسال ایمیل، صدا زدن یک مدل هوش مصنوعی.
دانستن کار سرور کمک میکند بفهمید قوانین برنامه واقعاً کجا زندگی میکنند، چرا برخی تغییرات به انتشار مجدد نیاز دارند، و وقتی یک برنامه را میزبانی میکنید برای چه چیزی هزینه میپردازید. برای تقسیم بین دو نیمه، فرانتاند در برابر بکاند را ببینید.
یک تشبیه روزمره
سرور مثل کارمند پیشخوان یک اداره پست است. آنها به دنبال مشتری نمیروند؛ منتظر میمانند. یک مشتری (کلاینت) با یک درخواست میآید — «این بسته را بفرست»، «آیا نامهای برای من هست؟» — و کارمند آن را انجام میدهد و نتیجه را برمیگرداند. یک کارمند میتواند یکی پس از دیگری به چند مشتری خدمت دهد، و یک اداره شلوغ گیشههای بیشتری باز میکند.
اداره پست هم قوانینی دارد که مشتری نمیتواند نادیده بگیرد: برای گرفتن بسته باید کارت شناسایی نشان دهید. در برنامه شما هم همین نقش را سرور دارد — مرورگر میتواند هر چیزی بخواهد، اما سرور تصمیم میگیرد چه چیزی میگیرد.
چطور یک درخواست به سرور میرسد
وقتی کسی https://bookings.example.com/schedule را باز میکند:
- جستوجوی DNS. مرورگر از سیستم نام دامنه میپرسد
bookings.example.comبه کدام نشانی IP اشاره میکند. چطور دامنهها و DNS کار میکنند را ببینید. - اتصال. مرورگر به آن نشانی روی پورت ۴۴۳ برای HTTPS وصل میشود و یک اتصال رمزگذاریشده برقرار میکند. HTTPS و SSL چیست را ببینید.
- درخواست. یک درخواست HTTP میفرستد:
GET /schedule. - کار. سرور کدی را که
/scheduleرا مدیریت میکند اجرا میکند — شاید رزروهای امروز را در پایگاه داده جستوجو کند. - پاسخ. یک کد وضعیت (
200 OK) و محتوا را برمیگرداند — یک صفحه HTML، یا داده JSON برای نمایش در صفحه.
همه اینها معمولاً کسری از یک ثانیه طول میکشد.
انواع سرورهایی که ممکن است بشنوید
| اصطلاح | معنی |
|---|---|
| وبسرور | نرمافزاری که به درخواستهای HTTP پاسخ میدهد — فرستادن فایلها یا ارسال درخواستها به کد برنامه شما. |
| سرور برنامه / بکاند | کد خودتان که روی سرور اجرا میشود: API که رزروها، ورود و پرداختها را مدیریت میکند. |
| سرور پایگاه داده | سروری که کارش ذخیره و پرسوجوی داده است — مثل پایگاه داده Postgres که برنامه شما با آن حرف میزند. |
| سرور فایل / ایستا | فایلهای آماده (HTML، تصاویر، اسکریپتها) را بدون اجرای کد سفارشی برای هر درخواست میفرستد. |
| سرور فیزیکی | یک دستگاه واقعی در قفسهای در مرکز داده. |
| ماشین مجازی (VM) / VPS | تکهای از یک دستگاه فیزیکی که مثل رایانهای مستقل رفتار میکند. |
| کانتینر (Container) | بسته سبکتری از یک برنامه و همه چیزهایی که لازم دارد، که روی یک دستگاه مشترک اجرا میشود. بسیاری از پلتفرمها برنامهها را به این شکل مستقر میکنند. |
| Serverless | کد را آپلود میکنید و ارائهدهنده آن را هر وقت لازم باشد اجرا میکند — روی سرورهایی که هرگز مدیریت نمیکنید. معنی serverless چیست را ببینید. |
توجه کنید که «سرور» هم به ماشین و هم به برنامه گفته میشود. «سرور از کار افتاد» میتواند هر کدام را بگوید.
یک مثال کامل: اپلیکیشن رزرو یک آرایشگاه
در یک برنامه کوچک رزرو آرایشگاه، سرور این کارها را میکند:
- یک بازدیدکننده سایت را باز میکند. سرور (یا یک CDN که جلویش است) فایلهای صفحه را میفرستد.
- صفحه از سرور میخواهد
GET /api/slots?date=2026-10-03. سرور در پایگاه داده نوبتهای خالی را جستوجو میکند و آنها را بهصورت JSON برمیگرداند. - بازدیدکننده ساعت ۱۴:۰۰ را رزرو میکند. صفحه
POST /api/bookingsمیفرستد. سرور بررسی میکند که نوبت هنوز خالی است — به حرف مرورگر اعتماد نمیکند — رزرو را ذخیره میکند و201 Createdبرمیگرداند. - سرور با یک کلید محرمانه که روی خود سرور نگه داشته شده، یک سرویس ایمیل را صدا میزند تا تأییدیه را بفرستد.
اگر سرور را خاموش کنید، صفحه شاید هنوز از یک CDN بارگذاری شود، اما نمیتواند نوبتها را نشان دهد یا رزروها را ذخیره کند.
یک سرور برای خوب کار کردن به چه چیزی نیاز دارد
- حافظه (RAM) و CPU. حافظه کم باعث میشود برنامه زیر بار خراب شود؛ CPU کم باعث کندی میشود.
- در حال اجرا بودن. سروری که خاموش است نمیتواند پاسخ دهد. برخی پلتفرمها برنامههای بیکار را به خواب میبرند و با بازدید بعدی بیدار میکنند، که هزینه را کم میکند اما میتواند اولین درخواست را کندتر کند.
- پیکربندی و رازها، که از طریق متغیرهای محیطی داده میشوند.
- لاگها — ثبت سرور از آنچه اتفاق افتاده، که اولین جایی است که وقتی چیزی خراب میشود نگاه میکنید.
- بهروزرسانیها و وصلههای امنیتی، که میزبانی مدیریتشده برای شما انجام میدهد.
باورهای غلط رایج
- «ابر یعنی سرور در کار نیست.» ابر یعنی سرورهای شرکتهای دیگر که ساعتی یا بر اساس استفاده اجاره میشوند.
- «سرور یک رایانه بزرگ و خاص است.» هر رایانهای میتواند سرور باشد. لپتاپ شما وقتی
localhostرا باز میکنید در حین توسعه یکی اجرا میکند. - «اگر دکمه پنهان باشد، کاربران نمیتوانند آن کار را انجام دهند.» هرکسی میتواند درخواستها را مستقیم به سرور شما بفرستد. بررسی دسترسی باید روی سرور انجام شود، نه فقط در صفحه.
- «سرور بیشتر کندی را حل میکند.» اغلب علت واقعی یک کوئری کند پایگاه داده یا یک API بیرونی کند است. ابتدا گلوگاه را پیدا کنید.
- «برای داشتن برنامه باید سرور را مدیریت کنم.» پلتفرمهای مدیریتشده سرورها را برای شما اجرا میکنند؛ شما کد را مستقر میکنید و آنها ماشینها را مدیریت میکنند.
از سازنده هوش مصنوعیتان چه بپرسید
- «کدام بخشهای این برنامه روی سرور اجرا میشوند و کدام در مرورگر؟»
- «همه کلیدهای API را روی سرور نگه دار و از متغیرهای محیطی بخوان.»
- «برای هر درخواستی که داده میخواند یا تغییر میدهد، دسترسی را روی سرور بررسی کن.»
- «لاگهای سرور کجا هستند و درباره این خطا چه میگویند؟»
- «آیا این برنامه اصلاً به سرور نیاز دارد، یا میتواند یک سایت ایستا باشد؟»
- «اولین درخواست بعد از بیکار بودن برنامه چه میشود؟»
سرورها در Mythex
در Mythex خودتان سرورها را راهاندازی یا مدیریت نمیکنید. در حین ساخت، برنامهتان برای پیشنمایش زنده در یک محیط ابری خصوصی اجرا میشود. وقتی منتشر میکنید، Mythex آن را مستقر میکند: رابطهای ایستای جلویی بهعنوان سایت ایستا، و بکاندها (Node، Python، C# و دیگران) بهعنوان کانتینرهایی که از یک Dockerfile ساخته میشوند — بدون اینکه خودتان میزبانی را پیکربندی کنید. Mythex هنگام استقرار اندازه ماشین را انتخاب میکند: بهطور پیشفرض ۱ CPU و ۵۱۲ مگابایت حافظه، و امکان بیشتر با درخواست (تا ۱ گیگابایت در طرح Free، و تا ۲ CPU، ۴ گیگابایت و ۳ ماشین در طرح Pro). برنامههای منتشرشده وقتی بیکار باشند به خواب میروند و با بازدید بعدی بیدار میشوند، و برنامه خوابیده هزینه محاسباتی ندارد. جزئیات در مستندات API backendها و محدودیتهای میزبانی آمده است، و راهنمای ما درباره میزبانی وب تصویر گستردهتر را پوشش میدهد.
پرسشها
سرور به زبان ساده چیست؟
سرور رایانهای است، یا برنامهای که روی یک رایانه اجرا میشود، که منتظر درخواستهای دستگاههای دیگر میماند و به آنها پاسخ میدهد. وقتی وبسایتی را باز میکنید، مرورگرتان از یک سرور صفحه را میخواهد و سرور آن را برمیگرداند.
سرور یک دستگاه فیزیکی است یا نرمافزار؟
هر دو معنا به کار میرود. «سرور» میتواند به رایانه فیزیکی یا مجازی اشاره کند، یا به برنامهای که روی آن درخواستها را مدیریت میکند، مثل یک وبسرور. اکثر برنامههای امروزی روی ماشینهای مجازی یا کانتینرهای مرکز داده یک ارائهدهنده ابری اجرا میشوند، نه روی سختافزاری که خودتان دارید.
آیا هر وبسایتی به سرور نیاز دارد؟
بله، همیشه چیزی باید فایلها را برای بازدیدکننده بفرستد. یک وبسایت ایستا فقط به یک سرور فایل ساده یا CDN نیاز دارد. برنامهای که داده ذخیره میکند، ورود کاربر را مدیریت میکند یا کلیدهای API محرمانه را نگه میدارد، به یک سرور بکاند هم نیاز دارد که کد خودتان را اجرا کند.
localhost یعنی چه؟
localhost یعنی «همین رایانه». توسعهدهندهای که برنامهاش را روی دستگاه خودش اجرا میکند، آن را در نشانیای مثل http://localhost:3000 باز میکند. فقط همان رایانه میتواند به آن برسد؛ تا وقتی روی یک سرور عمومی مستقر نشود، هیچ کس دیگری آن را نمیبیند.