← Back to Apache Course | Chapter 1: Introduction & Setup | Lesson 1 of 4

Apache क्या है?

Apache HTTP Server (जिसे आमतौर पर सिर्फ Apache कहा जाता है) एक program है जो एक computer पर चलता है और जो कोई भी web page मांगे उसे भेज देता है। जब आप browser में कोई website address type करते हैं, तो कुछ न कुछ उस request को सुनकर HTML, images, और page बनाने वाली दूसरी files वापस भेजता है -- Apache इसी काम को करने वाले सबसे widely used programs में से एक है।

एक Web Server, Website नहीं

Apache खुद कोई website नहीं है -- यह वह software है जो websites को *serve* करता है। यह एक network port पर सुनता है (plain HTTP के लिए port 80, HTTPS के लिए 443), browsers से आने वाली requests को accept करता है, पता लगाता है कि कौन सी file या program हर request को handle करे, और वापस एक response भेजता है। असली content -- HTML files, images, एक PHP या Django application -- अलग रहता है; Apache internet और उस content के बीच की layer है।

एक संक्षिप्त इतिहास

Apache पहली बार 1995 में Apache Group (अब Apache Software Foundation) द्वारा release हुआ था और जल्दी ही early internet का dominant web server बन गया। इसका नाम अक्सर "a patchy server" से आया बताया जाता है -- यानी original NCSA HTTPd server पर लगाए गए patches का एक set, जिस पर यह based था। दशकों बाद भी यह Nginx जैसे नए servers के साथ-साथ आज भी websites के एक बड़े हिस्से को power करता है।

Apache असल में करता क्या है

एक static site के लिए, Apache disk से सीधे एक HTML file पढ़ता है और उसे as-is वापस भेज देता है। एक dynamic site के लिए, यह request को किसी और चीज़ को सौंप देता है -- mod_php या PHP-FPM के जरिए एक PHP interpreter को, या Gunicorn/uWSGI को proxy करके एक Python app को -- result का इंतज़ार करता है, और उसे browser तक forward कर देता है। यह हर web server को चाहिए होने वाली चीज़ें भी handle करता है: requests को सही directory पर route करना, files को सही MIME type के साथ serve करना, responses को compress करना, और हर request को log करना।

Note: Apache का behavior पूरी तरह configuration files और modules से control होता है, आपके scratch से लिखे code से नहीं -- इस course का ज़्यादातर हिस्सा उन config files को सही तरीके से edit करने के बारे में ही है।

Apache बनाम Nginx बनाम बाकी

Apache अकेला web server नहीं है -- Nginx, Microsoft IIS, और LiteSpeed आम alternatives हैं। Apache की परंपरागत strength इसका बड़ा module ecosystem और इसका .htaccess per-directory configuration है, जिसने इसे shared hosting के लिए favorite बनाया। Nginx को अक्सर कम memory में एक साथ ज़्यादा connections handle करने के लिए सराहा जाता है। practice में दोनों capable, production-grade servers हैं, और Nginx को Apache के आगे एक reverse proxy की तरह रखा जाना आम बात है।

{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह सोचना कि Apache *ही* website है, जबकि यह उसे serve करने वाला program है -- असली pages, images, और application code अलग files में रहते हैं जिन्हें Apache बस पढ़कर भेजता है।
  2. यह मान लेना कि कोई website बनाने के लिए Apache ज़रूरी है -- यह कई विकल्पों में से एक implementation choice है (Nginx, IIS, वगैरह), हर web project को चाहिए होने वाली चीज़ नहीं।
  3. Apache HTTP Server को दूसरे Apache Software Foundation projects (Apache Kafka, Apache Spark, Apache Tomcat) से confuse करना, जो "Apache" नाम शेयर करते हैं लेकिन अलग काम करते हैं।
🔒

Chapter Quiz — Complete all 4 topics to unlock

0/4 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.