एप्लिकेशन सर्वर और वेब सर्वर के बीच अंतर क्या है?


760

एप्लिकेशन सर्वर और वेब सर्वर के बीच अंतर क्या है?


प्रदर्शन के लिहाज से बेहतर एप्लीकेशन सर्वर या वेबसर्वर है
काव्य

जवाबों:


620

अधिकांश बार इन शर्तों वेब सर्वर और अनुप्रयोग सर्वर का उपयोग किया जाता है।

वेब सर्वर और एप्लिकेशन सर्वर की सुविधाओं में कुछ प्रमुख अंतर निम्नलिखित हैं:

  • वेब सर्वर को HTTP कंटेंट की सेवा के लिए बनाया गया है। ऐप सर्वर एचटीटीपी कंटेंट की सेवा भी कर सकता है लेकिन यह केवल एचटीटीपी तक सीमित नहीं है। इसे अन्य प्रोटोकॉल सपोर्ट जैसे RMI / RPC प्रदान किया जा सकता है
  • वेब सर्वर ज्यादातर स्थिर सामग्री की सेवा के लिए डिज़ाइन किया गया है, हालांकि अधिकांश वेब सर्वर में पर्ल, पीएचपी, एएसपी, जेएसपी आदि जैसे स्क्रिप्टिंग भाषाओं का समर्थन करने के लिए प्लगइन्स हैं, जिसके माध्यम से ये सर्वर गतिशील HTTP सामग्री उत्पन्न कर सकते हैं।
  • अधिकांश एप्लिकेशन सर्वर में वेब सर्वर उनके अभिन्न अंग के रूप में होता है, इसका मतलब है कि वेब सर्वर जो भी सक्षम है, ऐप सर्वर वह कर सकता है। इसके अतिरिक्त ऐप सर्वर में एप्लिकेशन स्तर सेवाओं जैसे कनेक्शन पूलिंग, ऑब्जेक्ट पूलिंग, लेन-देन सहायता, संदेश सेवाएं आदि का समर्थन करने के लिए घटक और विशेषताएं हैं।
  • जैसा कि वेब सर्वर गतिशील सामग्री के लिए स्थिर सामग्री और ऐप सर्वर के लिए अच्छी तरह से अनुकूल हैं, अधिकांश उत्पादन वातावरणों में ऐप सर्वर के लिए रिवर्स प्रॉक्सी के रूप में वेब सर्वर अभिनय होता है। इसका मतलब है कि पृष्ठ अनुरोध की सेवा करते समय, स्थिर सामग्री (जैसे कि चित्र / स्टेटिक HTML) वेब सर्वर द्वारा प्रदान की जाती है जो अनुरोध की व्याख्या करती है। किसी प्रकार की फ़िल्टरिंग तकनीक (ज्यादातर अनुरोधित संसाधन का विस्तार) का उपयोग करके वेब सर्वर डायनामिक सामग्री अनुरोध और पारदर्शी रूप से ऐप सर्वर की ओर अग्रसर होता है

इस तरह के विन्यास का उदाहरण अपाचे टोमैट HTTP सर्वर और ओरेकल (पूर्व में BEA) वेबलॉजिक सर्वर है। Apache Tomcat HTTP सर्वर वेब सर्वर है और Oracle WebLogic अनुप्रयोग सर्वर है।

कुछ मामलों में सर्वरों को कसकर एकीकृत किया जाता है जैसे कि IIS और .NET रनटाइम। IIS वेब सर्वर है। .NET रनटाइम वातावरण से लैस होने पर, IIS एप्लिकेशन सेवाएँ प्रदान करने में सक्षम है।


18
JBoss (अब WildFly) भी एप्लिकेशन सर्वर का एक प्रसिद्ध उदाहरण है: D
KNU

4
अच्छा स्पष्टीकरण, क्योंकि हम वेब सर्वर के बजाय एप्लिकेशन सर्वर का उपयोग कर सकते हैं, एक ही एप्लिकेशन के लिए वेब सर्वर और एप्लिकेशन सर्वर दोनों होने के क्या फायदे हैं? और प्रदर्शन बुद्धिमान सबसे अच्छा विकल्प क्या है?
लालिंडा संपत

33
"Apache Tomcat HTTP सर्वर वेब सर्वर है और Oracle WebLogic अनुप्रयोग सर्वर है।" तो सबसे पहले, Apache Tomcat और Apache HTTP सर्वर 2 अलग-अलग उत्पाद हैं। और यह वास्तव में एक सटीक कथन नहीं है। Apache Tomcat एक एप्लिकेशन सर्वर है। ज़रूर, यह वेब पेजों को भी परोस सकता है, लेकिन यह जावा को तैनात करने के लिए एक एप्लिकेशन सर्वर है। मुझे एहसास है कि "वेब सर्वर" शब्द का उपयोग बहुत कम होता है। लेकिन यह सिर्फ लोगों को भ्रमित करता है।
आयरनर्म

18
Apache Tomcat एक वेब सर्वर नहीं है, यह एक एप्लिकेशन सर्वर है जो जावा सर्वलेट चलाता है। Apache HTTP सर्वर एक वेब सर्वर है। Apache Tomcat HTTP सर्वर नाम का कोई सर्वर नहीं है।
अभिषेक पाठक

3
-1 Apache Tomcat और Apache HTTPD को भ्रमित करने के लिए। stackoverflow.com/questions/30632/…
बेकन बिट्स

154

यह स्पष्ट रूप से अंतर, समानता और कैसे दोनों संयोजन और सभी में काम कर सकते हैं, को समझने के लिए कुछ परिदृश्यों के साथ एक विस्तृत उत्तर है

एप्लिकेशन सर्वर एक शब्द है जिसे कभी-कभी वेब सर्वर के साथ मिलाया जाता है । जबकि एक वेब सर्वर मुख्य रूप से HTTP प्रोटोकॉल को संभालता है , एप्लिकेशन सर्वर कई अलग-अलग प्रोटोकॉल से संबंधित है, जिसमें HTTP तक, लेकिन सीमित नहीं है

वेब सर्वर का मुख्य काम साइट की सामग्री को प्रदर्शित करना है और एप्लिकेशन सर्वर तर्क के प्रभारी , उपयोगकर्ता और प्रदर्शित सामग्री के बीच बातचीत है। एप्लिकेशन सर्वर वेब सर्वर के साथ मिलकर काम कर रहा है , जहां एक प्रदर्शित करता है और दूसरा एक इंटरैक्ट करता है।

सर्वर और उसके क्लाइंट के बीच आगे-पीछे यात्रा करने वाली जानकारी केवल साधारण डिस्प्ले मार्कअप तक ही सीमित नहीं है, बल्कि दोनों के बीच बातचीत करने के लिए भी है।

ज्यादातर मामलों में, सर्वर एक घटक एपीआई के माध्यम से इस इंटरैक्शन को बनाता है , जैसे कि जे 2 ईई (जावा 2 प्लेटफ़ॉर्म) , ईजेबी (एंटरप्राइज जावाबीन) और अन्य विभिन्न एप्लिकेशन सॉफ़्टवेयर मॉडल।

यहां छवि विवरण दर्ज करें

एक उदाहरण:

उन परिदृश्यों के बीच अंतर को समझने का सबसे अच्छा तरीका जहां एक एप्लिकेशन सर्वर वेब सर्वर के साथ काम करता है। ऐसे परिदृश्य में जहां ऑनलाइन सर्वर स्टोर के माध्यम से नहीं है।

परिदृश्य 1: अनुप्रयोग सर्वर के बिना वेब सर्वर

आपके पास एक ऑनलाइन स्टोर है जिसमें केवल एक वेब सर्वर और कोई एप्लिकेशन सर्वर नहीं है। साइट एक प्रदर्शन प्रदान करेगी जहां आप एक उत्पाद चुन सकते हैं। जब आप कोई क्वेरी सबमिट करते हैं, तो साइट लुकअप करती है और HTML परिणाम को उसके क्लाइंट को वापस करती है। वेब सर्वर आपकी क्वेरी सीधे डेटाबेस सर्वर को भेजता है (धैर्य रखें, मैं इसे हमारे अगले डला में समझाता हूं) और प्रतिक्रिया की प्रतीक्षा करता हूं। एक बार प्राप्त करने के बाद, वेब सर्वर एक HTML फ़ाइल में प्रतिक्रिया तैयार करता है और इसे आपके वेब ब्राउज़र को भेजता है। सर्वर और डेटाबेस सर्वर के बीच यह आगे-पीछे का संचार हर बार क्वेरी चलने पर होता है।

परिदृश्य 2: एक एप्लिकेशन सर्वर के साथ वेब सर्वर

यदि आप जिस क्वेरी को चलाना चाहते हैं, वह पहले ही हो चुकी है और तब से कोई डेटा नहीं बदला गया है, तो सर्वर डेटाबेस सर्वर को अनुरोध भेजने के बिना परिणाम उत्पन्न करेगा। यह एक वास्तविक समय क्वेरी की अनुमति देता है जहां एक दूसरा ग्राहक उसी जानकारी तक पहुंच सकता है और डेटाबेस सर्वर पर एक और डुप्लिकेट क्वेरी भेजे बिना वास्तविक समय, विश्वसनीय जानकारी प्राप्त कर सकता है। सर्वर मूल रूप से डेटाबेस सर्वर और वेब सर्वर के बीच एक मध्यवर्ती के रूप में कार्य करता है। यह खींची गई जानकारी को पहले परिदृश्य में पुन: प्रयोज्य होने की अनुमति देता है, क्योंकि यह जानकारी एक विशेष और "अनुकूलित" HTML पृष्ठ में एम्बेडेड है, यह पुन: प्रयोज्य प्रक्रिया नहीं है। एक दूसरे ग्राहक को फिर से जानकारी का अनुरोध करना होगा और अनुरोधित -highly अक्षम जानकारी के साथ एक और HTML एम्बेडेड पृष्ठ प्राप्त करना होगा।

इस तरह के कई जटिल कार्यों का समर्थन करने के लिए इस सर्वर में एक अतिरेक होना चाहिए, वास्तविक समय में खींच रहे सभी डेटा को संभालने के लिए बड़ी प्रसंस्करण शक्ति और उच्च मात्रा में रैम।

उम्मीद है की यह मदद करेगा।


10
यह वेब अनुप्रयोगों के लिए भी सटीक / भ्रामक नहीं है (यानी एप्लिकेशन-सर्वर कोई भी वेब ऐप पर लागू नहीं होता है)। केवल वेब को ध्यान में रखते हुए: एक वेब सर्वर में वेब अनुरोधों (http) को संभालने के लिए सॉफ्टवेयर (Apache, nginx) शामिल हैं। एक एप्लिकेशन सर्वर में एप्लिकेशन शामिल होता है (जैसे php कोड)। वे एक ही मशीन हो सकते हैं, वे नहीं कर सकते हैं - उदाहरण के लिए एक मशीन (वेब ​​सर्वर) पर nginx होना सामान्य माना जाएगा। एक अलग मशीन (एप्लिकेशन सर्वर) पर php-fpm के अनुरोध को अग्रेषित करना, जिसमें स्वयं कोई भी नहीं है http एक्सेस (केवल php-fpm के लिए पोर्ट को उजागर करना)।
AD7six

@ AD7six एक वेब सर्वर विशेष रूप से HTTP अनुरोधों को संभालता है, जबकि एक एप्लिकेशन सर्वर HTTP सहित किसी भी संख्या में प्रोटोकॉल के माध्यम से आवेदन कार्यक्रमों के लिए व्यावसायिक तर्क को संभालता है।
दुरई अमूथन।

मेरा कहना है कि एप्लिकेशन सर्वर http अनुरोधों को संभाल सकता है , यह किसी भी तरह से आवश्यकता नहीं है। the application server deals with several different protocols, including, but not limited, to HTTP<- जो कहता है कि यह निश्चित रूप से http अनुरोधों को संभालता है - यह सटीक नहीं है।
AD7six

6
दिए गए उदाहरणों को फिर से पढ़ने के बाद, मुझे यहाँ कोई वास्तविक स्पष्टता नहीं दिखती है - विवरण ज्यादातर कैशिंग से संबंधित हैं। क्या स्पष्ट है कि एक वेबसर्वर सॉफ्टवेयर है, एक अनुप्रयोग सॉफ्टवेयर है। यदि उन्हें उसी मशीन पर तैनात किया जाता है तो मशीन को आपकी पसंद के अनुसार भेजा जा सकता है। यदि वे अलग-अलग मशीनों पर हैं, तो वेबसर्वर को चलाने वाले को वेबसर्वर के रूप में और ऐप को चलाने वाले को ऐप के रूप में चलाना सामान्य होगा। आप सामान्य रूप से चीजों को लोड और लोड संतुलन के अनुसार विभाजित करेंगे। कुल मिलाकर मुझे लगता है कि यह उत्तर उपयोगी कुछ भी नहीं जोड़ता है।
AD7six

@ AD7six मेरा उत्तर अन्य उत्तरों को पूरक करने के लिए है, अर्थात अन्य उत्तर पहले से ही इसका मतलब है कि आपने इसके बारे में विस्तार से पूछा है।
दुरई अमुथन।

136

दोनों शर्तें बहुत ही सामान्य हैं, एक दूसरे के साथ और कुछ मामलों में इसके विपरीत।

  • वेब सर्वर : http प्रोटोकॉल का उपयोग करके वेब पर सामग्री परोसता है।

  • एप्लिकेशन सर्वर : व्यावसायिक तर्क और प्रक्रियाओं को होस्ट और उजागर करता है।

मुझे लगता है कि मुख्य बिंदु यह है कि वेब सर्वर http प्रोटोकॉल के माध्यम से सब कुछ उजागर करता है, जबकि एप्लिकेशन सर्वर इसके लिए प्रतिबंधित नहीं है।

उस ने कहा, कई परिदृश्यों में आप पाएंगे कि वेब सर्वर का उपयोग एप्लिकेशन सर्वर के फ्रंट-एंड को बनाने के लिए किया जा रहा है, अर्थात यह उन वेब पेजों के एक सेट को उजागर करता है जो उपयोगकर्ता को व्यावसायिक नियमों के साथ बातचीत करने की अनुमति देते हैं। अनुप्रयोग सर्वर।


66

वेब सर्वर

भागो python -m 'SimpleHTTPServer'और http: // localhost: 8080 पर जाएं । आप जो देख रहे हैं, वह अपने कामकाज में एक वेब सर्वर है। सर्वर बस आपके कंप्यूटर पर संग्रहीत HTTP पर फ़ाइलों की सेवा करता है। मुख्य बिंदु यह है कि यह सब HTTP प्रोटोकॉल के शीर्ष पर किया गया है। उदाहरण के लिए एफ़टीपी सर्वर भी मौजूद हैं जो बिल्कुल एक ही काम करते हैं (संग्रहीत फ़ाइलों की सेवा) लेकिन एक अलग प्रोटोकॉल के शीर्ष पर।

अनुप्रयोग सर्वर

कहें कि हमारे पास एक छोटा अनुप्रयोग है जैसे नीचे ( फ्लास्क से स्निपेट )।

@app.route('/')
def homepage():
    return '<html>My homepage</html>'

@app.route('/about')
def about():
    return '<html>My name is John</html>'

छोटा उदाहरण प्रोग्राम URL /को फ़ंक्शन homepage()और फ़ंक्शन को मैप /aboutकरता है about()

इस कोड को चलाने के लिए हमें एक एप्लिकेशन सर्वर (जैसे Gunicorn) की आवश्यकता होती है - एक प्रोग्राम या मॉड्यूल जो क्लाइंट से अनुरोधों को सुन सकता है और हमारे कोड का उपयोग करके, कुछ गतिशील रूप से वापस कर सकता है। उदाहरण में हम बस कुछ बहुत खराब HTML लौटाते हैं।

अन्य सभी लोगों के बारे में व्यावसायिक तर्क क्या है? खैर, चूंकि URL विशेष रूप से हमारे कोडबेस में कहीं पर मैप करता है, हम काल्पनिक रूप से कुछ तर्क दिखा रहे हैं कि हमारा प्रोग्राम कैसे काम करता है।


recapping

वेब सर्वर - कहीं संग्रहीत फ़ाइलों (सबसे आम तौर पर .css, .html, .js) परोसता है। आम वेब सर्वर Apache, Nginx या यहां तक ​​कि Python's SimpleHTTPServer हैं।

अनुप्रयोग सर्वर - मक्खी पर उत्पन्न फ़ाइलों को कार्य करता है। अनिवार्य रूप से अधिकांश वेब सर्वरों में कुछ प्रकार के प्लगइन्स होते हैं या यहां तक ​​कि अंतर्निहित कार्यक्षमता के साथ ऐसा करने के लिए आते हैं। वहाँ भी सख्त अनुप्रयोग सर्वर जैसे Gunicorn (Python), Unicorn (Ruby), uWSGI (Python), आदि मौजूद हैं।

ध्यान दें कि आप वास्तव में एप्लिकेशन सर्वर के कोड के साथ एक वेब सर्वर का निर्माण कर सकते हैं। यह कुछ मामलों में विकास के दौरान किया जाता है जहां आप अपने कंप्यूटर पर चलने वाले विभिन्न सर्वरों का गजिलियन नहीं करना चाहते हैं।


यह सबसे अच्छा और सबसे रसीला जवाब है। मैं सोच रहा था कि क्या वेब सर्वर को एप्लिकेशन सर्वर का सबसेट माना जा सकता है। अभी मैं इसके बारे में सोच रहा हूं कि एक वेब सर्वर एक गेट्टर विधि की तरह है और एक एप्लिकेशन सर्वर एक फैक्ट्री पद्धति की तरह है (जहां URL एक

8
उफ्फ .. अंत में, पायथन परिप्रेक्ष्य देने के लिए धन्यवाद। भाषा अज्ञेय के रूप में इस विषय लग सकता है, यह नहीं है। कोई व्यक्ति जिसने कभी ईजेबी का उपयोग नहीं किया है, वह जावा उन्मुख उत्तरों को स्पष्ट रूप से नहीं समझेगा।
विकास

धन्यवाद। "इस कोड को चलाने के लिए हमें एक एप्लिकेशन सर्वर की आवश्यकता है", क्या आप निर्दिष्ट कर सकते हैं कि फ्लास्क प्रोग्राम को चलाने के लिए एप्लिकेशन सर्वर क्या है?
टिम

यह एक सटीक उत्तर है
फरीद

65

जैसा कि रुतेश और जेमर्स्वेरा ने बताया, भेद फजी है। ऐतिहासिक रूप से, वे अलग-अलग थे, लेकिन 90 की इन दो अलग-अलग श्रेणियों के माध्यम से सुविधाओं को मिश्रित किया गया और प्रभावी रूप से विलय कर दिया गया। इस बिंदु पर शायद यह कल्पना करना सबसे अच्छा है कि "ऐप सर्वर" उत्पाद श्रेणी "वेब सर्वर" श्रेणी का एक सख्त सुपरसेट है।

कुछ इतिहास। मोज़ेक ब्राउज़र और हाइपरलिंक की गई सामग्री के शुरुआती दिनों में, इस चीज़ को एक "वेब सर्वर" कहा जाता है, जो HTTP पर वेब पेज की सामग्री और छवियों को प्रस्तुत करता है। अधिकांश सामग्री स्थिर थी, और HTTP 1.0 प्रोटोकॉल केवल फ़ाइलों को जहाज करने का एक तरीका था। सीजीआई क्षमता को शामिल करने के लिए त्वरित रूप से "वेब सर्वर" श्रेणी विकसित हुई - गतिशील सामग्री उत्पन्न करने के लिए प्रत्येक वेब अनुरोध पर प्रभावी ढंग से एक प्रक्रिया शुरू करना। HTTP भी परिपक्व हो गई और कैशिंग, सुरक्षा और प्रबंधन सुविधाओं के साथ उत्पाद अधिक परिष्कृत हो गए। जैसे-जैसे तकनीक परिपक्व होती गई, हमें Kiva और NetDynamics से कंपनी-विशिष्ट जावा-आधारित सर्वर-साइड तकनीक मिली, जो अंततः JSP में विलीन हो गई। Microsoft ने एएसपी को जोड़ा, मुझे लगता है कि 1996 में, विंडोज एनटी 4.0 के लिए। स्थिर वेब सर्वर ने कुछ नई तरकीबें सीखीं, ताकि यह एक प्रभावी "

एक समानांतर श्रेणी में, ऐप सर्वर विकसित हुआ था और लंबे समय तक अस्तित्व में था। कंपनियों ने Tixedo, TopEnd, Encina जैसे यूनिक्स के लिए उत्पाद वितरित किए जो दार्शनिक रूप से मेनफ्रेम एप्लिकेशन प्रबंधन और IMS और CICS जैसे निगरानी वातावरण से प्राप्त हुए थे। Microsoft की पेशकश Microsoft Transaction Server (MTS) थी, जो बाद में COM + में विकसित हुई। इन उत्पादों में से अधिकांश "बंद" उत्पाद-विशिष्ट संचार प्रोटोकॉल "वसा" क्लाइंट को सर्वर से कनेक्ट करने के लिए निर्दिष्ट करते हैं। (एनसीना के लिए, कॉम्स प्रोटोकॉल डीसीई आरपीसी था; एमटीएस के लिए यह डीसीओएम था; आदि) 1995/96 में, इन पारंपरिक ऐप सर्वर उत्पादों ने पहले गेटवे के माध्यम से बुनियादी HTTP संचार क्षमता को एम्बेड करना शुरू किया। और लाइनें धुंधली होने लगीं।

वेब सर्वर अधिक भार, अधिक सुगमता और बेहतर सुविधाओं को संभालने के संबंध में अधिक परिपक्व हो गए। ऐप सर्वर ने अधिक से अधिक HTTP- आधारित संचार क्षमता प्रदान की।

इस बिंदु पर "ऐप सर्वर" और "वेब सर्वर" के बीच की रेखा एक फजी है। लेकिन लोग जोर देने के रूप में शर्तों का अलग-अलग उपयोग करना जारी रखते हैं। जब कोई "वेब सर्वर" कहता है, तो आप अक्सर HTTP-केंद्रित, वेब UI, उन्मुख ऐप्स के बारे में सोचते हैं। जब कोई "ऐप सर्वर" कहता है, तो आप सोच सकते हैं "भारी भार, एंटरप्राइज़ सुविधाएँ, लेनदेन और कतार, मल्टी-चैनल संचार (HTTP + अधिक)। लेकिन अक्सर यह एक ही उत्पाद है जो कार्यभार आवश्यकताओं के दोनों सेटों को पूरा करता है।

  • WebSphere, IBM के "ऐप सर्वर" का अपना बंडल वेब सर्वर है।
  • वेबलॉग, एक और पारंपरिक ऐप सर्वर, इसी तरह।
  • Windows, जो Microsoft का ऐप सर्वर है (इसके फ़ाइल और प्रिंट सर्वर, मीडिया सर्वर आदि के अलावा), आईआईएस को बंडल करता है।

बहुत स्पष्ट जवाब। लेकिन क्या आप 'नई चाल' के बारे में थोड़ा और विस्तार कर सकते हैं जिसने एक वेब सर्वर को एप्लिकेशन सर्वर के रूप में प्रदर्शन करने की अनुमति दी है।
क़ाज़ी इरफ़ान

3
"नई ट्रिक्स" का अर्थ है, सर्वर साइड लॉजिक चलाना। एएसपी या अन्य की तरह स्क्रिप्टिंग तर्क। मूल "वेब सर्वर" फाइल सिस्टम से स्थिर सामग्री लौटाता है। हम अब उससे एक लंबा सफर तय कर चुके हैं।
चीजो

36

जैसा कि कई पहले कहा है, वेब सर्वर HTTP याचिकाओं को संभालते हैं, जबकि एप्लिकेशन सर्वर वितरित घटकों के लिए याचिकाओं को संभालते हैं। तो, शायद अंतर को समझने का सबसे आसान तरीका दो उत्पादों की तुलना करना है जो प्रोग्रामिंग वातावरण के संबंध में वे पेश करते हैं।

वेब सर्वर -> प्रोग्रामिंग पर्यावरण

IIS: ASP (.NET)

टॉम्कट: सर्वलेट

जेट्टी: सर्वलेट

अपाचे: पीएचपी, सीजीआई

आवेदन सर्वर -> प्रोग्रामिंग पर्यावरण

एमटीएस: COM +

WAS: EJB

JBoss: EJB

WebLogic अनुप्रयोग सर्वर: EJB

महत्वपूर्ण अंतर यह है कि एप्लिकेशन सर्वर कुछ वितरित घटक प्रौद्योगिकी का समर्थन करते हैं, दूरस्थ मंगलाचरण और वितरित लेनदेन जैसी सुविधाएँ प्रदान करते हैं, जैसे जावा दुनिया में EJB या Microsoft प्लेटफ़ॉर्म पर COM + । Http सर्वर अक्सर Microsoft या सर्वलेट के आधार पर ASP (.NET) जैसे स्क्रिप्टिंग, अक्सर कुछ और सरल प्रोग्रामिंग वातावरणों का समर्थन करता है, अपाचे के मामले में जावा या PHP और CGI के मामले में JSP और कई अन्य सहित।

लोड-बैलेंसिंग, क्लस्टरिंग, सेशन-फेलओवर, कनेक्शन पूलिंग आदि जैसी अन्य क्षमताएं जो पहले एप्लिकेशन सर्वर के दायरे में हुआ करती थीं, वे वेब सर्वर पर सीधे या कुछ तृतीय पक्ष उत्पादों के माध्यम से उपलब्ध हो रही हैं।

अंत में, यह ध्यान देने योग्य है कि तस्वीर को स्प्रिंग फ्रेमवर्क जैसे "हल्के कंटेनरों" से और विकृत किया गया है, जो अक्सर अधिक सरल तरीके से और एप्लिकेशन सर्वर इन्फ्रास्ट्रक्चर के बिना एप्लिकेशन सर्वर के उद्देश्य को पूरक करता है। और चूंकि अनुप्रयोगों में वितरण पहलू वितरित घटक से सेवा प्रतिमान और SOA वास्तुकला की ओर बढ़ रहा है, इसलिए पारंपरिक सर्वर सर्वर के लिए कम और कम जगह बची है।


क्या आपके द्वारा सूचीबद्ध किसी भी एप्लिकेशन सर्वर का उपयोग http वेब सर्वर जैसे अपाचे http के रूप में किया जा सकता है?
लर्निंग

22

वेब सर्वर और एप्लिकेशन सर्वर के बीच मुख्य अंतर यह है कि वेब सर्वर का अर्थ स्थैतिक पृष्ठों जैसे HTML और CSS की सेवा करना है, जबकि एप्लिकेशन सर्वर सर्वर साइड कोड जैसे JSP, सर्वलेट या EJB को निष्पादित करके गतिशील सामग्री उत्पन्न करने के लिए जिम्मेदार है।

मुझे किसका उपयोग करना चाहिए?
एक बार जब आप वेब और एप्लिकेशन सर्वर और वेब कंटेनरों के बीच का अंतर जान लेते हैं, तो यह पता लगाना आसान होता है कि उनका उपयोग कब करना है। web serverयदि आप स्थैतिक वेब पेजों की सेवा कर रहे हैं, तो आपको अपाचे HTTPD की आवश्यकता होगी । अगर आपके पास डायनामिक कंटेंट जेनरेट करने के लिए सिर्फ JSP और सर्वलेट के साथ जावा एप्लीकेशन है तो आपको web containersTomcat या Jetty की जरूरत है । हालांकि, अगर आपके पास EJB का उपयोग करके जावा EE एप्लिकेशन है , तो आपकोapplication server JBoss, WebSphere या Oracle के WebLogic जैसे पूर्ण विकसित की आवश्यकता वाले लेनदेन, मैसेजिंग और अन्य फैंसी फीचर्स का वितरण करना चाहिए ।

वेब कंटेनर वेब सर्वर का एक हिस्सा है और वेब सर्वर अनुप्रयोग सर्वर का एक हिस्सा है।

अनुप्रयोग सर्वर

वेब सर्वर वेब कंटेनर से बना होता है, जबकि एप्लिकेशन सर्वर वेब कंटेनर और साथ ही EJB कंटेनर से बना होता है।


"वेब सर्वर वेब कंटेनर से बना है": जैसा कि youtu.be/ATObcDPLa40 इस वीडियो के अनुसार , यह गलत है
वैष्णव रमेश त्रिशूर

20

संक्षेप में एक वेब सर्वर एक सर्वर है जो http के माध्यम से उपयोगकर्ताओं को वेब पेज प्रदान करता है। एक एप्लिकेशन सर्वर एक सर्वर है जो सिस्टम के लिए व्यावसायिक तर्क को होस्ट करता है। यह अक्सर लंबे समय तक चलने वाली / बैच प्रक्रियाओं और / या मानव उपभोग (REST / JSON सेवाओं, SOAP, RPC, आदि) के लिए नहीं होने वाली इंटरोप सेवाओं दोनों को होस्ट करता है।


2
'होस्ट की व्यावसायिक तर्क' शब्द का क्या अर्थ है? यह कैसे किया जाता है?
TwiggedToday

क्या वेब सेवाओं के माध्यम से ग्राहक के लिए व्यावसायिक तर्क उजागर होता है?
TwiggedToday

यह वेब-सेवाओं के माध्यम से परोसा जा सकता है, या इसे किसी भी अन्य इंटरफ़ेस (टीसीपी, एमक्यू, एक शेयर पर फ्लैट फाइलें (मैं आखिरी सलाह नहीं देता हूं) द्वारा सेवा की जा सकती है।
सी। रॉस

यह भ्रामक हो सकता है। एप्लिकेशन सर्वर कुछ भी होस्ट नहीं करता है। आपका कोड व्यावसायिक तर्क को होस्ट करता है और एप्लिकेशन सर्वर उस और उन वेब पृष्ठों के बीच गोंद के रूप में काम करता है जो उपयोगकर्ता अनुरोध करते हैं।
पिथिकोस

18

एक वेब सर्वर विशेष रूप से HTTP / HTTPS अनुरोधों को संभालता है। यह HTTP / HTTPS प्रोटोकॉल का उपयोग करके वेब पर सामग्री प्रदान करता है।

एक एप्लिकेशन सर्वर संभवतः HTTP सहित किसी भी संख्या के प्रोटोकॉल के माध्यम से आवेदन कार्यक्रमों के लिए व्यावसायिक तर्क प्रदान करता है। एप्लिकेशन प्रोग्राम इस तर्क का उपयोग कर सकता है जैसे यह किसी ऑब्जेक्ट पर एक विधि को कॉल करेगा। ज्यादातर मामलों में, सर्वर इस व्यावसायिक तर्क को एक घटक एपीआई के माध्यम से उजागर करता है, जैसे कि ईजेबी (एंटरप्राइज जावाबीन) घटक मॉडल जो जावा ईई (जावा प्लेटफॉर्म, एंटरप्राइज एडिशन) एप्लिकेशन सर्वर पर पाया जाता है। मुख्य बिंदु यह है कि वेब सर्वर http प्रोटोकॉल के माध्यम से सब कुछ उजागर करता है, जबकि एप्लिकेशन सर्वर इसके लिए प्रतिबंधित नहीं है। एक एप्लिकेशन सर्वर इस प्रकार एक वेब सर्वर की तुलना में बहुत अधिक सेवाएं प्रदान करता है जिसमें आमतौर पर शामिल होते हैं:

  • ए (मालिकाना या नहीं) एपीआई
  • लोड संतुलन, पर विफल ...
  • वस्तु जीवन चक्र प्रबंधन
  • राज्य प्रबंधन (सत्र)
  • संसाधन प्रबंधन (उदाहरण के लिए डेटाबेस से कनेक्शन पूल)

अधिकांश एप्लिकेशन सर्वर में वेब सर्वर उनके अभिन्न अंग के रूप में होता है, इसका मतलब है कि वेब सर्वर जो भी सक्षम है, ऐप सर्वर वह कर सकता है। इसके अतिरिक्त ऐप सर्वर में एप्लिकेशन स्तर सेवाओं जैसे कनेक्शन पूलिंग, ऑब्जेक्ट पूलिंग, लेनदेन समर्थन, मैसेजिंग सेवाओं आदि का समर्थन करने के लिए घटक और विशेषताएं हैं।

एक प्रोग्राम सर्वर प्रोग्राम लॉजिक को निष्पादित करने के लिए वेब सर्वर पर चला सकता है (लेकिन हमेशा नहीं करता है), जिसके परिणाम तब वेब सर्वर द्वारा दिए जा सकते हैं। यह वेब सर्वर / एप्लिकेशन सर्वर परिदृश्य का एक उदाहरण है। Microsoft दुनिया में एक अच्छा उदाहरण इंटरनेट सूचना सर्वर / SharePoint सर्वर संबंध है। IIS एक वेब सर्वर है; SharePoint एक एप्लिकेशन सर्वर है। SharePoint IIS के "शीर्ष पर" बैठता है, विशिष्ट तर्क निष्पादित करता है, और IIS के माध्यम से परिणाम प्रदान करता है। जावा दुनिया में, उदाहरण के लिए Apache और Tomcat के साथ एक समान परिदृश्य है।

जैसा कि वेब सर्वर गतिशील सामग्री के लिए स्थिर सामग्री और ऐप सर्वर के लिए अच्छी तरह से अनुकूल हैं, अधिकांश उत्पादन वातावरणों में ऐप सर्वर के लिए रिवर्स प्रॉक्सी के रूप में वेब सर्वर अभिनय होता है। इसका मतलब है कि पेज अनुरोध करते समय, स्थिर सामग्री जैसे चित्र / स्टेटिक html वेब सर्वर द्वारा प्रदान किया जाता है जो अनुरोध की व्याख्या करता है। किसी प्रकार की फ़िल्टरिंग तकनीक (ज्यादातर अनुरोधित संसाधन का विस्तार) का उपयोग करके वेब सर्वर डायनामिक सामग्री अनुरोध और पारदर्शी रूप से ऐप सर्वर की ओर अग्रसर होता है।

ऐसे कॉन्फ़िगरेशन का उदाहरण अपाचे HTTP सर्वर और BEA WebLogic सर्वर है। Apache HTTP Server वेब सर्वर है और BEA WebLogic एप्लीकेशन सर्वर है। कुछ मामलों में, सर्वरों को कसकर एकीकृत किया जाता है जैसे कि IIS और .NET रनटाइम। IIS वेब सर्वर है। .NET रनटाइम वातावरण से लैस जब IIS एप्लिकेशन सेवाएं प्रदान करने में सक्षम होता है


Web Server                               Programming Environment
Apache                                   PHP, CGI
IIS (Internet Information Server)        ASP (.NET)
Tomcat                                   Servlet
Jetty                                    Servlet

Application Server                       Programming Environment
WAS (IBM's WebSphere Application Server) EJB
WebLogic Application Server (Oracle's)   EJB
JBoss AS                                 EJB
MTS                                      COM+

2
अन्य सामान का कुछ उल्लेख है, लेकिन बहुत मुझे साहित्यिक चोरी की तरह लगता है। अंत में सूची की तरह, जैसे कि डैन के पोस्ट से कॉपी की गई। और "... ऐप सर्वर के लिए रिवर्स प्रॉक्सी ..." अंत में उदाहरण के रूप में HTTP सर्वर और BEA WebLogic सर्वर का उपयोग करते हुए एक ही चीज़ बहुत कुछ रुतेश माखीजानी ने लिखा।
लड़का

10

एक एप्लिकेशन सर्वर को आमतौर पर लंबे समय तक चलने वाली प्रक्रियाओं को सुविधाजनक बनाने के लिए डिज़ाइन और तैनात किया जाता है जो अधिक संसाधन गहन भी होगा।

एक वेब सर्वर का उपयोग शॉर्ट बर्स्ट के लिए किया जाता है जो आमतौर पर संसाधन गहन नहीं होते हैं। यह ज्यादातर वेब आधारित यातायात की सुविधा के लिए है।


10

इन दोनों के बीच की सीमा कभी इतनी पतली हो रही है।

एप्लिकेशन सर्वर ग्राहकों के लिए व्यावसायिक तर्क को उजागर करते हैं। इसका मतलब है कि एप्लिकेशन सर्वर में व्यावसायिक तर्क करने के लिए विधियों का एक सेट शामिल होता है (विशेष रूप से हालांकि, यहां तक ​​कि इस पर सॉफ़्टवेयर चलाने के लिए अनुमति देने वाला कंप्यूटर भी हो सकता है)। तो यह केवल वांछित परिणाम देगा, HTML सामग्री नहीं। (एक विधि कॉल के समान)। तो यह कड़ाई से HTTP आधारित नहीं है।

लेकिन वेब सर्वर एचटीएमएल कंटेंट को वेब ब्राउजर्स (कड़ाई से एचटीटीपी आधारित) पास करते हैं। वेब सर्वर केवल स्थिर वेब संसाधनों को संभालने में सक्षम थे, लेकिन सर्वर साइड स्क्रिप्टिंग के उद्भव ने वेब सर्वर को गतिशील सामग्री को भी संभालने की अनुमति दी। जहां एक वेब सर्वर अनुरोध में लेता है और क्लाइंट को भेजे जाने वाले HTML कंटेंट को बनाने के लिए इसे संबंधित स्क्रिप्ट (PHP, JSP, CGI स्क्रिप्ट आदि) के लिए निर्देशित करता है। सामग्री प्राप्त होने के बाद, वेब सर्वर क्लाइंट को HTML पेज भेजेगा।

हालाँकि, आजकल ये दोनों सर्वर एक साथ उपयोग किए जाते हैं। जहां वेब सर्वर अनुरोध लेता है और फिर HTML सामग्री बनाने के लिए एक स्क्रिप्ट को कॉल करता है। फिर, स्क्रिप्ट HTML सामग्री को भरने के लिए फिर से एक एप्लिकेशन सर्वर LOGIC (जैसे लेन-देन का विवरण पुनर्प्राप्त करेगा) को कॉल करेगा।

इसलिए दोनों सर्वरों का प्रभावी ढंग से उपयोग किया जाता है।

इसलिए .... हम सुरक्षित रूप से कह सकते हैं कि आजकल, ज्यादातर मामलों में, वेब सर्वर का उपयोग एप्लिकेशन सर्वर के सबसेट के रूप में किया जाता है। लेकिन नाटकीय रूप से यह मामला नहीं है।

मैंने इस विषय के बारे में कई लेख पढ़े हैं और इस लेख को काफी उपयोगी पाया है ।


9

जावा शब्दों में, एक और है: वेब कंटेनर (या अधिक सख्ती से, सर्वलेट कंटेनर)। यह वेब सर्वर और एप्लिकेशन सर्वर के बीच में है।

जावा के संदर्भ में एक वेब कंटेनर एक एप्लिकेशन सर्वर है जो मूल रूप से केवल जावा ईई के जेएसपी / सर्वलेट भाग को लागू करता है और इसमें जावा ईई के कई मुख्य भागों का अभाव होता है, जैसे कि ईजेबी समर्थन। एक उदाहरण अपाचे टोमाकट है।


8

एक एप्लिकेशन सर्वर एक मशीन है (कुछ मशीन पर चलने वाली एक निष्पादन योग्य प्रक्रिया, वास्तव में) जो "किसी भी चैनल पर (किसी भी प्रोटोकॉल का उपयोग करके) सुनता है, जो भी सेवा प्रदान करता है उसके लिए ग्राहकों से अनुरोध के लिए, और फिर उन अनुरोधों के आधार पर कुछ करता है। (ग्राहक के लिए एक रिस्पांस शामिल हो भी सकता है और नहीं भी)

एक वेब सर्वर एक मशीन पर चलने वाली प्रक्रिया है जो विशेष रूप से "इंटरनेट" प्रोटोकॉल, (http, https, ftp, आदि) में से एक का उपयोग करके टीसीपी / आईपी चैनल पर "सुनता है" और जो कुछ भी करता है वह आने वाले अनुरोधों के आधार पर करता है। .. आम तौर पर, (मूल रूप से परिभाषित), यह प्राप्त / उत्पन्न होता है और क्लाइंट को एक html वेब पेज लौटाता है, या तो सर्वर पर स्थिर html फ़ाइल से लाया जाता है, या आने वाले क्लाइंट अनुरोध में मापदंडों के आधार पर गतिशील रूप से निर्मित होता है।


3
क्या आप स्नान के मामलों के लिए उदाहरण दे सकते हैं।
5

क्या आप कृपया दोनों के उदाहरण प्रदान कर सकते हैं? धन्यवाद।
लर्निंग

8

एक वेब सर्वर वेब पेजों की सेवा के लिए HTTP प्रोटोकॉल चलाता है। एक प्रोग्राम सर्वर प्रोग्राम लॉजिक को निष्पादित करने के लिए वेब सर्वर पर चला सकता है (लेकिन हमेशा नहीं करता है), जिसके परिणाम तब वेब सर्वर द्वारा दिए जा सकते हैं। यह वेब सर्वर / एप्लिकेशन सर्वर परिदृश्य का एक उदाहरण है।

Microsoft दुनिया में एक अच्छा उदाहरण इंटरनेट सूचना सर्वर / SharePoint सर्वर संबंध है। IIS एक वेब सर्वर है; SharePoint एक एप्लिकेशन सर्वर है। SharePoint IIS के "शीर्ष पर" बैठता है, विशिष्ट तर्क निष्पादित करता है, और IIS के माध्यम से परिणाम प्रदान करता है।

जावा दुनिया में, उदाहरण के लिए Apache और Tomcat के साथ एक समान परिदृश्य है।


8

पहले हाथ पर, एक वेब सर्वर HTTP प्रोटोकॉल पर वेब सामग्री (HTML और स्थिर सामग्री) परोसता है। दूसरी ओर, एक एप्लिकेशन सर्वर एक कंटेनर होता है, जिस पर आप एन-टियर आर्किटेक्चर में HTTP सहित विभिन्न प्रोटोकॉल के माध्यम से क्लाइंट लॉजिक के लिए व्यावसायिक तर्क और प्रक्रियाओं का निर्माण और खुलासा कर सकते हैं।

एक एप्लिकेशन सर्वर इस प्रकार एक वेब सर्वर की तुलना में बहुत अधिक सेवाएं प्रदान करता है जिसमें आमतौर पर शामिल होते हैं:

  • ए (मालिकाना या नहीं) एपीआई
  • वस्तु जीवन चक्र प्रबंधन,
  • राज्य प्रबंधन (सत्र),
  • संसाधन प्रबंधन (उदाहरण के लिए डेटाबेस से कनेक्शन पूल),
  • लोड संतुलन, पर विफल ...

AFAIK, ATG डायनेमो 90 के दशक के उत्तरार्ध में (ऊपर की परिभाषा के अनुसार) बहुत पहले एप्लिकेशन सर्वर में से एक था। 2000 की शुरुआत में, यह जैसे कुछ मालिकाना आवेदन सर्वर के शासनकाल था ColdFusion (CFML के रूप में), broadvision (सर्वर साइड जावास्क्रिप्ट के रूप में), आदि लेकिन कोई भी वास्तव में जावा अनुप्रयोग सर्वर युग बच गई।


6

बुनियादी समझ :

क्लाइंट सर्वर आर्किटेक्चर में

सर्वर:> जो अनुरोधों को पूरा करता है।

ग्राहक:> जो सेवा का उपभोग करता है।

वेब सर्वर और एप्लीकेशन सर्वर दोनों सॉफ्टवेयर एप्लीकेशन हैं जो सर्वर के रूप में अपने क्लाइंट के लिए काम करते हैं।

उनके उपयोग के स्थान के आधार पर उन्हें उनके नाम मिले।

Web server :> serve web content
           :> Like Html components
           :> Like Javascript components
           :> Other web components like images,resource files
           :> Supports mainly web protocols like http,https.
           :> Supports web Request & Response formats.

उपयोग -

      we require low processing rates,

      regular processing practices involves.

उदा: सभी फ्लैट सर्वर आम तौर पर उपलब्ध रेडी-मेड होते हैं जो केवल वेब आधारित सामग्री परोसते हैं।

Application server :> Serve application content/component data(Business data).
                   :> These are special kind which are custom written 
                      designed/engineered for specific
                      purpose.some times fully unique in 
                      their way and stands out of the crowd. 

                   :> As these serves different types of data/response contents
                   :> So we can utilize these services for mobile client,web 
                      clients,intranet clients. 
                   :> Usually application servers are services offered on different 
                      protocols.    
                   :> Supports different Request& Response formats.

उपयोग -

      we require multi point processing,

      specialized processing techniques involves like for AI.

जैसे: Google मैप्स सर्वर, Google सर्च सर्वर, Google डॉक्स सर्वर, Microsoft 365 सर्वर, AI के लिए Microsoft कंप्यूटर विज़न सर्वर।

हम उन्हें 4-स्तरीय / n-tier वास्तुकला में स्तरीय / पदानुक्रम के रूप में मान सकते हैं।

 So they can provide 
                    load balancing,
                    multiple security levels,
                    multiple active points,
                    even they can provide different request processing environments.

मानक वास्तुकला उपमाओं के लिए कृपया इस लिंक का अनुसरण करें:

https://docs.microsoft.com/en-us/previous-versions/msp-np/ee658120(v%3dpandp.10)


5

सबसे बड़ा अंतर एक वेब सर्वर HTTP अनुरोधों को संभालता है, जबकि एक एप्लिकेशन सर्वर किसी भी प्रोटोकॉल पर व्यापार तर्क निष्पादित करेगा।


5

वास्तव में Apache एक वेब सर्वर है और Tomcat एक एप्लिकेशन सर्वर है। जब HTTP अनुरोध वेब सर्वर पर आता है। फिर स्थिर सामग्री वेब सर्वर द्वारा ब्राउज़र में वापस भेजती है। वहाँ है और तर्क करना है, तो उस अनुरोध को एप्लिकेशन सर्वर को भेजें। तर्क को संसाधित करने के बाद फिर प्रतिक्रिया वेब सर्वर को भेजें और क्लाइंट को भेजें।


4

उपरोक्त सभी बस अति सरल कुछ अति जटिल है। एक एप्लिकेशन सर्वर में एक वेब सर्वर होता है, एक एप्लिकेशन सर्वर में मानक वेब सर्वर की तुलना में कुछ अधिक परिवर्धन / विस्तार होते हैं। यदि आप एक उदाहरण के रूप में टॉमईई को देखते हैं:

CDI - Apache OpenWebBeans
EJB - Apache OpenEJB
JPA - Apache OpenJPA
JSF - Apache MyFaces
JSP - Apache Tomcat
JSTL - Apache Tomcat
JTA - Apache Geronimo Transaction
Servlet - Apache Tomcat
Javamail - Apache Geronimo JavaMail
Bean Validation - Apache BVal

आप देखेंगे कि ऐप सर्वर में शस्त्रागार में टॉमकैट (वेब ​​कंटेनर / सर्वर) एक और उपकरण है। आप चाहें तो वेब सर्वर में जेपीए और दूसरी तकनीक प्राप्त कर सकते हैं, लेकिन एप्लिकेशन सर्वर आपकी सुविधा के लिए इन सभी चीजों को पैकेज करते हैं। एक ऐप सर्वर के रूप में पूरी तरह से वर्गीकृत होने के लिए आपको आवश्यक रूप से कुछ मानक द्वारा निर्धारित टूल की सूची का पालन करना होगा।


2

जरूरी नहीं कि एक स्पष्ट विभाजन रेखा हो। आजकल, कई कार्यक्रम दोनों के तत्वों को जोड़ते हैं - सेवारत http अनुरोध (वेब ​​सर्वर) और व्यवसाय तर्क को संभालना (ऐप सर्वर)


2

से https://en.wikipedia.org/wiki/Web_server

एक वेब सर्वर एक कंप्यूटर सिस्टम है जो HTTP के माध्यम से अनुरोध करता है, वर्ल्ड वाइड वेब पर जानकारी वितरित करने के लिए उपयोग किए जाने वाले मूल नेटवर्क प्रोटोकॉल। यह शब्द संपूर्ण प्रणाली या विशेष रूप से उस सॉफ़्टवेयर को संदर्भित कर सकता है जो HTTP अनुरोधों को स्वीकार और पर्यवेक्षण करता है

से https://en.wikipedia.org/wiki/Application_server#Application_Server_definition

एक एप्लिकेशन सर्वर एक वेब सर्वर (जैसे Apache या Microsoft इंटरनेट इनफॉर्मेशन सर्विसेज (IIS)) और (लगभग हमेशा) एक SQL डेटाबेस (जैसे PostgreSQL, MySQL, या Oracle) के सामने चलता है

वेब एप्लिकेशन कंप्यूटर कोड होते हैं, जो एप्लिकेशन सर्वरों को चलाते हैं और भाषा में लिखे जाते हैं, जो एप्लिकेशन सर्वर रनटाइम लाइब्रेरीज़ का समर्थन करता है और कॉल करता है और एप्लिकेशन सर्वर ऑफ़र को कंपोनेंट करता है


2

एप्लिकेशन सर्वर और वेब सर्वर दोनों का उपयोग वेब एप्लिकेशन को होस्ट करने के लिए किया जाता है। वेब सर्वर दूसरी तरफ वेब कंटेनर के साथ डील करता है। एप्लीकेशन सर्वर वेब कंटेनर के साथ-साथ ईजेबी (एंटरप्राइज जावाबीन) कंटेनर या कॉम + कंटेनर के साथ माइक्रोसॉफ्ट डॉट नेट के लिए भी सौदा है।

वेब सर्वर को एचटीटीपी स्टेटिक कंटेंट जैसे एचटीएमएल, इमेजेज आदि की सेवा के लिए बनाया गया है और डायनामिक कंटेंट के लिए पर्ल, पीएचपी, एएसपी, जेएसपी आदि जैसी स्क्रिप्टिंग भाषाओं का समर्थन करने के लिए प्लगइन्स हैं और यह एचटीटीपी प्रोटोकॉल तक सीमित है। नीचे सर्वर गतिशील HTTP सामग्री उत्पन्न कर सकते हैं।

वेब सर्वर प्रोग्रामिंग पर्यावरण:

IIS: ASP (.NET)

अपाचे टोमाकट: सर्वलेट

जेट्टी: सर्वलेट

अपाचे: पीएचपी, सीजीआई

एप्लिकेशन सर्वर वह कर सकता है जो वेब सर्वर सक्षम है और किसी भी प्रोटोकॉल का उपयोग करके सुनता है साथ ही ऐप सर्वर में अनुप्रयोग स्तर सेवाओं जैसे कि कनेक्शन पूलिंग, ऑब्जेक्ट पूलिंग, लेनदेन समर्थन, मैसेजिंग सेवाओं आदि का समर्थन करने के लिए घटक और विशेषताएं हैं।

अनुप्रयोग सर्वर का प्रोग्रामिंग परिवेश:

एमटीएस: COM +

WAS: EJB

JBoss: EJB

WebLogic अनुप्रयोग सर्वर: EJB


1

जबकि दोनों के बीच ओवरलैप हो सकता है (कुछ वेब सर्वर का उपयोग एप्लिकेशन सर्वर के रूप में भी किया जा सकता है) सबसे बड़ा अंतर IMHO प्रसंस्करण मॉडल और सत्र प्रबंधन में है:

वेब सर्वर प्रोसेसिंग मॉडल में, अनुरोधों को संभालने पर ध्यान केंद्रित किया जाता है; "सत्र" की धारणा बहुत अधिक आभासी है। यह कहना है कि "सत्र" ग्राहक और सर्वर (इसलिए आरईएसटी) और / या इसे बाहरी स्थिर भंडारण (एसक्यूएल सर्वर, मेम्केड आदि) में क्रमिक रूप से राज्य के प्रतिनिधित्व को स्थानांतरित करके सिम्युलेटेड है।

एप्लिकेशन सर्वर में सत्र आमतौर पर अधिक स्पष्ट होता है और अक्सर "सत्र" की पूरी अवधि के लिए एप्लिकेशन सर्वर की स्मृति में रहने वाली एक वस्तु का रूप ले लेता है।


0

यह विशिष्ट वास्तुकला पर निर्भर करता है। कुछ एप्लिकेशन सर्वर मूल रूप से वेब प्रोटोकॉल (XML / RPC / SOAP HTTP पर) का उपयोग कर सकते हैं, इसलिए थोड़ा तकनीकी अंतर है। आमतौर पर एक वेब सर्वर उपयोगकर्ता-सामना कर रहा है, HTTP / HTTPS पर विभिन्न प्रकार की सामग्री परोस रहा है, जबकि एक एप्लिकेशन सर्वर उपयोगकर्ता-सामना नहीं कर रहा है और गैर-मानक या गैर-राउटेबल प्रोटोकॉल का उपयोग कर सकता है। बेशक RIA / AJAX के साथ, अंतर को और अधिक क्लाउड किया जा सकता है, जो विशेष रूप से रिमोट एक्सेस सेवाओं को पंप करने वाले ग्राहकों को केवल गैर-HTML सामग्री (JSON / XML) परोसता है।


0

IMO, यह ज्यादातर चिंताओं को अलग करने के बारे में है।

विशुद्ध रूप से तकनीकी दृष्टिकोण से, आप एकल वेब सर्वर में सब कुछ (वेब ​​सामग्री + व्यावसायिक तर्क) कर सकते हैं। यदि आप ऐसा करते हैं, तो जानकारी HTML सामग्री के अनुरोध के अंदर एम्बेड की जाएगी। क्या होगा असर?

उदाहरण के लिए, कल्पना करें कि आपके पास 2 अलग-अलग ऐप हैं जो ब्राउज़र पर पूरी तरह से अलग HTML सामग्री प्रदान करते हैं। यदि आप व्यावसायिक तर्क को ऐप-सर्वर में अलग कर देंगे, तो आप स्क्रिप्ट के माध्यम से ऐप-सर्वर में समान डेटा देख रहे विभिन्न वेब-सर्वर प्रदान कर सकते हैं। हालाँकि, यदि आप तर्क को अलग नहीं करते हैं और इसे वेब-सर्वर में रखते हैं, तो जब भी आप अपना व्यवसाय मॉडल बदलते हैं, तो आप इसे हर एक वेब-सर्वर में बदल देते हैं, जिसमें आपको अधिक समय लगेगा, कम विश्वसनीय और प्रवण त्रुटि।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.