وب سرور و اپلیکیشن سرور
همیشه زمانیکه قرار بود Role های موجود در ویندوز سرور 2008 را معرفی کنیم دو مورد برای دانشجویان عزیز دارای ابهام بود، ما در سرور 2008 و به بعد از آن Web Server و Application Server را بصورت جداگانه می بینیم، امروز می خواهیم در این بلاگ در خصوص تفاوت اصلی بین Web Server و Application Server توضیح دهیم.

زمانیکه صحبت از World Wide Web می شود مهمترین واژه هایی که به چشم می آید Application server و Web Server است که با توجه به تشابه هایی که در این بین وجود دارد امکان دارد با هم اشتباه گرفته شوند. بیشتر ما تاکنون با واژه Web Server یا سرویس دهنده وب آشنا شدهایم یا حداقل با شنیدن این واژه کمی با ماهیت کاری آن بصورت ناخودآگاه آشنا می شویم. برای مشاهده مقایسه سرورهای لینوکسی کلیک نمایید.
وب سرور یا Web Server چیست؟
یک وب سرور یا Web Server در واقع یک نرم افزار یا یک سخت افزار است که برای سرویس دهی محتوا یا Content هایی از قبیل صفحات HTML، فیلم و … برای استفاده کاربران عادی توسط مرورگرهای اینترنتی پیاده سازی و مورد استفاده قرار می گیرد. در واقع Web Server همان چیزی است که مرورگر اینترنتی شما به آن وصل می شود و اطلاعات مورد نیاز شما را از آن دریافت می کند، برای مثال همین الان که شما در حال مشاهده این مطلب در وب سایت سرو هستید، محتوای موجود در این صفحه بر روی یک وب سرور قرار گرفته است و مرورگر شما به این وب سرور متصل شده و اطلاعات را دریافت و به شما نمایش می دهد. نرم افزارهایی مانند IIS شرکت مایکروسافت و Apache لینوکس از انواع وب سرورهای معمول مورد استفاده در اینترنت هستند.
اپلیکیشن سرور یا Application Server چیست؟
از طرفی دیگر Application Server که ترجمه آن سرویس دهنده نرم افزار کاربردی است به یک نرم افزار یا سخت افزار گفته می شود که یک Application یا نرم افزار کاربردی که معمولا تحت وب سایت را سرویس دهی می کند. در واقع این نرم افزارهای کاربردی هیچگونه رابط گرافیکی ندارند و فقط برای ارائه داده ها و اطلاعات به کلاینت ها مورد استفاده قرار می گیرند.
Application Server ها و Web Server ها استفاده ها و تشابه هایی در عملکرد دارند که اصلا بعید نیست یک وب سایت هم Application باشد و هم Web و طبیعتا روی سرور این وب سایت شما هم Application Server را خواهید داشت و هم Web Server، وظیفه وب سرور گرفتن اطلاعات از محتویات ارائه شده توسط Application Server است و در کنار آن Web Server هم اطلاعات گرفته شده را در اختیار کاربران قرار می دهد، در واقع یک همکاری کاملا درست، یکی اطلاعات را ایجاد می کند و دیگری اطلاعات را سرویس دهی و نمایش می دهد. ولی به این موضوع دقت کنید که هر کدام از این Role ها می توانند به تنهایی نیز کار کنند و الزامی به وجود هر دوی آنها بر روی یک سرور نیست.

Web Server هایی که دارای محتویات ساده و صفحات استاتیک وب هستند نیازی به داشتن Application Server ندارند و همچنین Application هایی که اصلا رابط گرافیکی ندارند و توسط نرم افزارهای تحت شبکه سرویس دهی می کنند نیز طبیعتا نیازی به داشتن Web Server برای انجام کارهای خود ندارند.
جمع بندی مبحث وب سرور و اپلیکیشن سرور
اپلیکیشن سرورها با توجه به ماهیت کاریشان به نسبت وب سرور ها دارای انعطاف پذیری بیشتری برای پیاده سازی هستند، Application ها برای اجرا به مراتب از تنوع منابع و آزادی عمل بیشتری برخوردار هستند. همین امر هم ممکن است باعث بروز نقاط ضعف امنیتی در Application Server ها شود که مهاجمین بتوانند از آن سوء استفاده کنند. با توجه به اینکه به نسبت Web Server ها دارای ساختار کاری ساده تری هستند طبیعتا حملاتی که به وب سرورها انجام میشود کمتر از Application Server ها است.
اما به این موضوع هم توجه کنید که امروزه تقریبا همه Application ها را به گونه ای مینویسند که با ترکیب شدن با وب سرورها کار کنند و به نوعی Web Application Server ها امروزه در دنیای فناوری اطلاعات حرف میزنند، این موضوع هم خوب است و هم بد، از این جهت خوب است که یکپارچگی ایجاد شده در این محصولات باعث سهولت دسترسی به Application مورد نظر میشود و کاربر میتواند براحتی با استفاده از یک مرورگر اینترنتی ساده به Application سرور خود متصل شود و از جهتی مشکل امنیتی بیشتری پیش میآید؛ نقاط ضعف امنیتی Application Server ها و Web Server ها در این حالت تجمیع میشود و مهاجمین اینگونه نرم افزارها را بیشتر مورد حملات خود قرار میدهند.

در سطوح امنیتی بالای سازمانی پیشنهاد میشود که اپلیکیشن سرور ها از وب سرورها ها جدا باشند و Web Server که صرفا به عنوان یک واسط کاربری محسوب میشود در منطقه حفاظت شده ای به نام DMZ قرار بگیرد و Application Server در داخل شبکه داخلی محافظت شده قرار بگیرد تا از بروز حملات بر روی آن جلوگیری شود، به هر حال شما میتوانید هر دوی این سرویس ها را روی یک ماشین هم داشته باشید و این کاملا به دیدگاه طراح شبکه شما بر میگردد.
اگر بخواهیم بطور خلاصه ویژگی های وب سرور و اپلیکیشن سرور را بیان کنیم، خواهیم داشت
| وب سرور | اپلیکیشن سرور |
| محتوای ایستا تحویل میدهد (static content) | محتوای پویا تحویل میدهد (dynamic content) |
| محتوا فقط با استفاده از پروتکل HTTP تحویل داده می شود. | با استفاده از چندین پروتکل (از جمله HTTP)، برنامه های کاربردی منطق کسب و کار را ارائه می دهد. |
| فقط برنامه های مبتنی بر وب را ارائه می دهد. | می توانید برنامه های کاربردی مبتنی بر وب و سازمانی را ارائه دهد. |
| بدون پشتیبانی از چند رشتهای (multi-threading) | از چند رشتهای برای پشتیبانی همزمان از چندین درخواست استفاده می کند. |
| ترافیک وب را تسهیل می کند بطوریکه خیلی منابع فشرده نیست. | فرآیندهای طولانی تر را تسهیل می کند بطوریکه منابع بسیار فشرده ای هستند. |
منبع: انجمن تخصصی فناوری اطلاعات ایران , educative.io

