ممکن تا به حال این سوال در ذهنتان پیش آمده باشد که زمانی که شما از طریق مرورگر (Browser) خود وارد یک وب سایت می شود و درخواستی را به وب سایت می دهید، این درخواست شما چگونه پاسخ داده می شود. به عنوان مثال روی دکمه دانلود کلیک می کنید و فیلم یا عکسی را دانلود می کنید یا روی یک محصول کلیک کرده و جزییات آن را مشاهده می کنید. بخش عمده و مهم در پاسخ به این سوال، مفهومی به نام وب سرور است که در ادامه به تعریف و چگونگی کارکرد آن خواهیم پرداخت.
وب سرور شامل محتوای وب سایت ها مانند فایل های html ، تصاویر، داکیومنت های json و API ها، ویدیو ها، فایل های استاتیک و پویای وب و هر چیزی که به عنوان محتوای وب شما باشد را ذخیره و در اختیار کاربران قرار می دهد. وب سرور شامل این موارد ذکر شده است اما وظیفه وب سرور، تحلیل و مدیریت درخواست های ارسالی به سایت است، بدین صورت که درخواست از سمت کاربر به browser ارسال می شود و browser درخواست را پردازش می کند و به سمت وب سرور ارسال می کند. وب سرور نیز این درخواست را آنالیز می کند.
وب سرور را می توان از 2 جنبه سخت افزاری و نرم افزاری بررسی کرد:
از لحاظ سخت افزاری ، وب سرور یک کامپیوتر است که شامل نرم افزار وب سرور و فایل های محتوای وب سایت است و متصل یه اینترنت است و با سایر دستگاه های متصل به اینترنت، تبادل اطلاعات می کند. این سخت افزار را می توان همان سرور در نظر گرفت. اما از لحاظ نرم افزاری، وب سرور شامل چندین بخش می شود که نحوه ی دسترسی کاربران به فایل ها و اطلاعاتی که روی هاست میزبانی می شوند را بر عهده دارد. برای مثال HTTP Server ، با استفاده از پروتکل http و آدرس های وب، به درخواست های کاربران برای نمایش سایت را بررسی کرده و پاسخ می دهد.
برای مثال، شما در مرورگر خود، آدرس یک وب سایت را وارد می کنید. در این جا مرورگر شما، درخواست شما را از طریق پروتکل http به وب سرور ارسال می کند. وب سرور درخواست را دریافت کرده و پردازش میکند. در صورت موفقیت آمیز بودن، در پاسخ، وب سایت مورد نظر را نمایش می دهد.
وب سرور چگونه کار می کند
زمانی که کاربر درخواست صفحه ای را دارد، URL آن را وارد می کند و وب سرور شروع به جست و جوی صفحه ی مورد نظر می کند.اگر بتواند درخواست کاربر را پیدا کند، اطلاعات را در قالب http به مرورگر کاربر ارسال می کند. اگر هم نتواند صفحه مورد نظر را پیدا کند، برای کاربر خطای 404 را ارسال می کند که صفحه مورد نظر یافت نشد.
به طور خلاصه، نحوه ی کارکرد وب سرور را می توان به صورت زیر در نظر گرفت:
- استفاده از حافظه کش مرورگر یا DNS برای یافتن ادرس IP دامنه
- وارد کردن آدرس صفحه مورد نظر توسط کاربر
- تحلیل و آنالیز درخواست توسط وب سرور
- نمایش پاسخ به درخواست کاربر و ارسال آن به مرورگر کاربر
انواع وب سرور ها
- Apache Web Server : وب سرور آپاچی یکی از پرکاربردترین وب سرور ها در سراسر جهان است. بزرگترین مزیت استفاده از این وب سرور این است که تقریباً از تمام سیستم عامل ها مانند Windows ، Linux ، Mac و سایر دستگاه ها پشتیبانی می کند. وب سرور آپاچی بیشتر از 20 سال است که به کاربران سرویس می دهد و حدود 60٪ از دستگاه های وب سرور در سراسر جهان ، وب سرور Apache را اجرا می کنند. وب سرور HTTP آپاچی منبع باز (Open Source) است، به این معنی است که به صورت رایگان در دسترس است و می توان به راحتی از طریق انجمن های آنلاین به آن دسترسی پیدا کرد. بنابراین ، در صورت بروز مشکل یا خطا ، پشتیبانی آنلاین زیادی در دسترس کاربران است. این وب سرور ، همچنین کاربر را قادر می سازد تا سرور را مطابق نیاز خود تغییر دهد. آخرین نسخه آپاچی بسیار انعطاف پذیرتر از نسخه های قبلی است و می تواند درخواست های بیشتری را بدون مشکل انجام دهد.
- وب سرور IIS مایکروسافت : IIS که مخفف عبارت) (Internet Information Service به معنای سرویس اطلاعات اینترنتی است، محصول شرکت مایکروسافت می باشد. IIS تقریباً تمام ویژگی هایی را که وب سرور آپاچی ارائه می دهد را ارائه می کند. Microsoft IIS منبع باز نیست. این بدان معناست که محدودیت های توسعه ای دارد و کاربران نمی توانند آن را مطابق نیاز پروژه خود تغییر دهند. پروژه باید در اطراف آن اصلاح شود. با هر ابزار سیستم عامل ویندوز کار می کند. مایکروسافت در صورت بروز هرگونه مشکلی ، مراقبت از مشتری و کمک به آن را در اختیار کاربران خود قرار می دهد.
- وب سرور lighttpd : وب سرور lighttpd در سال 2003 منتشر شد و ترکیبی از light و httpdاست.این وب سرور بسیار امن است و نیاز به منابع کمتری در مقایسه با آپاچی و IIS دارد و میزان رم بسیار کمی را اشغال می کند. این برنامه می تواند تعداد زیادی اتصال را همزمان اجرا کند و حتی امکاناتی مانند Auth ، بازنویسی URL ، میزبانی مجازی انعطاف پذیر ، پشتیبانی servlet (AJP) ، پشتیبانی پروکسی HTTP و غیره را در اختیار کاربر قرار می دهد.همه این ویژگی ها در کنار سبک بودن ، Lighttpd را برای سرورهایی که از مشکلات بار رنج می برند مناسب می کند.
- وب سرور Nginx : Nginx یک وب سرور منبع باز است که بخاطر عملکردی که در منابع و پیکربندی کم ارائه می دهد ، مشهور است. این برنامه عمدتا برای ذخیره سازی ، پخش رسانه ، تعادل بار ، مدیریت پرونده های استاتیک ، نمایه سازی خودکار و غیره استفاده می شود. به جای ایجاد فرایندهای جدید برای هر درخواست کاربر ، Nginx درخواستها را در یک موضوع واحد با استفاده از رویکرد ناهمزمان اداره می کند. این وب سرور با پلتفرم های ویندوز، مک و لینوکس به خوبی سازگار دارد و همچنین از پروتکل های SMTP ، IMAP و POP3 نیز به خوبی پشتیبانی می کند. در نظر داشته باشید که Nginx سرعت بالایی دارد، البته از htaccess پشتیبانی نمی کند و همین علت است که سرعت بالایی دارد اما از نگاه برخی کاربران ، این عدم پشتیبانی، یک نقطه ضعف به حساب می اید.
- Sun Java System Web Server : وب سرور سیستم جاوا، یک یک وب سرور چند رشته ای و چند فرایندی است که عملکرد ، مقیاس پذیری و قابلیت اطمینان بالایی را برای شرکت ها فراهم می کند. همچنین از امنیت داده ها و رابط خط فرمان پشتیبانی CLI پشتیبانی می کند. نسخه 7 این وب سرور ، از CLI تازه معرفی شده ای به نام “wadm” استفاده می کند.
- وب سرور litespeed : وب سرور LiteSpeed وب سرور پیشرو با کارایی بالا و مقیاس پذیری بالا از فناوری های LiteSpeed است. می توان از آن برای جایگزینی سرور Apache موجود بدون تغییر سایر برنامه ها یا جزئیات سیستم عامل استفاده کرد. از همه بهتر ، می توان آن را بدون شکستن چیزی یکپارچه کرد. به این ترتیب ، وب سرور LiteSpeed می تواند به سرعت یک تنگنای بزرگ در بستر میزبانی وب موجود شما را جایگزین کند. وب سرور LiteSpeed با طیف گسترده ای از ویژگی ها و استفاده آسان از کنسول مدیریت وب ، می تواند به شما در غلبه بر چالش های استقرار زیرساخت موثر میزبانی وب کمک کند.