3. What is a Backend, how do they work and why do we need them?

3. What is a Backend, how do they work and why do we need them?

बैकेंड सर्वर की परिभाषा और कार्यप्रणाली

बैकेंड सर्वर का परिचय

  • बैकेंड सर्वर एक कंप्यूटर है जो HTTP, WebSocket, gRPC या अन्य प्रकार के अनुरोधों के लिए सुनता है। यह इंटरनेट पर खुले पोर्ट (जैसे 80 या 443) के माध्यम से क्लाइंट्स को डेटा भेजने या प्राप्त करने की अनुमति देता है।
  • इसे "सर्वर" कहा जाता है क्योंकि यह स्थिर फ़ाइलें (जैसे इमेज, JavaScript फ़ाइलें, HTML फ़ाइलें) या JSON जैसी सामग्री प्रदान करता है।

अनुरोध और प्रतिक्रिया प्रक्रिया

  • उदाहरण के लिए, AWS में तैनात एक बैकेंड सर्वर का उपयोग करते हुए, हम देखेंगे कि कैसे एक ब्राउज़र से अनुरोध शुरू होता है और हमारे सर्वर तक पहुँचता है।
  • DNS सर्वर की भूमिका महत्वपूर्ण होती है; यह डोमेन नाम को IP पते में परिवर्तित करता है।

DNS रिकॉर्ड्स का महत्व

  • DNS में विभिन्न प्रकार के रिकॉर्ड होते हैं जैसे A रिकॉर्ड्स जो विशेष IP पते की ओर इंगित करते हैं और CNAME रिकॉर्ड्स जो डोमेन नामों को संदर्भित करते हैं।
  • उदाहरण स्वरूप, "backend demo" नामक A रिकॉर्ड एक विशिष्ट IP पते की ओर इंगित करता है जो AWS EC2 इंस्टेंस का होता है।

सुरक्षा समूह और फायरवॉल

  • जब अनुरोध हमारे EC2 इंस्टेंस तक पहुँचता है, तो उसे AWS के फायरवॉल से गुजरना पड़ता है।
  • सुरक्षा समूह यह निर्धारित करता है कि कौन से पोर्ट इंटरनेट पर उपलब्ध होंगे; HTTPS (443) और HTTP (80) ट्रैफ़िक को अनुमति दी जानी चाहिए।

रिवर्स प्रॉक्सी और एनजिनएक्स कॉन्फ़िगरेशन

  • हमारी प्रणाली में रिवर्स प्रॉक्सी का उपयोग किया जा रहा है ताकि विभिन्न प्रकार के रीडायरेक्ट्स को केंद्रीकृत स्थान से प्रबंधित किया जा सके।
  • एनजिनएक्स कॉन्फ़िगरेशन SSL प्रमाणपत्रों को स्वचालित रूप से असाइन करने में मदद करती है।

अंतिम प्रक्रिया: स्थानीय होस्ट पर अनुरोध

  • एनजिनएक्स कॉन्फ़िगरेशन सभी अनुरोधों को स्थानीय होस्ट 3001 पर पुनर्निर्देशित करती है जहाँ हमारा नोड सर्वर चल रहा होता है।
  • संक्षेप में, हमारा अनुरोध ब्राउज़र से शुरू होकर DNS सर्वर, AWS फायरवॉल और अंततः स्थानीय होस्ट तक पहुँचता है।

कैसे बैकएंड काम करता है?

बैकएंड की आवश्यकता

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

फ्रंट एंड बनाम बैकएंड

  • यदि हम सब कुछ फ्रंट एंड पर करें, तो हमें प्रदर्शन में कमी आ सकती है क्योंकि ब्राउज़र सीमित वातावरण में चलता है।
  • फ्रंट एंड लॉजिक ब्राउज़र द्वारा चलाया जाता है जबकि बैकएंड सर्वर पर प्रोसेस किया जाता है।
  • समझने के लिए कि फ्रंट एंड कैसे काम करता है, हमें उसके पीछे की प्रक्रियाओं को देखना होगा।

फ्रंट एंड का कार्यप्रणाली

नेटवर्क अनुरोध

  • जब ब्राउज़र एक वेबसाइट लोड करता है, तो वह पहले HTML फ़ाइल प्राप्त करता है और अन्य संसाधनों (जैसे JavaScript, CSS इत्यादि) के लिए अलग-अलग अनुरोध भेजता है।
  • ये सभी संसाधन विभिन्न अनुरोधों के माध्यम से लाए जाते हैं ताकि पृष्ठ सही ढंग से प्रदर्शित हो सके।

सर्वर कॉन्फ़िगरेशन

  • EC2 इंस्टेंस पर ट्रैफ़िक पोर्ट 443 (HTTPS) और 80 (HTTP) के माध्यम से आता है।
  • यहाँ ट्रैफ़िक स्थानीय होस्ट 3000 पर रीडायरेक्ट किया जाता है जिससे फ्रंटेंड Next.js सर्वर तक पहुँच मिलती है।

ब्राउज़र का कार्य

  • जब ब्राउज़र HTML फ़ाइल प्राप्त कर लेता है, तब वह सभी संसाधनों (CSS, JS आदि) को क्रमशः लाता और उन्हें लागू करता है।
  • JavaScript फ़ाइलें लाने के बाद ही बटन जैसे इंटरैक्शन सक्रिय होते हैं।

प्रमुख अंतर

  • फ्रंट एंड लॉजिक क्लाइंट मशीन पर चलता है जबकि बैकएंड सर्वर पर प्रोसेस होता था।
  • यह ध्यान देने योग्य बात यह भी कि ब्राउज़र्स अक्सर सैंडबॉक्स वातावरण में चलते हैं जिससे वे ऑपरेटिंग सिस्टम से अलग रहते हैं।

सुरक्षा नीतियों के कारण फ्रंट एंड में बैकएंड लॉजिक क्यों नहीं लिखा जा सकता?

कोड का सीमित संसाधनों तक पहुंच

  • सिस्टम एक अलग वातावरण है, जिसका अर्थ है कि कोड केवल सीमित संसाधनों तक पहुँच सकता है, जैसे कि DOM और ब्राउज़र APIs (जैसे लोकल स्टोरेज या कुकीज़)।
  • ब्राउज़र की सुरक्षा नीति JavaScript को बाहरी APIs कॉल करने से रोकती है जो वर्तमान डोमेन से भिन्न हैं।

सुरक्षा नीतियों का महत्व

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

बैकएंड लॉजिक के लिए आवश्यकताएँ

  • बैकएंड लॉजिक लिखने में सबसे बड़ी बाधा सुरक्षा नीतियाँ हैं। ये नीतियाँ अक्सर फाइल सिस्टम तक पहुँचने की अनुमति नहीं देतीं।
  • बाहरी APIs से डेटा प्राप्त करने के लिए उचित CORS हेडर होना आवश्यक है, जो सभी APIs पर नियंत्रण नहीं होने के कारण एक बड़ी समस्या बन जाती है।

डेटाबेस कनेक्टिविटी

  • सर्वर रनटाइम सभी मूल डेटाबेस ड्राइवरों (जैसे PG और MongoDB) तक पहुँच रखता है, जिससे वह डेटाबेस के साथ प्रभावी ढंग से संवाद कर सकता है।
  • बैकएंड सर्वर कनेक्शन पूल बनाए रखते हैं ताकि वे बार-बार कनेक्शन बनाने और समाप्त करने की आवश्यकता से बच सकें।

कंप्यूटिंग शक्ति और लोड प्रबंधन

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

निष्कर्ष

  • इस चर्चा ने हमें बताया कि फ्रंट एंड में बैकएंड लॉजिक रखना एक अच्छा विचार नहीं है। अब हम समझते हैं कि बैकएंड क्या होता है और इसकी आवश्यकता क्यों होती है।
Video description

In this video I want to show a very high level overview of whats, hows and whys of backend systems. Join the Discord community: https://discord.gg/NXuybNcvVH 00:00 - What is a backend? 00:56 - How backends work? 07:30 - Why do we need backends? 10:20 - How frontends work? 12:40 - Why can't we write backend logic in frontends? #backend #nodejs #golang #softwareengineering