وب‌سرور (Web Server) چیست؟ و چه کاربردی در سایت دارد؟

پربازیدترین مقالات

محصولات

وب‌سرور

وب‌سرور (Web Server) نرم‌افزار و سخت‌افزاری است که از پروتکل HTTP (Hypertext Transfer Protocol) و پروتکل‌های دیگر برای پاسخ به درخواست‌های مشتری از طریق شبکه جهانی وب استفاده می‌کند. وظیفه‌ی اصلی وب‌سرور نمایش محتوای وب‌سایت از طریق ذخیره‌سازی، پردازش و ارائه صفحات وب به کاربران است. وب‌سرورها علاوه بر HTTP، از پروتکل SMTP (Simple Mail Transfer Protocol) و FTP (File Transfer Protocol)  که برای ایمیل، انتقال فایل و ذخیره‌سازی استفاده می‌شود نیز پشتیبانی می‌کنند.

آنچه در این مقاله می‌خوانید:

وب‌سرورها چگونه کار می‌کنند؟

نمونه‌هایی از استفاده از وب‌سرور

وب‌سرورهای پویا و استاتیک

وب‌سرورهای رایج و برتر موجود در بازار

شیوه‌های امنیتی وب‌سرور

سخت‌افزار یک وب‌سرور به اینترنت متصل است و امکان تبادل داده با سایر دستگاه‌های متصل را فراهم می‌نماید. در حالی که نرم‌افزار وب‌سرور نحوه دسترسی کاربر به فایل‌های میزبانی شده را کنترل می‌کند. فرآیند وب‌سرور نمونه‌ای از مدل مشتری/ سرور است. تمامی رایانه‌هایی که میزبان وب‌سایت‌ها هستند باید دارای نرم‌افزار وب‌سرور باشند. وب‌سرورها در میزبانی وب یا میزبانی داده‌ها برای وب‌سایت‌های و برنامه‌های مبتنی بر وب (اپلیکیشن‌ها) استفاده می‌شوند.

وب‌سرورها چگونه کار می‌کنند؟

نرم‌افزار وب‌سرور از طریق نام دامنه وب‌سایت‌ها قابل دسترسی است و اطمینان می‌دهد که محتوای درخواستی از وب‌سایت به کاربر تحویل داده می‌شود. نرم‌افزار  وب‌سرور نیز از چندین مولفه تشکیل شده است که حداقل یک از آنها سرور HTTP است. سرور HTTP قادر به درک HTTP (پروتکلی که مرورگر وب برای بازدید از صفحات یک وب‌سایت استفاده می‌کند.) و URLها (آدرس صفحات وب) است. وب‌سرور به عنوان سخت‌افزار، رایانه‌ای است که نرم‌افزار وب‌سرور و سایر فایل‌های مربوط به یک وب‌سایت، مانند اسناد HTML،تصاویر و فایل‌های جاوااسکریپت را ذخیره می‌کند.

هنگامی که یک مرورگر وب، مانند گوگل کروم یا فایرفاکس، به فایلی نیاز دارد که روی سرور وب میزبانی شده باشد، مرورگر فایل را از طریق پروتکل HTTP درخواست می‌کند. هنگامی که درخواست توسط وب‌سرور دریافت می‌شود، سرور HTTP درخواست را می‌پذیرد، محتوا را پیدا می‌کند و آن را از طریق HTTP به مرورگر ارسال می‌کند.

به طور دقیق‌تر، هنگامی که یک مرورگر صفحه‌ای را از یک وب‌سرور درخواست می‌کند، این فرآیند یک سری مراحل را دنبال می‌کند. ابتدا، شخص یک URL را در نوار آدرس مرورگر وب مشخص می‌کند. سپس مرورگر وب آدرس IP نام دامنه را به دست می‌آورد (یا از طریق DNS (سیستم نام دامنه) آن را ترجمه می‌کند یا اگر قبلا به این آدرس مراجعه کرده آن را در حافظه پنهان جستجو می‌کند). با این کار مرورگر به یک وب‌سرور منتقل می‌شود. سپس مرورگر با درخواست HTTP فایل خاصی را از وب‌سرور درخواست می‌کند. وب‌سرور پاسخ می‌دهد و صفحه درخواستی را دوباره از طریق HTTP به مرورگر می فرستد. اگر صفحه درخواستی وجود نداشته باشد یا مشکلی پیش بیاید، وب‌سرور با یک پیام خطا به مرورگر پاسخ خواهد داد. سپس مرورگر قادر به نمایش صفحه وب خواهد بود. دامنه‌های متعددی نیز می‌توانند بر روی یک وب‌سرور میزبانی شوند.

نمونه‌هایی از استفاده از وب‌سرور

وب‌سرورها اغلب به عنوان بخشی از یک مجموعه از برنامه‌های مرتبط با اینترنت هستند که برای موارد زیر استفاده می‌شوند:

  • ارسال و دریافت ایمیل
  • دانلود درخواست برای پروتکل انتقال فایل (FTP)
  • ساخت و انتشار صفحات وب

بسیاری از وب‌سرورهای پایه از برنامه‌نویسی سمت سرور پشتیبانی می‌کنند. این زبان‌های برنامه‌نویسی  بر روی وب‌سرور برای سفارشی‌سازی پاسخ به کار می‌روند. برنامه‌نویسی سمت سرور بر روی ماشین سرور اجرا می‌شود و معمولا دارای مجموعه‌ای از ویژگی‌هاست که شامل دسترسی به پایگاه داده نیز می‌شود. فرآیند اسکریپت‌نویسی سمت سرور از زبان‌های برنامه‌نویسی ASP (Active Server Pages)، PHP (Hypertext Preprocessor) و زبان‌های برنامه‌نویسی دیگر استفاده می‌کند. این فرآیند همچنین به اسناد HTML اجازه می‌دهد تا به صورت پویا ایجاد شوند.

وب‌سرورهای پویا و استاتیک

یک وب‌سرور می‌تواند برای ارائه محتوای ثابت یا پویا استفاده شود. محتوای استاتیک یک محتوای ثابت است که همیشه به یک شکل نمایش داده می‌شود. در حالی که محتوای پویا را می‌توان تغییر داده و به روزرسانی کرد. یک وب‌سرور استاتیک از یک کامپیوتر و یک نرم‌افزار HTTP تشکیل شده است. یک محتوا زمانی استاتیک در نظر گرفته می‌شود که سرور فایل‌های میزبانی شده را همانطور که هست به مرورگر ارسال می‌کند.

مرورگرهای وب پویا از یک وب‌سرور و نرم‌ افزارهای دیگری مانند اپلیکیشن سرور و پایگاه داده تشکیل شده‌اند. یک محتوا به این دلیل پویا در نظر گرفته می‌شود که اپلیکیشن سرور می‌تواند برای به‌روزرسانی هر فایل میزبانی شده قبل از ارسال به مرورگر استفاده شود. وب‌سرور می‌تواند محتوا را زمانی که از یک پایگاه داده درخواست می‌شود، ایجاد کند. اگرچه این فرآیند انعطاف‌پذیرتر است، اما پیچیدگی‌های خاص خود را نیز دارد.

وب‌سرورهای رایج و برتر موجود در بازار

وب‌سرورهای مختلفی با کاربردها و ویژگی‌های خاص خود وجود دارند که در ادامه تعدادی از معروف‌ترین آنها را معرفی می‌کنیم:

سرور HTTP آپاچی (Apache)

آپاچی یک وب‌سرور رایگان و متن‌باز (open source) برای ویندوز، Mac OS X، Unix، Linux، Solaris و سایر سیستم عامل‌هاست که توسط بنیاد نرم‌افزار آپاچی توسعه یافته است. متن‌باز بودن یک برنامه بدین معنی است که کدهای آن به صورت رایگان در دسترس همگان قرار دارد و برنامه‌نویسان در سراسر دنیا می‌توانند به توسعه آن کمک کنند. آپاچی یکی از وب‌سرورهای مورد علاقه برنامه‌نویسان است که می‌تواند با کمترین پیکره‌بندی حجم ترافیک بالایی را مدیریت کند.

IIS(Microsoft Internet Information Services)

IIS توسط شرکت مایکروسافت و برای پلتفرم‌های مختلف توسعه یافته است. این وب‌سرور متن‌باز نیست؛ ولی با توجه به انعطاف‌پذیری در پشتیبانی از انواع فریم‌ورک‌ها به طور گسترده استفاده می‌شود.

وب‌سرور Nginx

Nginx یک وب‌سرور متن‌باز محبوب است که به دلیل معماری رویداد محور، با استفاده از میزان رم کمتر می‌تواند بسیاری از نشست‌ها (sessions) را به صورت همزمان مدیریت کند. Nginx همچنین می‌تواند به عنوان یک سرور پروکسی (proxy server) و متعادل‌کننده بار (load balancer) استفاده شود.

 لایت اسپید (Litespeed)

لایت اسپید یک وب‌سرور رایگان و متن‌باز است که با سیستم عامل FreeBSD ارائه می‌شود. این وب‌سرور با مصرف CPU کمتر می‌تواند درخواست‌های بیشتری را مدیریت کند. لایت اسپید عملکرد مناسب، امنیت و انعطاف‌پذیری بالایی دارد.

وب‌سرورهای مجبوب و پیشروی امروزی شامل آپاچی، IIS و Nginx می‌شوند. از سایر وب‌سرورها می‌توان به سرور Novell’s Netware، GWS (Google Web Server)  و خانواده IBM از سرورهای Domino اشاره کرد.

برای انتخاب یک وب‌سرور مناسب باید به مواردی مانند سازگاری آن با سیستم عامل‌های مختلف، توانایی آن برای به کار بردن برنامه‌نویسی سمت سرور، مشخصات امنیتی، انتشار، موتور جستجو و ابزراهای ساخت وب‌سایت همراه آن توجه کرد. برخی وب‌سرورها تنظیمات مختلفی نیز دارند که به طور معمول بر روی مقادیر پیش‌فرض تنظیم شده‌اند. برای ایجاد عملکرد بالا در یک وب‌سرور عواملی مانند توان عملیاتی بالا و تاخیر کم می توانند کمک‌کننده خواهند بود.

شیوه‌های امنیتی وب‌سرور

شیوه‌های امنیتی زیادی وجود دارند که افراد می‌توانند برای ایجاد امنیت بیشتر در استفاده از وب‌سرور آنها را تنظیم کنند. چند نمونه از اقدامات امنیتی می‌توانند شامل فرایندهای زیر باشند:

  • یک پروکسی معکوس، که برای مخفی کردن یک سرور داخلی طراحی شده است و به عنوان یک واسطه برای ترافیک منشا در یک سرور داخلی عمل می کند.
  • محدود کردن دسترسی‌ها از طریق فرآیندهایی مانند محدود کردن دسترسی میزبان وب به ماشین‌های زیرساخت یا استفاده از SSH (Secure Socket Shell).
  • سرورهای وب را به روز نگه دارید تا بتوانید اطمینان حاصل کنید که سرور وب در معرض آسیب‌‌پذیری قرار نداشته باشد.
  • به طور منظم بر روی شبکه نظارت داشته باشید تا از عدم وجود فعالیت غیرمجاز مطمئن باشید.
  • استفاده از فایروال و SSL به عنوان فایروال می‌تواند بر روی ترافیک HTTP نظارت کند، در حالی که داشتن یک SSL (Secure Sockets Layer) می‌تواند به امن نگه داشتن داده‌ها کمک کند.

سوالات متداول

وب‌سرور چیست؟

وب‌ سرور (Web Server) نرم‌افزار و سخت‌افزاری است که از پروتکل HTTP (Hypertext Transfer Protocol) و پروتکل‌های دیگر برای پاسخ به درخواست‌های مشتری از طریق شبکه جهانی وب استفاده می‌کند.

وب‌سرور چگونه کار می‌کند؟

وب‌سرورها ترکیبی از سخت‌افزارها و نرم‌افزارهای کامپیوتری هستند که درخواست‌های کاربران را از طریق مرورگر وب و تحت پروتکل HTTP دریافت می‌کنند و پس از پردازش این درخواست، پاسخ آنها به سمت مرورگر وب ارسال می‌شود.

وب‌سرورهای مختلف چه تفاوتی با یکدیگر دارند؟

وب‌سرورهای مختلف از نظر سیستم عامل، پشتیبانی از زبان‌های برنامه‌نویسی مختلف، موارد امنیتی و … با یکدیگر تفاوت دارند و شما باید بهترین وب‌سرور را با توجه به نیازهای خود و کاربرد مورد نظر انتخاب کنید.


منابع:

https://www.techtarget.com/whatis/definition/Web-server#:~:text=A%20web%20server%20is%20software,and%20delivering%20webpages%20to%20users.

مقالات مرتبط

API چیست؟ آشنایی با مزایا و کاربردهای API

API چیست؟ آشنایی با انواع API و کاربردهای آن‌ها

APIها مکانیسم‌هایی هستند که امکان برقراری ارتباط دو جزء نرم‌افزار را با استفاده از مجموعه‌ای از تعاریف و پروتکل‌ها با یکدیگر فراهم می‌کنند. در این مقاله به تعریف کامل API و کاربردها و انواع آن می‌پردازیم.

سرویس CDN

آشنایی با سرویس CDN

در این مقاله بطور کامل با سرویس CDN یا شبکه‌ی توزیع محتوا و عملکرد آن آشنا خواهیم شد. همچنین نحوه‌ی انجام تنظیمات در پنل کاربری به طور خلاصه بیان می‌شود.