कुकीज़ एक स्वादिष्ट स्नैक और आधुनिक वेबसाइटों का एक महत्वपूर्ण हिस्सा दोनों हैं।
कुकीज़ आपको वेब ब्राउज़र में उपयोगकर्ता के बारे में डेटा संग्रहीत करने की अनुमति देती हैं। कुकीज़ अक्सर प्रमाणीकरण सत्र जैसी जानकारी संग्रहीत करती हैं ताकि ब्राउज़र याद रखे कि आपने वेब पेज पर लॉग इन किया है।
इस गाइड में, हम बात करने जा रहे हैं कि कुकीज़ क्यों मौजूद हैं, कुकीज़ के प्रकार क्या हैं और JavaScript में कुकीज़ का उपयोग कैसे करें। शुरू करते हैं!
ब्राउज़र कुकीज़ क्या हैं?
कुकीज़ टेक्स्ट की स्ट्रिंग्स हैं जो उपयोगकर्ता के बारे में जानकारी उनके ब्राउज़र में संग्रहीत करती हैं। इस विचार को नेटस्केप द्वारा विकसित किया गया था, जिसने 1990 के दशक में दुनिया के सबसे लोकप्रिय ब्राउज़रों में से एक विकसित किया था। नेटस्केप ने यह ट्रैक करने के लिए कुकीज़ विकसित कीं कि क्या किसी उपयोगकर्ता ने पहले ही उनकी साइट देखी है। यदि उन्होंने देखा है, तो इसका मतलब है कि उपयोगकर्ता शायद नेटस्केप के बारे में कुछ जानता है।
कुकीज़ में कम से कम एक नाम और एक मान फ़ील्ड होना चाहिए। नाम फ़ील्ड का उपयोग मान फ़ील्ड की सामग्री की पहचान करने के लिए किया जाता है। कुकी आप अपने एप्लिकेशन्स में कुकीज़ का उपयोग कैसे कर रहे हैं, इस पर निर्भर करते हुए फ़ाइल पथ और जब यह समाप्त होती है जैसे अतिरिक्त एट्रिब्यूट्स संग्रहीत कर सकती है।
कुकी का एक उदाहरण यहाँ दिया गया है:
Name: Authentication Value: AUTHENTICATION_KEY Domain: careerkarma.com
कुकीज़ key:value जोड़े में संग्रहीत की जाती हैं। जब आप इस कुकी को देखते हैं, तो आप निम्नलिखित देखेंगे:
Authentication=AUTHENTICATION_KEY
यह कुकी आपके ब्राउज़र में AUTHENTICATION_KEY मान संग्रहीत करेगी। हर बार जब आप डोमेन careerkarma.com तक पहुंचते हैं, तो वह कुकी साइट पर उपलब्ध कराई जाएगी।
आप किसी साइट के लिए कितनी कुकीज़ सेट कर सकते हैं इसकी कोई सीमा नहीं है, लेकिन आप जो पाएंगे वह यह है कि अधिकांश एप्लिकेशन्स को केवल कुछ, यदि कोई हो, सेट करने की आवश्यकता होती है। अक्सर, कुकीज़ का उपयोग उपयोगकर्ता के सत्र का ट्रैक रखने के लिए किया जाता है।
ब्राउज़र कुकीज़ पुनर्प्राप्त करें
JavaScript में document.cookie नामक एक ऑब्जेक्ट होता है जो किसी साइट पर उपलब्ध सभी कुकीज़ के बारे में जानकारी संग्रहीत करता है। कुकीज़ सेट, अपडेट और हटाने के लिए, हमें इस ऑब्जेक्ट में हेरफेर करने की आवश्यकता है। कुकीज़ पुनर्प्राप्त करने के लिए, हम बस इस ऑब्जेक्ट को कॉल कर सकते हैं:
console.log(document.cookie);
यह कोड ब्राउज़र में सेट सभी कुकीज़ की सूची लौटाएगा। इस सूची से कस्टम फंक्शन लिखे बिना व्यक्तिगत कुकी को पुनर्प्राप्त करने का कोई तरीका नहीं है।
ब्राउज़र कुकी कैसे सेट करें
ब्राउज़र कुकी कैसे सेट करें? खैर, एक बात है जो आपको पहले से पता होनी चाहिए: यह यकीनन अपनी खुद की कुकीज़ बेक करने से आसान है।
मान लीजिए हम उपयोगकर्ता के ईमेल को कुकी में संग्रहीत करना चाहते हैं। हम ऐसा इस JavaScript कोड का उपयोग करके कर सकते हैं:
document.cookie = "email=user@email.com"; console.log(document.cookie);
यह कोड "email" नाम और "user@email.com" मान के साथ एक कुकी बनाता है। हमारा console.log() स्टेटमेंट निम्नलिखित लौटाता है:
email=user@email.com;
आप यह भी निर्दिष्ट कर सकते हैं कि कुकी किस पथ पर उपलब्ध है:
document.cookie = "email=user@email.com; path=/dashboard";
यह कोड "email" कुकी को उन सभी पथों पर उपलब्ध कराएगा जो "/dashboard" से शुरू होते हैं।
कुकी समाप्ति तिथियाँ
डिफ़ॉल्ट रूप से, कुकीज़ ब्राउज़र बंद होने पर हटा दी जाती हैं। जब आप कुकी सेट कर रहे होते हैं, तो आप वैकल्पिक रूप से एक समाप्ति तिथि जोड़ सकते हैं जो इस सेटिंग को ओवरराइड करेगी:
document.cookie = "email=user@email.com; expires=Wed, 24 Jun 2019 12:00:00 UTC";
यह एक कुकी बनाएगा जो 24 जून, 2020 को दिन की शुरुआत में समाप्त होती है। आपकी समाप्ति तिथि UTC समय में निर्दिष्ट की जानी चाहिए।
समाप्ति तिथि सेट करने का एक सामान्य दृष्टिकोण JavaScript Date ऑब्जेक्ट का उपयोग करना है, जो UTC टाइमस्टैम्प लौटाता है। 30 जून, 2020 को समाप्त होने के लिए सेट कुकी इस कोड का उपयोग करेगी:
const expiryDate = new Date(2020, 6, 30); document.cookie = "email=user@email.com; expires=" + expiryDate + ";";
document.cookie ऑब्जेक्ट कुकी की अधिकतम आयु, या Max-Age सेट करने का समर्थन करता है, जो बताता है कि कुकी समाप्त होने से पहले कितने समय तक उपलब्ध होनी चाहिए। जबकि यह हर ब्राउज़र द्वारा समर्थित नहीं है, यह आपके लिए कुकीज़ बनाना आसान बनाता है जो इस पर निर्भर करते हुए समाप्त होती हैं कि उपयोगकर्ता ने कुकी का निर्माण कब शुरू किया:
const expiryDate = 24 * 60 * 60 * 2; document.cookie = "email=user@email.com; max-age=" + expiryDate + ";";
यह एक कुकी बनाएगा जो दो दिनों के बाद समाप्त हो जाएगी।
कुकीज़ अपडेट करना और हटाना
कुकीज़ अपडेट या हटाने के लिए कोई फंक्शन्स नहीं हैं। इसके बजाय, आप "document.cookie" ऑब्जेक्ट में बदलाव करते हैं।
आप कुकी को उसी तरह अपडेट कर सकते हैं जैसे आपने इसे बनाया था:
document.cookie = "email=user@email.app;"
यह "email" के मान को "user@email.com" से "user@email.app" में बदल देता है।
कुकी हटाने के लिए समान दृष्टिकोण का उपयोग किया जाता है। आपको केवल कुकी बनाने या अपडेट करने के लिए उपयोग किए गए समान सिंटैक्स का उपयोग करना है, लेकिन कुकी को असाइन किए गए मान को हटा दें:
document.cookie = "email=; expires=Wed, 24 Jun 2019 12:00:00 UTC; path=/;"
सही कुकी हटाना सुनिश्चित करने के लिए आपको पथ निर्दिष्ट करना चाहिए।
कुकीज़ के प्रकार
रास्पबेरी। चॉकलेट चिप। फज। नहीं, कुकीज़ के वे प्रकार नहीं! ब्राउज़र में, कुकीज़ के तीन मुख्य प्रकार हैं: सेशन, थर्ड-पार्टी और पर्सिस्टेंट।
सेशन कुकीज़ वे कुकीज़ हैं जो ब्राउज़र बंद होने तक मौजूद रहती हैं। ये समाप्ति तिथि के बिना सेट की गई कुकीज़ हैं, जैसे हमारे पहले उदाहरण में। यह ध्यान देने योग्य है कि कुछ डेवलपर्स "सेशन कुकी" शब्द का उपयोग किसी भी कुकी को संदर्भित करने के लिए करते हैं जो उपयोगकर्ता को प्रमाणित करती है, लेकिन सेशन कुकीज़ प्रमाणीकरण के लिए उपयोग की जाने वाली एकमात्र कुकीज़ नहीं हैं।
पर्सिस्टेंट कुकीज़ वे कुकीज़ हैं जो ब्राउज़र बंद होने के बाद भी मौजूद रहती हैं। ये सेट समाप्ति तिथि वाली कुकीज़ हैं।
थर्ड-पार्टी कुकीज़ वे कुकीज़ हैं जो अन्य वेबसाइटों द्वारा बनाई गई हैं। इसका एक उदाहरण Google Analytics कुकीज़ है। यदि आप अपनी साइट पर Google Analytics इंस्टॉल करते हैं, तो एक्सटेंशन उपयोगकर्ताओं का ट्रैक रखने के लिए कुकीज़ सेट करने में सक्षम होगा।
निष्कर्ष
कुकीज़ ब्राउज़र में उपयोगकर्ता जानकारी संग्रहीत करने का एक आसान तरीका है। उनका उपयोग अक्सर यह ट्रैक करने के लिए किया जाता है कि कोई उपयोगकर्ता पहले किसी साइट पर गया है या नहीं और प्रमाणीकरण कुकीज़ संग्रहीत करने के लिए।
कुकीज़ के तीन मुख्य प्रकार हैं: सेशन, पर्सिस्टेंट और थर्ड-पार्टी। अपने स्वयं के एप्लिकेशन्स के लिए, आप मुख्य रूप से सेशन और पर्सिस्टेंट कुकीज़ का उपयोग करने पर केंद्रित होंगे।