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