पाठ 3 / 25
स्टेटलेसनेस
समझें कि REST servers stateless क्यों रहते हैं, हर request अपना context कैसे लाती है और इससे horizontal scaling में कैसे मदद मिलती है।
हर रिक्वेस्ट अकेली खड़ी है
स्टेटलेस API में, सर्वर कॉल के बीच क्लाइंट के बारे में कोई सेशन डेटा नहीं रखता। हर रिक्वेस्ट उसे समझने के लिए ज़रूरी सब कुछ साथ लाता है — एक ऑथ टोकन, रिसोर्स id, कोई फ़िल्टर — ताकि कोई भी रिक्वेस्ट पिछली रिक्वेस्ट की सर्वर मेमोरी पर निर्भर न हो।
वेटर नहीं, ड्राइव-थ्रू
एक वेटर पूरे भोजन के दौरान आपकी टेबल का ऑर्डर याद रखता है — स्टेटफ़ुल। ड्राइव-थ्रू विंडो को आपकी कोई याद नहीं होती; हर गाड़ी स्पीकर पर अपना पूरा ऑर्डर बताती है। स्टेटलेस सर्वर भी इसी तरह काम करते हैं: कोई भी सर्वर इंस्टेंस किसी भी रिक्वेस्ट को संभाल सकता है।
स्केल पर यह क्यों मायने रखता है
स्टेटलेसनेस आपको लोड बैलेंसर के पीछे स्वतंत्र रूप से सर्वर जोड़ने या हटाने देती है — कोई सर्वर क्लाइंट-विशिष्ट डेटा नहीं रखता जो फ़ेलओवर पर खो जाए। यह थोड़े दोहराए गए डेटा (जैसे टोकन) के बदले बहुत सरल हॉरिज़ॉन्टल स्केलिंग देती है।
त्वरित जाँच: स्टेटलेस REST API में, क्लाइंट की पहचान/ऑथ जानकारी कहाँ होनी चाहिए?
- सर्वर-साइड सेशन मेमोरी में
- डेटाबेस में रखी जाए और IP से खोजी जाए
- हर रिक्वेस्ट के साथ भेजी जाए (जैसे हेडर में टोकन)
- Client के source code में hard-coded
Answer
हर रिक्वेस्ट के साथ भेजी जाए (जैसे हेडर में टोकन) — स्टेटलेसनेस का मतलब है सर्वर कोई प्रति-क्लाइंट सेशन नहीं रखता; रिक्वेस्ट को खुद ही प्रमाणित करने के लिए ज़रूरी क्रेडेंशियल साथ लाने होते हैं।