वेब एप्लिकेशन के लिए क्लाइंट-साइड स्टोरेज आवश्यक है। यह सर्वर-साइड स्टोरेज की तरह बुलेटप्रूफ नहीं हो सकता है, लेकिन इसके बिना, वेब ऐप्स कई आधुनिक सुविधाओं को लागू करने में असमर्थ होंगे। गेम में सत्र से लेकर ई-कॉमर्स वेबसाइटों पर शॉपिंग कार्ट तक सभी प्रकार की सुविधाएँ क्लाइंट-साइड स्टोरेज पर निर्भर करती हैं।
क्लाइंट-साइड स्टोरेज वेब ऐप्स को गोपनीयता-केंद्रित आर्किटेक्चर को लागू करने में भी सक्षम बनाता है। आप इसका उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि संवेदनशील डेटा कभी भी उपयोगकर्ता के उपकरण को न छोड़े।
क्लाइंट-साइड स्टोरेज क्या है?
वेब विकास में, क्लाइंट-साइड स्टोरेज उन विभिन्न तरीकों को संदर्भित करता है जो वेब ब्राउज़र डेटा स्टोर कर सकते हैं। एक एप्लिकेशन तब इस डेटा का उपयोग उपयोगकर्ताओं को कार्यक्षमता प्रदान करने के लिए कर सकता है। क्लाइंट-साइड स्टोरेज कुछ कारणों से महत्वपूर्ण है:
- क्लाइंट पर संग्रहीत डेटा का उपयोग करने के लिए काफी तेज़ है, और आपका ऐप इंटरनेट के बिना उस तक पहुंच सकता है।
- क्लाइंट-साइड स्टोरेज आपके एप्लिकेशन के लिए प्रत्येक उपयोगकर्ता की प्राथमिकताओं को याद रखना आसान बनाता है।
- क्लाइंट पर स्थायी रूप से कुछ डेटा संग्रहीत करने से उपयोगकर्ता की गोपनीयता की रक्षा करना आसान हो जाता है।
- सर्वर पर सभी एप्लिकेशन डेटा को स्टोर करना महंगा है, खासकर बड़े पैमाने पर।
क्लाइंट-साइड स्टोरेज के कई अलग-अलग रूप हैं जिनका उपयोग आप अपने वेब ऐप्स में कर सकते हैं।
कुकीज़
ब्राउज़र कुकी आपके कंप्यूटर पर एक स्ट्रिंग के रूप में संग्रहीत कुंजी/मान डेटा का एक टुकड़ा है। ब्राउज़र प्रत्येक अनुरोध पर साइट के सर्वर पर किसी विशेष साइट के लिए सभी कुकीज़ भेजते हैं। कुकीज क्लाइंट-साइड स्टोरेज का पहला (और कुछ समय के लिए, एकमात्र) प्रकार था।
कुकी के आकार की कोई आधिकारिक सीमा नहीं है, लेकिन अलग-अलग ब्राउज़र आपके द्वारा सेट की जा सकने वाली कुकीज़ के आकार और संख्या पर अलग-अलग सीमाएँ रखते हैं। आरएफसी 6265 धारा 6.1 निम्नलिखित न्यूनतम कुकी क्षमता ब्राउज़रों (उपयोगकर्ता एजेंटों) को प्रदान करना चाहिए:
व्यावहारिक उपयोगकर्ता एजेंट कार्यान्वयन में कुकीज़ की संख्या और आकार की सीमाएं होती हैं जिन्हें वे स्टोर कर सकते हैं। सामान्य उपयोग वाले उपयोगकर्ता एजेंटों को निम्नलिखित न्यूनतम क्षमताओं में से प्रत्येक प्रदान करना चाहिए:
- प्रति कुकी कम से कम 4096 बाइट्स (कुकी के नाम, मूल्य और विशेषताओं की लंबाई के योग द्वारा मापा जाता है)।
- प्रति डोमेन कम से कम 50 कुकीज़।
- कुल कम से कम 3000 कुकीज़।
कुकीज़ अलग-अलग समय के लिए ब्राउज़र पर रह सकती हैं। कुछ एक पृष्ठ सत्र के अंत में समाप्त हो जाते हैं, और कुछ में मनमाने ढंग से समाप्ति तिथियां होती हैं जो भविष्य में महीनों तक फैल सकती हैं।
जब आप कोई नया टैब खोलते हैं तो ब्राउज़र एक पेज सत्र बनाते हैं और जब आप टैब या ब्राउज़र बंद करते हैं तो वे इसे समाप्त कर देते हैं। यदि आप पृष्ठ को पुनः लोड या रीफ़्रेश करते हैं, तो ब्राउज़र पृष्ठ सत्र को समाप्त नहीं करेगा।
कुकीज़ के लिए मामलों का प्रयोग करें
कुकीज़ डेटा के छोटे टुकड़ों को संग्रहीत करने के लिए सबसे उपयुक्त हैं जिन्हें सर्वर को अक्सर पढ़ने या संशोधित करने की आवश्यकता होती है। क्यों?
- कुकीज़ स्वचालित रूप से सभी नेटवर्क अनुरोधों से जुड़ी होती हैं
- कुकीज़ केवल थोड़ी मात्रा में स्ट्रिंग डेटा संग्रहीत कर सकती हैं।
आप किसी उपयोगकर्ता की पहचान करने के लिए कुकीज़ का उपयोग कर सकते हैं (जैसे सत्र आईडी), बुकमार्क करने के उद्देश्य से पेज विज़िट रिकॉर्ड करें, या गेम के उच्च स्कोर को स्टोर करें।
स्थानीय भंडार
कुकी की तरह, लोकलस्टोरेज एक की/वैल्यू स्टोर है जो स्ट्रिंग डेटा को स्टोर करता है। जबकि दोनों भंडारण प्रकार समान हैं, स्थानीय स्टोरेज और कुकीज़ कई मायनों में भिन्न हैं:
- लोकलस्टोरेज जावास्क्रिप्ट पर निर्भर करता है।
- स्थानीय स्टोरेज में डेटा मुख्य रूप से ब्राउज़र पर रहता है। आपको इसे हर अनुरोध पर भेजने वाले ब्राउज़र के बजाय जानबूझकर सर्वर पर भेजना होगा।
- लोकलस्टोरेज की कोई समाप्ति तिथि नहीं है। यह क्लाइंट पर तब तक बना रहता है जब तक कोई डेवलपर इसे जावास्क्रिप्ट से हटा नहीं देता या उपयोगकर्ता अपने ब्राउज़र स्टोरेज को साफ़ नहीं कर देता।
- लोकलस्टोरेज की स्टोरेज क्षमता बहुत अधिक है। WHATWG कल्पना एक कठिन सीमा निर्दिष्ट नहीं करता है, लेकिन के अनुसार विकिपीडिया, प्रमुख ब्राउज़रों में लोकलस्टोरेज का न्यूनतम आकार 5 एमबी है:
ब्राउज़र कुकीज़ को 4 किलोबाइट तक सीमित करते हैं। वेब भंडारण कहीं अधिक भंडारण क्षमता प्रदान करता है:
- ओपेरा 10.50+ 5 एमबी. की अनुमति देता है
- सफारी 8 5 एमबी. की अनुमति देता है
- फ़ायरफ़ॉक्स 34 10 एमबी. की अनुमति देता है
- Google क्रोम प्रति मूल 10 एमबी की अनुमति देता है
- इंटरनेट एक्सप्लोरर 10 एमबी प्रति भंडारण क्षेत्र की अनुमति देता है
स्थानीय भंडारण के लिए मामलों का प्रयोग करें
स्थानीय स्टोरेज बड़ी मात्रा में डेटा संग्रहीत करने के लिए एकदम सही है जिसे सर्वर को शायद ही कभी संदर्भित करने की आवश्यकता होती है। यह किसी एप्लिकेशन की उपयोगकर्ता सेटिंग्स, थीम कॉन्फ़िगरेशन विवरण, या हाल ही में भरे गए फॉर्म में डेटा हो सकता है। ऐसा इसलिए है क्योंकि स्थानीय स्टोरेज में कुकीज़ की तुलना में बहुत बड़ी भंडारण सीमा होती है, लेकिन आपको इसके डेटा को सर्वर पर भेजने के लिए अतिरिक्त प्रयास करने की आवश्यकता होती है।
यदि आप डेटा को JSON के रूप में संग्रहीत करते हैं, तो आप स्थानीय स्टोरेज का उपयोग करके उचित रूप से जटिल डेटा स्टोर कर सकते हैं, भले ही यह केवल तारों को स्टोर कर सके।
लोकलस्टोरेज की चपेट में है एक्सएसएस हमले, इसलिए आपको इसमें संवेदनशील क्लाइंट डेटा संग्रहीत नहीं करना चाहिए।
सत्र भंडारण
सेशनस्टोरेज एक की/वैल्यू स्टोर है जो काम करता है लगभग लोकलस्टोरेज के समान, एक चीज़ के अलावा। संग्रहीत डेटा केवल एक पृष्ठ सत्र की अवधि के लिए बना रहता है।
सत्र भंडारण के लिए मामलों का प्रयोग करें
आप उसी प्रकार के डेटा को स्थानीय स्टोरेज के रूप में संग्रहीत करने के लिए सत्र स्टोरेज का उपयोग कर सकते हैं, लेकिन केवल तभी जब डेटा को पृष्ठ सत्र से आगे जारी रखने की आवश्यकता नहीं होती है।
अनुक्रमितडीबी
IndexedDB बड़ी मात्रा में संरचित डेटा संग्रहीत करने के लिए एक शक्तिशाली ब्राउज़र API है। यह एक ट्रांजेक्शनल, ऑब्जेक्ट-ओरिएंटेड डेटाबेस है जो डेटा को की/वैल्यू पेयर में स्टोर करता है।
यदि आप कम मात्रा में डेटा से निपट रहे हैं, तो स्थानीय स्टोरेज/सत्र स्टोरेज बेहतर, आसान विकल्प है। दुर्भाग्य से, वे अपनी भंडारण क्षमता और इस तथ्य से सीमित हैं कि वे केवल स्ट्रिंग डेटा संग्रहीत कर सकते हैं। IndexedDB न केवल फ़ाइलों/बाइनरी डेटा सहित विभिन्न प्रकार के डेटा को संग्रहीत करने की अनुमति देता है, बल्कि यह बहुत अधिक डेटा भी संग्रहीत कर सकता है। इंडेक्सड डीबी डेटाबेस की तेजी से खोज की अनुमति देने के लिए अपनी सामग्री की अनुक्रमणिका भी बनाता है।
IndexedDB के लिए मामलों का उपयोग करें
IndexedDB अनिवार्य रूप से ब्राउज़र में एक NoSQL डेटाबेस है, और यह बहुत बड़ी मात्रा में डेटा स्टोर कर सकता है। कोई भी उपयोग मामला जिसमें 10 एमबी से अधिक डेटा संग्रहीत करने की आवश्यकता होती है, इंडेक्सड डीबी के लिए उपयुक्त है।
ब्राउज़र संग्रहण के अन्य रूपों के विपरीत, IndexedDB स्ट्रिंग्स को संग्रहीत करने तक सीमित नहीं है। IndexedDB सभी मानक JavaScript प्रकारों के डेटा को संग्रहीत कर सकता है। यदि आप मुख्य रूप से ऑफ़लाइन काम करने के लिए एक वेब एप्लिकेशन बनाते हैं, तो आप सभी एप्लिकेशन के डेटा को स्टोर करने के लिए इंडेक्सड डीबी का उपयोग कर सकते हैं।
क्लाइंट-साइड स्टोरेज लचीला और शक्तिशाली है
क्लाइंट-साइड स्टोरेज शब्द ब्राउज़र में एप्लिकेशन डेटा को संग्रहीत करने के लिए संदर्भित करता है। अधिकांश आधुनिक वेब अनुप्रयोगों के कामकाज के लिए क्लाइंट-साइड स्टोरेज आवश्यक है। क्लाइंट-साइड स्टोरेज के विभिन्न प्रकार हैं: कुकीज़, स्थानीय/सत्र स्टोरेज, और इंडेक्सड डीबी।
सभी प्रकार के ब्राउज़र स्टोरेज की क्षमता और उनके द्वारा स्टोर किए जा सकने वाले डेटा के प्रकार पर अलग-अलग सीमाएं होती हैं। कुकीज़ सबसे सीमित प्रकार हैं, स्थानीय / सत्र स्टोरेज सबसे सुविधाजनक है, और इंडेक्सड डीबी सबसे शक्तिशाली है।