روال کار در سرور وب چیست؟
بعد از آن که به صورت کلی متوجه شدیم سرور وب چیست، باید به این مسئله بپردازیم که یک سرور وب چگونه کار میکند؟ همان طور که گفته شد، وقتی یک کاربر میخواهد به محتوای یک صفحه از سایت شما دسترسی پیدا کند، لینک آن را در مرورگر قرار میدهد. این کار باعث ارسال یک درخواست به سمت سرور وب میشود. بعد از پردازش این درخواست، محتوای موردنظر، شامل تگ های HTML، تصاویر، ویدیوها، و … به سمت مرورگر وی ارسال میگردد.
برای تشریح بهتر این فرآیند، ما به شکل جزئیتری به گامهای مربوط به آن و مراحلی که رخ میدهد، میپردازیم.
مدیریت درخواست کاربر
زمانی که کاربر آدرس سایت را در مرورگر وارد میکند، درخواست وی به سمت سرور وبی که سایت در آن قرار گرفته ارسال میگردد.
این درخواستها به کمک پروتکلها ساخته و پرداخته میشوند. از جمله معروفترین آنها HTTP است. وظیفه این گونه پروتکلها آن است که معین میکنند پیامها (بین مرورگر و سرور) چگونه سازماندهی شده و انتقال پیدا کنند.
در این حال، سرور وب درخواست را دریافت کرده، آن را پردازش نموده و فایلها و محتوای موردنظر کاربر (مانند فایلها و تصاویر و کدهای سایت) را آماده میکند.
نحوه پاسخ دهی سرور
سرور وب از مجموعه نرم افزارهایی تشکیل شده که URL (آدرس ارسال شده توسط کاربر) را بررسی کرده و فایلهای مربوط به همان آدرس را در پاسخ ارسال میکنند. در واقع اگر بخواهیم دقیقتر عرض کنیم که «پاسخ سرور وب چیست؟»، باید بگوییم این پاسخ به صورت کلی در یکی از دو دسته زیر جای میگیرد.
- فایلها در سرور موجود بوده و آدرس صحیح است که خوب در این حالت سرور آن فایلها و محتوا را به مرورگر کاربر ارسال میکند.
- فایلهای موردنظر در سرور موجود نیست (آدرس وارد شده اشتباه است) که در این حالت سرورها معمولاً صفحه 404 را به نمایش میگذارند. یعنی خطایی وجود دارد و محتوای مورد نظر یافت نشده است.
بعد از ارسال پاسخ از جانب سرور (که به آن HTTP response میگویند)، مرورگر کاربر آن را پردازش کرده و محتوای صفحه وب را به کاربر نمایش میدهد.
محتوای داینامیک یا استاتیک
در وب سایت ها گاهی اوقات نیاز به نمایش محتوای داینامیک یا پویا احساس میشود. منظور این است که سرور با کدهای موجود تعامل کرده و آنها را اجرا میکند و با توجه به دستورهای موجود در آن کدها، محتوای خاصی را نمایش میدهد.
تفاوت این نوع محتوا با حالت استاتیک در آن است که این محتوا بسته به درخواست کاربر میتواند برای هر بازدیدکننده متفاوت باشد و به همین جهت به آن محتوای پویا گفته میشود. مثلاً وقتی شما به حساب کاربری خود در یک وب سایت مراجعه میکنید، مسلماً اطلاعات موجود در داشبورد کاربری شما متفاوت با فرد دیگری است که عضو همان سایت است.
چنین اطلاعات متغیری به کمک زبانهای برنامه نویسی (مانند php یا نود جی اس) سمت سرور ایجاد میگردند و به سرور معرفی میشوند. لذا در این قسمت از مقاله که درخصوص روال کار در یک سرور وب صحبت کردیم، لازم بود که این نکته را هم بیان کنیم تا علاقه مندان به وظیفه سرور وب در این زمینه نیز آگاه شوند.
سیستم عامل در سرور وب چیست؟
گفتیم که سرور وب مشابه یک کامپیوتر قوی عمل میکند تا بتواند وب سایتهای موجود را به حالت آنلاین درآورد. مشابه کامپیوترهای معمولی، سرور وب نیز به یک سیستم عامل1operating system احتیاج دارد. این سیستم عامل به عنوان پایه و اساس سرور وب عمل کرده و سایر نرم افزارها بر روی آن نصب میگردند.
انتخاب سیستم عامل در یک سرور وب میتواند بر روی مسائل امنیتی، عملکرد و سازگاری سرور مربوطه اثرگذار باشد. برخی از رایجترین سیستم عاملها که در سرورهای وب به کار گرفته میشوند عبارتند از:
- سیستم عامل لینوکس: یکی از محبوبترین سیستم عاملها برای سرورهای وب سیستم لینوکس است که با آپاچی2Apache و انجین ایکس3NGINX نیز سازگاری دارد.
- سیستم عامل ویندوز: این سیستم عامل بیشتر با ساختار نرم افزاری Microsoft’s IIS هماهنگی دارد.
- سیستم عاملهای UNIX: برخی از سیستم عاملهای بر پایه UNIX مانند FreeBSD نیز در برخی سرورهای وب به دلیل عملکرد مناسب و ویژگیهای امنیتی خوبی که دارند، به کار گرفته میشوند.
نرم افزارهای سرور وب
در ادامه برای آشنایی بیشتر شما و پاسخ بهتر به پرسش «سرور وب چیست؟» برخی نرم افزارها یا ساختارهای نرم افزاری را که در محیط سرور وب استفاده میشوند، به اختصار توضیح میدهیم.
انجین ایکس
انجین ایکس یکی از نرم افزارهای سرور وب معروف است که سرعت، کارآمدی و مصرف پایین منابع سرور از ویژگیهای برجسته آن هستند.
این نوع سرور در ابتدا برای مدیریت کردن سایتهای با ترافیک بالا ابداع شد. نسبت به ساختار نرم افزار آپاچی میتواند فایلهای استاتیک (محتوای استاتیک) را سریعتر لود کند.
همچنین برای مدیریت کردن تماسهای همزمان زیاد (تعداد کاربران بالا در یک وب سایت در یک لحظه مشخص) بسیار ایده آل است. مشابه سیستم آپاچی، این سیستم نرم افزاری نیز متن باز بوده و میتواند بر روی سیستم عاملهای گوناگون (از جمله ویندوز و لینوکس) به کار گرفته شود.
سیستم IIS مایکروسافت
IIS که مخفف Internet Information Services است، یکی دیگر از نرم افزارهای سرور وب است که توسط مایکروسافت توسعه یافته و بر روی سیستم عامل ویندوز اجرا میگردد.
از مزیتهای این ساختار نرم افزاری در بحث سرور وب میتوان به هماهنگی و سازگاری آن با سایر محصولات مایکروسافت مانند ASP.NET ، MSSQL و Active Directory اشاره کرد. این مسئله، چنین ساختار نرم افزاری را به گزینه مناسبی برای تجارتهایی تبدیل کرده است که از اکوسیستم مایکروسافت در ساختار خود بهره میبرند.
نرم افزار IIS بیشتر به جهت رابط کاربری آسان و مناسبی که دارد، معروف گشته و پشتیبانی مناسبی از زبانهای برنامه نویسی مختلف مانند PHP ، .NET و … انجام میدهد.
یکی دیگر از مزایای این ساختار نرم افزار سرور وب، پشتیبانی مناسب از مسائل امنیتی است. فیلترکردن و بررسی درخواستها و همچنین به کارگیری SSL این ساختار نرم افزاری را برای انواع نرم افزارها و وب سایتها مناسب جلوه میدهد.
نرم افزار آپاچی در سرور وب چیست؟
میتوان گفت نرم افزار آپاچی یکی از سرورهای وب رایج در تمام جهان است. یک ساختار متن باز که بر روی انواع سیستم عامل اجرا میشود. انعطاف پذیری و طراحی ماژولار4modular design در این نرم افزار، یکی از ویژگیهای بارز است. در واقع کاربران به کمک همین ماژولها، میتوانند برخی از ویژگیها را فعال یا غیرفعال کنند. لذا سفارشیسازی آپاچی نسبتاً آسان است.
از آنجایی که دههها است که برای وبسایتهای مختلف از این نوع سرور وب استفاده شده است، شما به راحتی میتوانید به ساختار آن اعتماد کنید. این نرم افزار در مورد وبسایتهای مختلف مانند وبلاگهای شخصی، وب سایتهای شرکتی و حتی نرمافزارها و سایتهای در ابعاد بزرگ امتحان خود را به خوبی پس داده است.
جمعبندی
در این مقاله سعی کردیم به پرسش «سرور وب چیست؟» پاسخ دهیم. با روال کار در یک سرور وب و چگونگی عملکرد آن و پاسخ به درخواست کاربر آشنا شدیم. همچنین در مورد انواع سیستم عامل و ساختارهای نرمافزاری که در یک سرور وب استفاده میشوند، توضیحاتی ارائه کردیم. نکته مهم و خلاصه این مقاله را میتوان در این جمله بیان کرد: «سرور وب یک سیستم قدرتمند است که شما برای ارائه محتوا و خدمات خود در بستر اینترنت (آنلاینکردن سایت) به آن نیاز دارید».
پاورقی:
- 1operating system
- 2Apache
- 3NGINX
- 4modular design