امروزه اطلاعات، در دنیای ما نقش بسیار مهمی دارند و بسیاری از این اطلاعات توسط اینترنت انتقال پیدا میکنند. متداولترین پروتکلی که برای انتقال اطلاعات از آن استفاده می شود، پروتکل HTTP است. پروتکل HTTP به عنوان پروتکلی سریع، قوی و با بار کم بر روی CPU و حافظه سرور طراحی شده است. کاربران با استفاده از مرورگر های وب (Web Browser) و پروتکل HTTP درخواست خود را برای دریافت یک صفحه ی وب، به سرور وب ارسال می کنند و وب سرور نیز با ارسال صفحه وب مورد تقاضا یا پیغام خطایی مبنی بر عدم امکان اجرای درخواست، به کاربر پاسخ می دهد.
یکی از چیزهایی که باعث میشود افراد سردرگم شوند حالت طراحی وب و مفهوم وب سرور است. بیشتر مردم فکر میکنند سرور یک ماشین فیزیکی بزرگ مثل سیستم کامپیوتری است که در یک اتاق سرد نگهداری میشود و یا حتی مثل سیستم هکرهاست! که همه فکر میکنند زیرِ زمین هستند. از اینها گذشته واقعاً وب سرور چیست؟
وب سرور چیست؟
وب سرور به طور کلی یک برنامه کامپیوتری است که توانایی پاسخ به درخواست های کاربران را می دهد و صفحه درخواستی کاربر را که از طریق مرورگرهای مختلف فراخوانی می شود را ارسال می کند تا کاربر سایتی که میخواهد مشاهده کند را مشاهده می کند .
وقتی که شما پشت کامپیوتر خود نشسته اید اولین کاری که برای دیدن یک سایت در اینترنت انجام می دهید قطعا وارد نمودن آدرس آن سایت در قسمت آدرس بار مرورگر خود می باشد. فرقی نمی کند که مرورگر شما فایر فاکس باشد یا موزیلا یا اینترنت اکسپلورر و …، در واقع شما با وارد نمودن آدرس سایت درخواست خود را به وسیله این مرورگرها برای سرور ارسال نموده اید. مرورگرها این درخواست شما را برای مشاهده سایت به سرور انتقال می دهند و با مشاهده سایت، سرور به درخواست شما پاسخ داده است. صفحات وب بر پایه یک ساختار مشخص و با یک نام واحد که همان آدرس IP است بر روی وب سرور قرار می گیرند. همچنین بر روی یک وب سرور امکان قرار گرفتن صفحات متعدد و با ساختارهای جداگانه نیز وجود دارد.
ویژگی های وب سرور :
1 – اداره کردن مفاهیم استاتیک و همچنین داینامیک که از زبان های برنامه نویسی مختلفی مانند PHP ، ASP.net و ….. پشتیبانی میکند
2 – پشتیبانی از HTTPS جهت اتصال سالم و ایمن تر و استفاده کردن از پورت 443 به جای 80
3 – فشرده سازی مطالب با استفاده از کد سازی GZIP و …..
همچنین در حالت کلی وب سرورها داراي ويژگي هاي ذيل مي باشند:
- احراز هويت : قبل از اينكه اجازه دسترسي به منبع درخواستي كاربر را بدهند آن را شناسايي مي كنند.
- اجازه دسترسي: نه تنها اجازه دسترسي به منابع استاتیک (مانند محتويات فايل ها که بر روی سیستم فایلی وجود دارد) را به كاربر مي دهد، بلکه مفاهيم ديناميك را با يك يا چند ساختار نيز مانند SI , GI , CGI ,FastCGI ,JSP ,PHP ,ASP , ASP.NET اداره مي كند.
- امكان استفاده: این نوع پشتیبانی وب سرورها امكان استفاده از پروتكل HTTPS را نيز فراهم نموده تا به کاربران اجازه دهند ارتباطات مطمئن و امني را داشته باشند.
- فشرده سازي : فشرده سازی مطالب تا بتوان از حجم پاسخ ها کم کرد. (با استفاده از تکنولوژی GZIP)
- پهناي باند: وب سرورها پهناي باند را کنترل کرده تا بدين طريق از سرعت پاسخ ها كاسته و همچنين از ترافيك و ازدحام شبكه جلوگيري نمايند، در اين صورت وب سرورها قادر به پاسخگويي به كاربران بيشتري خواهند بود.
- پشتيباني از فايل هاي بزرگ : پشتیبانی از فایلهای بزرگ، تا بتواند فایل های بزرگتر از 2 گیگابایت را سرویس دهی کند.
انواع وب سرور
همانطور که میدانید وب سرورهای مختلفی در دسترس افراد قرار دارد. در ادامه برخی از محبوب ترین وب سرورها را با هم مرور می کنیم.
1- وب سرور iis :اين نرم افزار را شرکت مایکروسافت ارائه نموده است. در واقع IIS مجموعه ای از سرویس های اینترنتی است که به صورت یکجا نمایش داده شده است. طبق آخرین آماری که منتشر شد بعد از آپاچی بیشترین محبوبیت را بین کاربران داشته است. IIS تنها در ساختار مايكروسافت ويندوز قابل ارائه مي باشد و در پلتفرم های ديگر عمل نمي كند.
برای اولین بار مایکروسافت اين نرم افزار را در یک پروژه آکادمیک در دانشگاه اسکاتلند به صورت مجانی عرضه کرد. سپس برای اولین بار از آن در Windows NT استفاده کرد که در آن قابلیت Active Server Page یا صفحه های فعال کارساز را به آن افزود.
بعدها با تکامل نسخه های ویندوز، IIS هم تکامل پیدا کرد و در نسخه شماره ۶٫۰ آن مایکروسافت پشتیبانی از IPV 6.0 را نیز به آن اضافه کرد.
2- وب سرور آپاچی : این نرم افزار در توسعه و همگانی شدن وب جهانی نقش بسیار مهمی داشته است که به زبان C نوشته شده است دارای قابلیت cross-platform (سازگار با سيستم هاي عامل مختلف) بوده و بر روی ماشینهای مختلف قابل اجرا می باشد.
يكي از دلايل انتخاب این اسم برای اين نرم افزار به دلیل احترام به یکی از قبایل قدیمی بومی آمریکا بوده که به خاطر مقاومت و مهارت در ساخت ابزار آلات جنگی مشهور می باشند.
در سال ۱۹۹۶ به عنوان محبوبترین وب سرور برای HTTP در وب جهانی شناخته شده بود ولی در سال ۲۰۰۵ میدان مبارزه را به IIS مایکروسافت واگذار كرد و در حال حاضر نزدیک به ۴۹ % بازار وب سرورهای جهان را به خود اختصاص داده است. آپاچی برای میزبانی هر دو نوع وب ایستا و وب پويا مناسب است.
3- وبسرور LiteSpeed : همانگونه که از نام این وب سرور پیداست با یکی از سریعترین خدمترسانهای اینترنتی طرف هستیم که برای سایتهای پربازدید کاربرد زیادی دارد. تجربه نشان داده است سرعت بارگذاری وبسرور LiteSpeed نسبت به وبسرورهای دیگری مانند آپاچی چیزی حدود یک سوم سریعتر است.
البته امکانات و سرعت وب سرور LiteSpeed برای مشتری ارزان تمام نخواهد شد و برخلاف دیگر وبسرورهایی که به آنها اشاره کردیم برای دسترسی به تمامی امکانات این وبسرور باید هزینه خرید لایسنس آن را پرداخت کنید. خوشبختانه فرآیند خرید و همچنین هزینه وبسرور LiteSpeed خیلی هم زیاد نیست و اگر ویژگیهای این وبسرور چشم شما را گرفته است میتوانید از این لینک برای خرید لایسنس وبسرور LiteSpeed استفاده کنید.
جالب اینجاست که وبسرور LiteSpeed سازگاری بسیار خوبی با آپاچی دارد و به همین دلیل شاهد پشتیبانی این وبسرور از قابلیتهای وبسرور آپاچی مانند htaccess, Mod Security و Mod Rewrite هستیم. این ویژگیها باعث شد تا وبسرور LiteSpeed به سرعت جای خود را در میان سایر وبسرورها باز کند و در مکان چهارم قرار بگیرد.
کاهش هزینههای نگهداری و پایداری و سرعت بالا را میتوان از ویژگیهای اصلی وبسرور LiteSpeed دانست. این ویژگیها باعث شده است تا مدیران برای انتخاب وبسرور مناسب میان LiteSpeed و Apache شک داشته باشند و به همین دلیل مقایسهای میان وبسرورهای Apache و LiteSpeed انجام دادهایم که مطالعه آنرا پیشنهاد میکنیم.
وبسرور LiteSpeed ویژگیهای زیادی دارد و به همین راحتیها نمیتوان از کنار آن گذشت، در نتیجه اگر به فکر امتحان یا استفاده این وبسرور افتادهاید پیشنهاد میکنیم نگاهی به آموزش نصب و استفاده از وبسرور LiteSpeed داشته باشید.
4- وبسرور Nginx : این وبسرور رایگان و متنباز است و همین دلایل باعث محبوبیت زیاد وبسرور Nginx شده است. این وبسرور بهخوبی با پلتفرمهای یونیکس، ویندوز و مک سازگاری دارد و گفته میشود چیزی حدود ۱۲ درصد از سایتهای اینترنتی خدمات خود را از وبسرورهای Nginx دریافت میکنند.
وبسرور Nginx امکانات جالبی دارد و میتواند بیشتر از ۱۰ هزار اتصال همزمان را با مصرف تنها ۲.۵ مگابایت حافظه برقرار کند. تعامل با فایلهای Status، اجرای Load Balancing، قابلیت Fault Tolerance، سازگاری کامل با پروتکل IPV6، استریم فرمتهای ویدئویی FLV و MP4، رصد کردن کاربران، پشتیبانی از پروتکلهای IMAP, SMTP و POP3 را میتوان از امکانات اصلی وبسرور Nginx نام برد.
ناگفته نماند وبسرور Nginx از htaccess پشتیبانی نمیکند و این امر ممکن است در نگاه اول به عنوان یک ضعف به حساب بیاید اما دلایل زیادی را میشناسیم که وبسرور Nginx افزایش سرعت و کارایی بیشتری به دلیل عدم پشتیبانی از htaccess را به دنبال دارد.
وبسرور Lighttpd : در وبسرور Lighttpd با یکی از امنترین وبسرورها طرف هستیم که سرویس بسیار خوبی در موقعیتهای High Performance و High load عرضه میکند. از طرف دیگر این وبسرور نسبت به سایر وبسرورها نیاز به منابع بسیار کمی دارد و گفته میشود کمترین میزان رم را اشغال میکند.
وبسرور Lighttpd به امکانات پیشرفتهای مانند FastCGI, CGI و URL-Rewriting مجهز است و این موارد باعث شده این وبسرور گزینه خوبی برای سرورهایی با حجم ترافیک بالا باشد.
جالب است بدانید وبسایت معروف و پرترافیک یوتیوب در گذشته از این وبسرور خدمت میگرفته است. از طرف دیگر برخی از ماژولهای آپاچی را میتوان در وبسرور Lighttpd به کار گرفت.
وبسرور Lighttpd از Chroot پشتیبانی میکند و به ابزار آماری RRDtool مجهز است. این وبسرور به صورت تک پردازشی ساخته شده و با چندین Thread مختلف تعامل برقرار میکند. اگر خاطر شما باشد گفتیم وبسرور Lighttpd امنیت بالایی دارد که در این زمینه میتوان به ماژول مخصوص برای جلوگیری از حملات DDos اشاره کرد.
وب سرور چه کاربردی دارد؟
وب سرور دقیقا چگونه عمل میکند ؟
برای درک بیشتر نحوه عملکرد وب سرور باید گفت که مسیر تبادل اطلاعات بین یک مرورگر وب از راه دور و یک وب سرور به سادگی تعریف آن نیست
ساختار مرورگر ها به گونه ای است که با استفاده از DNS های دامنه که آن را به عنوان یک آدرس IP منحصر به فرد برای هر سایت می شناسد میتواند از این طریق به سرور های خاصی دسترسی داشته باشد مرورگر پس از ایجاد ارتباط با سرویس دهنده های وب از طریق آدرس IP به درخواست صفحه مربوط به وب پاسخ میدهد . اساس صفحات وب HTML است که این صفحات پیش فرض به طور رایج برای بسیاری از وب سایت ها فرمت INDEX.HTML را دارد و به همین جهت است که هر آدرسی را که در مرورگر وارد میکنیم به طور پیش فرض فایل HTML را برای شما به عنوان پاسخ برمیگرداند و پس از این مرحله کد های HTML بررسی میشود تا صفحه به نمایش در بیاید. وب سرور ها به طریق مختلف اقدام به مدیریت درخواست ها (connection ) می کنند
- برای هر درخواست یک process جدید درست می کنند
- برای هر درخواست یک process جدید درست می کنند در حالی که سیستم connection poll هم دارند که تا مدتی process ها را نگه می دارد و در صورتی که در آن زمان درخواست جدیدی بیاید از process های بیکار استفاده می کنند
- برای هر درخواست یک thread جدید درست می کنند
- برای هر درخواست یک thread جدید درست می کنند در حالی که سیستم thread poll هم دارند که تا مدتی thread ها را نگه می دارد و در صورتی که در آن زمان درخواست جدیدی بیاید از thread های بیکار استفاده می کنند
- یک process همه event ها را مدیریت می کند. (قبول درخواست، پاسخ به کاربر، خواندن داده و … )
- ترکیبات روش ها