ویژگیها و تفاوت Webserver و Application server
شبکههای کامپیوتری یکی از مهمترین عوامل در ارتباط ما با دنیای بیرون میباشند. اما این شبکهها توسط سرورها به یک دیگر متصل شده و تبادل اطلاعات انجام میدهند. دو مورد از کاربردیترین سرورهایی که تمام کاربران با آنها سر و کار دارند، وب سرور و اپلیکیشن سرور نام دارند. ما در این مقاله به بررسی تفاوت بین وب سرور و اپلیکیشن سرور میپردازیم.
تجربه باکیفیتترین وبسرور بر روی هاست خود، یکی از مهمترین نکاتیست که به هنگام خرید هاست باید به آن توجه داشته باشیم. هماکنون با خرید هاست پرسرعت لایت اسپید، کیفیت و عملکرد وبسایت خود را بهبود بخشید.
در ابتدا بیایید با مفهوم وب سرور آشنا شویم:
وب سرور چیست؟
امروزه اطلاعات نقش بسیار مهمی را در دنیای ما ایفا میکنند و انتقال بسیاری از این اطلاعات توسط اینترنت انجام میشود. متداولترین پروتکل که برای انتقال اطلاعات مورد استفاده قرار میگیرد، پروتکل HTTP است. پروتکل HTTP پروتکلی سریع، قوی و با بار کم بر روی CPU و حافظه سرور طراحی شده است.
کاربران با استفاده از مرورگرهای وب و پروتکل HTTP درخواست خود را مثلا برای دریافت یک صفحهی وب، به سرور ارسال نموده و وب سرور نیز با ارسال صفحه وب خواسته شده یا پیغام خطایی مبنی بر عدم امکان اجرای درخواست، به کاربر پاسخ میدهد.
صفحات وب بر پایه یک ساختار مشخص و با یک نام واحد که همان آدرس IP است بر روی وب سرور قرار میگیرند. لازم به ذکر است بر روی یک وب سرور امکان قرار گرفتن صفحات متعدد با ساختارهای جداگانه وجود دارد.
در واقع یک وب سرور پروتکل HTTP را مدیریت مینماید. زمانی که وب سرور درخواستی را برای HTTP دریافت میکند، با استفاده از HTTP response (به عنوان مثال با ارسال یک صفحه html) به آن پاسخ میدهد.
جهت پردازش درخواست، وب سرور ممکن است با استفاده از HTML image یا HTML page ایستا، ارسال ریدایرکت پاسخ دهد یا تولید پاسخ داینامیک را به برنامه دیگری مثل CGI scripts, JSPs (JavaServer Pages), servlets, ASPs (Active Server Pages) یا تکنولوژیهای سمت سرور دیگر واگذار مینماید.
به طور کلی وب سرور یک برنامه کامپیوتری است که مسئول پذیرفتن درخواستهای http از کاربران میباشد که همان مرورگرهای وب هستند و پاسخ (همان صفحات Html) را به همراه یک سری اطلاعات مانند ترکیبی از تصویر، ویدیو و دیگر فایلها به آنها ارسال مینماید.
در هر صورت هدف چنین برنامههای سمت سروری، ارسال پاسخ جهت مشاهده سایت در مرورگر وب است. درک مدل واگذاری وب سرور ساده است. زمانی که یک درخواست به وب سرور میرسد، وب سرور آن درخواست را به برنامهای ارسال میکند که به بهترین نحو میتواند آن را مدیریت نماید.
وب سرور هیچ عملکردی فراتر از ایجاد محیطی مناسب برای اجرای پاسخهای سمت سرور، ارائه نمیدهد. برنامه سمت سرور معمولاً عملکردهایی مانند پردازش تراکنش، اتصال بانک اطلاعاتی و پیام رسانی را برای خود فراهم میکند.
هنگامی که یک وب سرور از تراکنشها یا ادغام اتصال به دیتابیس پشتیبانی نمیکند، ممکن است از استراتژیهای مختلفی برای تحمل خطا و مقیاس پذیری مانند عمل کش، لود بالانسینگ و دستهبندی استفاده کند.
پرکاربردترین وب سرورها
Apache
GWS
Oversee
Lightspeed
Nginx
Microsoft IIS
Lighttpd
وب سرور Apache چیست؟
نرم افزار وب سرور متن باز آپاچی، در توسعه و همگانی شدن وب جهانی نقش بسیار مهمی ایفا نموده است. این وب سرور به زبان C نوشته شدهاست و دارای قابلیت چندسکویی (cross-platform) بوده و بر روی ماشینهای مختلف قابل اجرا میباشد.
يكي از دلايل انتخاب این اسم برای اين وب سرور به دلیل احترام به یکی از قبایل قدیمی بومی آمریکا است که به خاطر مقاومت و مهارت در ساخت ابزار آلات جنگی مشهور میباشند.
این وب سرور از سال ۱۹۹۶ به عنوان محبوبترین وب سرور برای HTTP در وب جهانی شناخته شده بود ولی در سال ۲۰۰۵ میدان مبارزه را به IIS مایکروسافت واگذار كرد و در حال حاضر نزدیک به ۴۹% بازار وب سرورهاي جهان را به خود اختصاص دادهاست. آپاچی برای میزبانی هر دو نوع وب استاتیک و وب داینامیک مناسب است.
وب سرور IIS چیست؟
وب سرور Information Internet Service) IIS) نیز محصول شرکت مایکروسافت است و تنها بر روی سیستم عاملهای این شرکت یعنی ویندوز قابلیت اجرا دارد و در پلتفرمهای ديگر عمل نميكند.
در واقع IIS مجموعهای از سرویسهای اینترنتی است که به صورت یکجا نمایش داده شدهاست. طبق آخرین آماری که منتشر شد بعد وب سرور آپاچی بیشترین محبوبیت را بین کاربران داشته است.
برای اولین بار مایکروسافت اين وب سرور را در یک پروژه آکادمیک در دانشگاه اسکاتلند به صورت رایگان عرضه کرد. سپس برای اولین بار از آن در Windows NT استفاده کرد که در آن قابلیت Active Server Page یا صفحههای سرور فعال را به آن افزود. بعدها با تکامل نسخههای ویندوز، IIS هم تکامل پیدا کرد و در نسخه شماره ۶٫۰ آن مایکروسافت پشتیبانی از IPV 6.0 را نیز به آن اضافه نمود.
ویژگیهای وب سرور
در وب سرورها برخی از ابزارها به صورت پیش فرض نصب شدهاند و وجود دارند. وب سرورها از زبانهای برنامه نویسی گوناگونی پشتیبانی مینمایند. وب سرورها دارای ویژگیهای مشترک زیادی با یک دیگر هستند. از جمله:
پشتیبانی از پروتکل HTTPS برای برقراری ارتباطی امن
کنترل درخواستها و پاسخها به منظور مدیریت پهنای باند
احراز هويت به گونهای که قبل از اجازه دسترسي به منبع درخواستي كاربر، آن را شناسايي ميكند.
اجازه دسترسي و مدیریت عناصر استاتیک و دینامیک: نه تنها اجازه دسترسي به منابع استاتیک (مانند محتويات فايلها که بر روی سیستم فایلی وجود دارد) را به كاربر ميدهد، بلکه مفاهيم دايناميك را با يك يا چند ساختار نيز مانند SI و GI ,CGI ,FastCGI ,JSP ,PHP ,ASP ,ASP.NET اداره ميكند.
فشردهٰسازی مطالب با استفاده از تكنولوژي GZIP به منظور کم کردم حجم پاسخها
کنترل پهناي باند تابدين طريق از سرعت پاسخها كاسته و همچنين از ترافيك و ازدحام شبكه جلوگيري نمايند. در اين صورت وب سرورها قادر به پاسخگویی به كاربران بيشتري خواهند بود.
پشتیبانی از فایلهای بزرگ تا بتواند فایلهای بزرگتر از ۲ گیگابایت را سرویسدهی کند.
اپلیکیشن سرور چیست؟
اپلیکیشن سرور مسئولیت سرویسدهی به برنامهها و یا نرم افزارهای کاربردی را در شبکه بر عهده دارد. اپلیکیشن سرور میتواند نرم افزار و یا سخت افزار بوده و غالبا برای سرویسدهی به برنامههای تحت وب طراحی میشود. اپلیکیشن سرورها صرفا برای انتقال اطلاعات درخواستی به کاربرها کاربرد دارد و به همین جهت این ابزارها دارای رابط گرافیکی نمیباشند.
این نوع سرور بصورت مجموعهای از اجزا عمل مینماید که توسعهدهنده نرمافزار از طریق یک API که بوسیله خودِ پلتفرم تعریف شده، آن را پردازش میکند. این اجزا معمولأ در محیطی مشابه با وب سرورها برای وب اپلیکیشنها اجرا میشوند که وظیفه اصلی آنها پشتیبانی از ساخت صفحات پویا است.
اپلیکیشن سرور، در واقع سروری است که به اجرای یک سری برنامههای نرم افزاری خاص اختصاص یافته است و کاربران از روی کامپیوترهای خود میتوانند به نرم افزارها دسترسی داشته باشند. در واقع اين نرم افزارهاي کاربردي هيچگونه رابط گرافيکي نداشته و فقط براي ارائه دادهها و اطلاعات به کاربرها مورد استفاده قرار ميگيرند.
اپلیکیشن سرور مشابه دیتابیس سرور است.دیتابیس سرور به طور متمرکز روی سرور قرار دارد و هر کاربری بر روی کامپیوتر شخصی خود نرم افزار را نصب میکند. اما در اپلیکیشن سرور نرم افزار تنها بر روی خود سرور نصب میگردد. کاربران یک برنامه تحت وب با استفاده از این نوع از سرور، نیازی به نصب اپلیکیشن روی کامپیوتر شخصی خود ندارد و تمام عملیات مورد نیاز به صورت تحت وب انجام میشود.
اپلیکیشن سرور، از طریق پروتکلهای مختلف از جمله HTTP، منطق تجارت را در اختیار برنامههای کاربر قرار میدهد. مادامی که وب سرور عمدتا با ارسال HTML جهت نمایش در مرورگر وب سروکار دارد، اپلیکیشن سرور دسترسی به منطق تجارت را برای استفاده برنامههای کاربر ایجاد مینماید که برنامه کاربردی میتوانند از این منطق استفاده نماید.
پرکاربردترین اپلیکیشن سرورها
WebSphere
WebLogic
JBoss
GlassFish
Mobicent
ویژگیهای اپلیکیشن سرور
اجرای کتابخانهها و سرویسهای نرم افزار کاربر
دریافت منابع سیستمی از سیستم عامل و مهیا کردن آنها برای کاربر و سایر سیستمهایی که ممکن است همزمان روی آن در حال اجرا باشند.
برقراری ارتباط سیستم کاربر با سایر سرورها مثل سرور پایگاه داده (dbms) و سرور پیامرسانی(messaging server)
برقراری ارتباط با سایر اپلیکیشن سرورها
مدیریت چرخه اجزای مختلف نرم افزار کاربر
تفاوت وب سرور و اپلیکیشن سرور
یک web server منحصرا درخواستهای HTTP را مدیریت مینماید. در حالی که application server از طریق تعدادی پروتکل، business logic را برای برنامههای کاربردی به کار میبرد.
اپلیکیشن سرورها و وب سرورها موارد استفاده و تشابههايي در عملکرد دارند. وظيفه وب سرور، گرفتن اطلاعات از دادههای ارائه شده توسط اپلیکیشن سرور است و در کنار آن وب سرور اطلاعات دریافت شده را در اختيار کاربران قرار ميدهد. در واقع يکي اطلاعات را ايجاد نموده و ديگري اطلاعات را سرويسدهي و نشان ميدهد. اما هر کدام از آنها ميتوانند به تنهايي نيز کار کنند و الزامي به وجود هر دوي آنها بر روي يک سرور نمیباشد.
وبسرورهايي که داراي محتوا و صفحات استاتيک هستند نيازي به داشتن اپلیکیشن سرور ندارند و همچنين اپلیکیشنهايي که اصلا رابط گرافيکي ندارند و توسط نرم افزارهاي تحت شبکه سرويسدهي مينمایند نيز نيازي به داشتن وب سرور ندارند. در ادامه به برخی از تفاوتهای این دو نوع سرور اشاره شده است:
وب سرور | اپلیکیشن سرور |
---|---|
تنها شامل web container میباشد. | شامل web container و EJB container میباشد. |
مناسب محتوای استاتیک است. | مناسب محتوای داینامیک است. |
منابع کمتری را مصرف مینماید. | منابع بیشتری را استفاده مینماید. |
محیط اجرایی را برای وب اپلیکیشن فراهم میسازد. | محیط اجرایی را برای enterprises application ها فراهم میسازد. |
از Multithreading پشتیبانی نمیشود. | از Multithreading پشتیبانی میشود. |
ظرفیت کمتری نسبت به اپلیکیشن سرور دارد. | ظرفیت بیشتری نسبت به وب سرور دارد. |
پروتکلهای HTML ,HTTP مورد استفاده است. | پروتکلهای GUI و HTTP ,RPC/RMI استفاده میگردد. |
با بررسی ویژگیها و تفاوت Webserver و Application server میتوانید فرآیند عملکرد سایت خود را بهتر درک کرده و به هنگام خرید هاست یا سرور خود به نوع وب سرور قابل ارائه بر روی آن سرویس، توجه کافی داشته باشید.
افیکس هاست نیز با ارائه وب سرور لایت اسپید بر روی سرور مجازی خود، امکان بهرهوری از این وب سرور پرسرعت را فراهم آوردهاست. هماکنون با خرید VPS با وب سرور لایت اسپید، سرعت و کیفیت بالایی را برای کسب و کار خود رقم بزنید.