Apache HTTP Server और Apache Tomcat के बीच अंतर? [बन्द है]


637

Apache HTTP सर्वर और Apache Tomcat के बीच कार्यक्षमता के मामले में क्या अंतर है?

मुझे पता है कि टॉमकैट जावा में लिखा गया है और एचटीटीपी सर्वर सी में है, लेकिन इसके अलावा मैं वास्तव में नहीं जानता कि वे कैसे प्रतिष्ठित हैं। क्या उनकी अलग कार्यक्षमता है?


12
मैंने अपने ब्लॉग में एक सारांश जोड़ा है, हो सकता है कि यह किसी की मदद करे: tugay.biz/2014/11/what-is-tomcat-is-it-web-server-what.html
Koray Tugay

36
मैं ठीक-ठीक सोच रहा था कि ओपी क्या पूछ रहा है, और मैं नहीं देखता कि इसे बंद क्यों किया गया। सौभाग्य से उत्तर हैं।
फ्लोरियन एफ

4
Apache वेब सर्वर और Apache Tomcat दो अलग-अलग टूल हैं जिन्हें विभिन्न उद्देश्यों के लिए बनाया गया है। यदि हम तथ्यों और विशेषज्ञता द्वारा उनके उपयोग के मामलों को अलग नहीं कर सकते हैं, तो हमें खेद है। "तर्कशील" प्रश्नों को बंद करने की यह ड्राइव अति-पहुँच में है। शायद मध्यस्थों को अधिक सूचित और कम राय देने की आवश्यकता है। जैसा कि @FlorianF कहता है, कम से कम अब जवाब हैं।
नीलजी

2
उत्थान की संख्या को देखते हुए - इसे बंद नहीं किया जाना चाहिए - लेकिन इसके बजाय बंद होना चाहिए - क्योंकि यह वास्तव में उपयोगी उत्तरों के साथ एक बहुत अच्छा सवाल है।
1919

closedइस सवाल पर नोटिस यह जवाब की आवश्यकता है उद्देश्य सामग्री है, लेकिन इस प्रश्न के बजाय व्यक्तिपरक उत्तर सामग्री का निर्माण होगा उम्मीद कर रही है का कहना है - जवाब के बहुमत उद्देश्य सामग्री (विशेष रूप से उच्च मतदान जवाब) के बजाय व्यक्तिपरक शामिल करने के लिए लगता है - यह प्रश्न इसलिए UN-CLOSED होना चाहिए। व्यक्तिपरकता की आशंका वास्तव में कभी नहीं हुई, और मैं इस बात से सहमत नहीं हूं कि पहले स्थान पर व्यक्तिपरक होने का खतरा कभी नहीं था।
cellepo

जवाबों:


475

Apache Tomcat का उपयोग आपके Java Servlets और JSP को तैनात करने के लिए किया जाता है। तो अपने जावा प्रोजेक्ट में आप अपनी WAR (Web ARchive के लिए संक्षिप्त) फ़ाइल बना सकते हैं, और बस इसे Tomatat में तैनाती निर्देशिका में छोड़ सकते हैं।

तो मूल रूप से Apache एक HTTP सर्वर है, जो HTTP परोसता है। Tomcat एक सर्वलेट और JSP सर्वर है जो जावा तकनीकों की सेवा करता है।

टॉमकैट में कैटालिना शामिल है, जो एक सर्वलेट कंटेनर है। एक सर्वलेट, अंत में, एक जावा वर्ग है। JSP फाइलें (जो PHP और पुरानी ASP फ़ाइलों के समान हैं) जावा कोड (HttpServlet) में उत्पन्न होती हैं, जिसे तब सर्वर द्वारा .class फ़ाइलों में संकलित किया जाता है और जावा वर्चुअल मशीन द्वारा निष्पादित किया जाता है।


51
"अपाचे है [...] सेवारत HTTP" से आपका क्या इरादा है? क्या टॉमकैट भी नहीं है (हाइपरटेक्स्ट उर्फ) HTTP? टॉमकैट केवल "mod_java" अपाचे मॉड्यूल क्यों नहीं हो सकता है? क्या तुम समझा सकते हो?
पीटरिनो

30
टॉमकैट एक सर्वलेट कंटेनर है। एक सर्वलेट, अंत में, एक जावा वर्ग है। JSP फाइलें (जो PHP oder ASP फाइलों के समान होती हैं) जावा कोड (HttpServlet) में उत्पन्न होती हैं, जो तब सर्वर द्वारा .class फ़ाइलों को संकलित की जाती हैं और जावा वर्चुअल मशीन द्वारा निष्पादित की जाती हैं। - इसके अलावा, यह मंच यहां Apache HTTPD और टॉमकैट के
85182

17
टॉमकैट वास्तव में इसे एक सक्षम वेब सर्वर के साथ लाता है। टॉमकैट एक सर्वलेट / जेएसपी कंटेनर है और यह एक वेब सर्वर भी प्रदान करता है। टॉमकैट का वेब सर्वर काफी अच्छा है, जो सबसे छोटी और मध्यम वेब साइट की जरूरतों को संभालने में सक्षम है। जावा एनआईओ और 64-बिट मेमोरी के लिए समर्थन के साथ, यहां तक ​​कि कुछ बड़े पैमाने पर वेब साइटों को टॉमकैट के कैटालिना मॉड्यूल द्वारा अच्छी तरह से परोसा जा सकता है। विभिन्न कारणों से, कुछ लोग कैटालिना को अनदेखा करना चुनते हैं और इसके बजाय अपाचे httpdवेब सर्वर उत्पाद के पीछे टॉमकैट की सर्वलेट क्षमताओं का उपयोग करते हैं ।
तुलसी बॉर्क

21
मेरी टिप्पणी के लिए सुधार: कोयोट वेब सेवा के लिए जिम्मेदार टॉमकैट में मॉड्यूल है। कैटालिना वह मॉड्यूल है जो सर्वलेट्स करता है। जैस्पर वह मॉड्यूल है जो JSP को हैंडल करता है।
बेसिल बॉर्क

17
@KorayTugay हां। Tomcat = ( Web Server + Servlet container + JSP environment )। जब आप टॉमकैट की startup.shस्क्रिप्ट चलाते हैं , तो आने वाले कनेक्शन (HTTP कॉल) के लिए पोर्ट 8080 पर वेब सर्वर डिफ़ॉल्ट रूप से चालू होता है । Tomcat अपने स्वयं के वेब सर्वर कार्यान्वयन (कोयोट) के साथ शुद्ध जावा है। अपाचे HTTP सर्वर (AHS), इसके विपरीत, एक वेब सर्वर की एक पूरी तरह से अलग कार्यान्वयन, देशी C / C ++ कोड का उपयोग किया है। AHS बहुत लचीला और शक्तिशाली है, लेकिन अक्सर ओवरकिल होता है। टॉमकैट का अपना वेब सर्वर बहुत अच्छा काम करता है। अगर सही मायने में जरूरत हो तो ही AHS का इस्तेमाल करें।
तुलसी बोर्के

118

उपरोक्त ठीक उत्तरों के अलावा, मुझे लगता है कि यह कहा जाना चाहिए कि टॉमकैट का अपना स्वयं का HTTP सर्वर है, जो इसमें बनाया गया है, और स्थैतिक सामग्री को भी परोसने में पूरी तरह कार्यात्मक है। आपके जावा वर्चुअल मशीन कॉन्फ़िगरेशन के आधार पर यह वास्तव में mod_proxy और mod_jk जैसे अपाचे में पारंपरिक कनेक्टर्स के माध्यम से जा सकता है।

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


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

6
अपाचे http का सबसे शक्तिशाली हिस्सा जो कुछ अन्य सर्वरों का समर्थन करता है, mod_rewriteइंजन द्वारा और सशर्त पर्यावरण इंजेक्शन के माध्यम से, इसे देखने से पहले अनुरोध को फिर से लिखने और फिर से लिखने की क्षमता है । mod_proxyअल्पविकसित भार संतुलन प्रदान करता है (और mod_jk के साथ संयुक्त रूप से संतुलित संतुलित उदाहरणों के बीच अल्पविकसित चिपचिपा सत्र / साझा स्थिति प्रदान करता है)।
काउबर्ट

81
  1. Apache एक सामान्य-उद्देश्य http सर्वर है, जो कई उन्नत विकल्पों का समर्थन करता है जो Tomcat नहीं करता है।
  2. यद्यपि टॉमकैट का उपयोग एक सामान्य उद्देश्य http सर्वर के रूप में किया जा सकता है, आप Apache और Tomcat को स्थैतिक सामग्री परोसने वाले Apache के साथ मिलकर काम कर सकते हैं और Tomcat को गतिशील सामग्री के लिए अनुरोध अग्रेषित कर सकते हैं।

क्या सभी वेब अंत में स्थिर नहीं है? मेरी समझ है, टॉमकैट एक "स्थैतिक सामग्री" (गतिशील रूप से) उत्पन्न करता है फिर अपाचे इस की सेवा करेगा। तो टॉमकैट वास्तव में गतिशील सामग्री या किसी भी चीज़ की सेवा नहीं करेगा, यह केवल आवश्यकता होने पर इसे उत्पन्न करेगा।
कोरे तुगे

11
@KorayTugay आप अपनी शर्तों को भ्रमित कर रहे हैं। "आवश्यकता होने पर इसे उत्पन्न करें" ठीक वही है जो "गतिशील" का अर्थ है, और "स्थिर" के बिल्कुल विपरीत है। अपाचे एचटीटीपी सर्वर का मुख्य उद्देश्य स्टैटिक कंटेंट परोसना है, जबकि सर्वलेट टेक्नोलॉजी का मुख्य उद्देश्य कंटेंट ऑन-द-फ्लाई (डायनामिक कंटेंट) उत्पन्न करना है।
बेसिल बोर्के

1
@ बासिलबूर्क I को टॉमकैट के साथ भ्रमित किया गया था जो वास्तव में यहाँ सामग्री परोस रहा था। यह केवल सामग्री उत्पन्न करेगा, यह अपाचे एचटीपी सर्वर के साथ एक साथ उपयोग किए जाने पर इसे सेवा नहीं देगा। संभवत: आप सही हैं और मैं सिर्फ भ्रमित हूं, लेकिन मुझे अभी भी कहना होगा, जब एक साथ उपयोग किया जाता है, तो अपाचे सेवा करता है, जब आवश्यक होता है तो टॉमकैट स्थिर सामग्री उत्पन्न करता है। यदि अपाचे का उपयोग नहीं किया जाता है, तो टॉमकैट में कोयोट सेवारत करेंगे, जबकि कैटलिना और जेस्पर गतिशील सामग्री पैदा कर रहे हैं।
कोरे तुगे

3
@KorayTugay हां, आपकी अंतिम टिप्पणी सही है। यदि Apache HTTP Server + Tomcat का उपयोग कर रहे हैं, तो वेब ब्राउज़र केवल "AWS को बिना किसी सुराग के देखते हैं कि Tomcat पर्दे के पीछे काम कर रहा है। AWS वेब ब्राउजर क्लाइंट्स और टॉमकैट के बीच का एक मध्य-व्यक्ति है। यदि अकेले टॉमकैट का उपयोग किया जाता है, तो टॉमकैट में कोयोट मॉड्यूल एडब्ल्यूएस के स्थान पर वेब ब्राउज़र क्लाइंट से फ़ील्ड अनुरोध करता है। मैं बाद वाले (अकेले टोमासैट) की सलाह देता हूं जब तक कि आपको नहीं पता कि आपके पास बहुत विशेष आवश्यकताएं हैं जो एडब्ल्यूएस द्वारा बेहतर तरीके से संबोधित की जाएंगी।
बेसिल बोर्के

29

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

HTTP सर्वर, अपने आप से, स्थिर सामग्री की सेवा के लिए सबसे अच्छा है ... html फाइलें, चित्र आदि।


9
मुझे Tomcat is primarily an application serverकथन पर संदेह है।
राहेल

6
टॉमकैट का मुख्य रूप से एक अनुप्रयोग सर्वर होना है। हालांकि यह करता है और साथ ही सर्वर स्थैतिक सामग्री।
स्केलेबल

4
हां टॉमकैट वास्तव में मुख्य रूप से एक एप्लिकेशन सर्वर है, अगर यह शब्द सर्वलेट कंटेनर के अर्थ में है जो वेब ब्राउज़र में वितरित गतिशील सामग्री उत्पन्न करता है। पहले सर्वलेट कंटेनरों में से एक के रूप में, टॉमकट के होने का कारण है।
बेसिल बोर्के

1
tomcat एक एप्लीकेशन सर्वर नहीं है, यह एक वेब सर्वर है। javajee.com/web-server-web-container-and-application-server
प्रतीक मिश्र

@PrateekMishra आपके द्वारा दिए गए लिंक के आधार पर, आपका कथन कि tomcat एक वेब सर्वर है, गलत है; यह (मुख्य रूप से) एक वेब कंटेनर है , जिसे सर्वलेट कंटेनर के रूप में भी जाना जाता है ।
स्कोमीसा

21

एक अपाचे सर्वर एक http सर्वर है जो किसी भी सरल http अनुरोधों की सेवा कर सकता है, जहां tomcat सर्वर वास्तव में एक सर्वलेट कंटेनर है जो जावा सर्वलेट अनुरोधों की सेवा कर सकता है।

वेब सर्वर [अपाचे] वेब क्लाइंट (वेब ​​ब्राउजर) को प्रोसेस करता है और इसे सर्वलेट कंटेनर [टॉमकैट] में भेजता है और कंटेनर रिक्वेस्ट को प्रोसेस करता है और प्रतिक्रिया भेजता है जो वेब क्लाइंट द्वारा वेब क्लाइंट [ब्राउजर] को फॉरवर्ड किया जाता है।

इसके अलावा आप और अधिक स्पष्टीकरण के लिए इस लिंक की जाँच कर सकते हैं: -

https://sites.google.com/site/sureshdevang/servlet-architecture

आगे के शोध के लिए इस उत्तर को भी देखें: -

https://softwareengineering.stackexchange.com/a/221092


sites.google.com/site/sureshdevang/servlet-altecture जैसा कि आप बताते हैं कि यह बेहतर दृश्य देता है
Akitha_MJ

13

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


9
इस जवाब से मुझे कोई मतलब नहीं है। पहला वाक्य गलत है कि टॉम्केट के अलावा कई अन्य सर्वलेट / जेएसपी कंटेनर हैं, कुछ काफी लोकप्रिय हैं जैसे कि जेट्टी, जेबॉस / वाइल्डफ्लाय, ग्लासफिश, वेबस्फीयर, और कई और। लोकप्रिय होने के दौरान, बाजार के केवल एक अल्पसंख्यक हिस्से के साथ, टॉमकैट हावी नहीं है। दूसरे वाक्य के रूप में, टॉम्का को अक्सर Apache HTTP सर्वर के पीछे एक सर्वलेट कंटेनर के रूप में उपयोग किया जाता है। और PHP आदि का उपयोग अक्सर कई अन्य वेब सर्वर जैसे Nginx, Lighttpd और अन्य के साथ किया जाता है।
बेसिल बोर्के

3

खैर, अपाचे HTTP वेबसर्वर है, जहां टॉमकैट सर्वलेट्स और जेएसपी के लिए वेबसर्वर भी है। इसके अलावा अपाचे को वास्तविक समय में Apache Tomcat से अधिक पसंद किया जाता है


19
यह प्रश्न काफी पुराना है, और आपका उत्तर उन लोगों को डुप्लिकेट लगता है जो बहुत पहले पोस्ट किए गए हैं। उत्तरों की सराहना की जाती है लेकिन नए उत्तरों को बातचीत में जोड़ने में मदद करनी चाहिए।
गार्जियनचेट

-2

Apache एक HTTP वेब सर्वर है जो HTTP के रूप में काम करता है।

Apache Tomcat एक जावा सर्वलेट कंटेनर है। यह वेब सर्वर के समान है लेकिन जावा सर्वलेट और JSP पृष्ठों को निष्पादित करने के लिए अनुकूलित है।


1
हां जवाब थोड़ा भ्रमित करने वाला है क्योंकि @ बेसिल बोर्के ने ऊपर कहा "कोयोट वेब सेवारत के लिए टॉमकैट में जिम्मेदार मॉड्यूल है, कैटालिना वह मॉड्यूल है जो सर्वलेट्स करता है। और जैस्पर मॉड्यूल है जो JSPs को संभालता है" अब यह स्पष्टता देता है कि कैसे "TOMCAT फीचर्स सेम"। वेब सर्वर के रूप में जावा सर्वलेट और जेएसपी पृष्ठों को निष्पादित करने के लिए अनुकूलित !!!! "
देव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.