वेब को इस तरह से डिज़ाइन किया गया है कि वेब ब्राउज़र से किसी वेबसाइट को किया गया हर अनुरोध अलग होता है. वेब को इस तरह से डिज़ाइन किया गया है कि वह कोई जानकारी सेव नहीं करता. जब भी कोई वेब पेज खोला जाता है, तो आपकी विज़िट की गई वेबसाइट को आपके पिछले सेशन की जानकारी याद नहीं रहती. इससे वेब को ज़्यादा असरदार बनाने में मदद मिलती है, क्योंकि अनुरोधों और जवाबों को ट्रैक करने के लिए किसी मेकेनिज़्म की ज़रूरत नहीं होती.
हालांकि, वेब पर मौजूद जानकारी को आसानी से भुलाया जा सकता है. यह भी एक समस्या है. उदाहरण के लिए, अगर वेबसाइट को यह याद नहीं रहता कि आपने अभी-अभी शॉपिंग कार्ट में क्या जोड़ा है, तो शॉपिंग कार्ट कैसे काम करेगा?
कुकी को इसी समस्या को हल करने के लिए बनाया गया था.
कुकी, वेबसाइटों को आपकी जानकारी याद रखने में मदद करती हैं
किसी वेबसाइट के पेज पर जाने पर, आपका वेब ब्राउज़र वेबसाइट के सर्वर से पेज पर शामिल रिसॉर्स का अनुरोध करता है. जैसे, एचटीएमएल, सीएसएस, JavaScript या इमेज.
वेब ब्राउज़र और वेबसाइटें, एचटीटीपी प्रोटोकॉल का इस्तेमाल करके इंटरैक्ट करती हैं. यह कम्यूनिकेशन के लिए नियमों का स्टैंडर्ड सेट है.
किसी संसाधन के लिए किए गए एचटीटीपी अनुरोध के जवाब में, वेबसाइट सर्वर संसाधन के साथ-साथ अतिरिक्त जानकारी भी शामिल कर सकता है. इसे हेडर कहा जाता है. एचटीटीपी रिस्पॉन्स में शामिल Set-Cookie
हेडर, आपके ब्राउज़र को कुछ टेक्स्ट सेव करने के लिए कहता है: एक नाम और एक वैल्यू. इसे कुकी कहा जाता है. उदाहरण के लिए, रिस्पॉन्स हेडर Set-Cookie: cat=tabby
आपके ब्राउज़र को "cat" नाम वाली कुकी को "tabby" वैल्यू के साथ सेव करने के लिए कहता है.
यह कुकी सेट होने के बाद, आपकी वेबसाइट पर ब्राउज़र से किए गए अगले अनुरोधों में Cookie: cat=tabby
हेडर शामिल होगा. वेबसाइट का सर्वर, अनुरोध हेडर से कुकी को ऐक्सेस कर सकता है. साथ ही, वैल्यू का इस्तेमाल कर सकता है.
कुकी कैसे काम करती हैं: सिलसिलेवार तरीके से जानकारी
मान लें कि आपने cats.example
वेबसाइट पर विज़िट किया. यह साइट आपको बिल्ली की कोई इमेज दिखाना चाहती है. साथ ही, यह रिकॉर्ड रखना चाहती है कि आपको कौनसी बिल्ली की इमेज दिखाई गई थी.
कुकी की मदद से ऐसा करने का तरीका यहां बताया गया है.
1. ब्राउज़र किसी फ़ाइल का अनुरोध करता है
आपने वेबसाइट cats.example
के होम पेज पर जाकर, इस सुविधा को चालू किया हो.
जब आपका ब्राउज़र होम पेज के एचटीएमएल को प्रोसेस कर लेता है, तब वह पेज पर मौजूद फ़ाइलों का अनुरोध करता है. इनमें cat.jpg
से cats.example
भी शामिल है.
2. वेबसाइट का सर्वर जवाब देता है
cats.example
पर मौजूद सर्वर, इमेज फ़ाइल cat.jpg
के साथ जवाब देता है.
जवाब के साथ, सर्वर एक हेडर शामिल करता है: Set-Cookie: cat=tabby
.
3. ब्राउज़र को जवाब मिलता है
आपका ब्राउज़र, इमेज फ़ाइल को प्रोसेस करता है. साथ ही, उसमें शामिल Set-Cookie: cat=tabby
हेडर को भी प्रोसेस करता है.
यह कुकी सेव की जाती है: नाम cat
, वैल्यू tabby
.
4. ब्राउज़र अतिरिक्त अनुरोध करता है
अब से, आपका ब्राउज़र cats.example
के अनुरोधों के साथ Cookie: cat=tabby
हेडर को शामिल करेगा.
जब cats.example
वेब सर्वर को कोई अनुरोध मिलता है, तो वह कुकी को प्रोसेस कर सकता है. साथ ही, उस वैल्यू के साथ अपनी पसंद के मुताबिक कोई भी कार्रवाई कर सकता है. जैसे, यह पक्का करना कि आपको एक ही टैबी कैट की इमेज फिर से न भेजी जाए.
कुकी की पूरी प्रोसेस यहां दी गई है:
- आपका ब्राउज़र, किसी वेबसाइट के सर्वर से फ़ाइल का अनुरोध करता है.
- सर्वर, अनुरोध के जवाब में भेजी गई फ़ाइल के साथ
Set-Cookie: cat=tabby
जैसा हेडर शामिल कर सकता है. - जब आपका ब्राउज़र जवाब पाता है, तो वह कुकी को सेव कर लेता है.
- इसके बाद, हर अनुरोध के साथ आपका ब्राउज़र, सर्वर को
Cookie: cat=tabby
हेडर में कुकी भेजता है.
JavaScript की मदद से कुकी ऐक्सेस करना
पिछले उदाहरण में, कुकी सेट करने के लिए Set-Cookie
रिस्पॉन्स हेडर का इस्तेमाल किया गया है.
document.cookie
तरीके का इस्तेमाल करके, JavaScript की मदद से भी कुकी बनाई जा सकती हैं.
डेमो आज़माएं: javascript-cookie.glitch.me.
ज़्यादा जानें: दस्तावेज़: कुकी प्रॉपर्टी.
हमें कुकी की ज़रूरत क्यों होती है?
साल 1994 में, इंजीनियर लू मोंटुली, सॉफ़्टवेयर कंपनी Netscape में काम कर रहे थे. इस कंपनी ने 1990 के दशक के बीच में सबसे लोकप्रिय वेब ब्राउज़र बनाया था.
इस बीच, टेलीकॉम कंपनी MCI, दुनिया के पहले ऑनलाइन स्टोर में से एक के लिए शॉपिंग कार्ट बनाने की कोशिश कर रही थी. एमआईसीआई ने मोंटुली से संपर्क करके, अपनी समस्या के बारे में बताया. मोंटुली ने HTTP में एक सुविधा जोड़कर जवाब दिया. इससे कोई साइट, उपयोगकर्ता के वेब ब्राउज़र पर कम मात्रा में टेक्स्ट सेव कर सकती थी. इसमें एक नाम और एक वैल्यू होती थी: जैसे कि cart-id=123
. उन्होंने इसे "कुकी" कहा, क्योंकि उन दिनों प्रोग्रामर, डेटा कम्यूनिकेशन में शामिल की गई अतिरिक्त जानकारी के छोटे हिस्से के लिए "मैजिक कुकी" शब्द का इस्तेमाल करते थे.
मोंटुली ने एचटीटीपी कुकी पर काम एक हफ़्ते से भी कम समय में पूरा कर लिया था. उन्हें यह नहीं पता था कि कुकी, वेब प्लैटफ़ॉर्म की ज़रूरी सुविधाओं के लिए बुनियादी चीज़ बन जाएंगी. जैसे, विज्ञापन दिखाना, लॉग-इन करना, पेमेंट करना, और धोखाधड़ी का पता लगाना. कुकी एक ऐसी टेक्नोलॉजी है जो देखने में आसान लगती है, लेकिन इसके कई बुरे असर हुए हैं.
कुकी का इस्तेमाल
कुकी, ब्राउज़र को उपयोगकर्ता के बारे में थोड़ी जानकारी सेव करने की अनुमति देती हैं. इससे ब्राउज़र, कई अनुरोधों के दौरान कुछ जानकारी "याद रख" पाता है. कुकी का इस्तेमाल कई कामों के लिए किया जाता है:
- सेशन मैनेजमेंट
इस कुकी की मदद से, वेबसाइट किसी उपयोगकर्ता को पहचान सकती है. उदाहरण के लिए, अलग-अलग पेजों पर लॉग-इन की स्थिति को बनाए रखने के लिए. - दिलचस्पी के मुताबिक अनुभव
यह कुकी, उपयोगकर्ता की प्राथमिकताओं को सेव करती है. जैसे, भाषा, थीम या हाल ही में देखे गए आइटम. इससे वेबसाइट पर उपयोगकर्ता के अनुभव को बेहतर बनाया जा सकता है. - ट्रैकिंग
पहले, कुकी का इस्तेमाल अलग-अलग वेबसाइटों पर उपयोगकर्ता के व्यवहार को ट्रैक करने के लिए किया जाता था. साथ ही, इनका इस्तेमाल टारगेट करके विज्ञापन दिखाने और अन्य कामों के लिए भी किया जाता था.
कुकी का इस्तेमाल ज़्यादातर आइडेंटिफ़ायर के लिए किया जाता है. इनका इस्तेमाल सीधे तौर पर जानकारी सेव करने के लिए नहीं किया जाता.
उदाहरण के लिए, ऑनलाइन पेट शॉप पर मौजूद आपके शॉपिंग कार्ट की कुकी, प्रॉडक्ट की सूची नहीं दिखाएगी. इसके बजाय, यह एक खाता आईडी देगी. इससे पेट शॉप, सर्वर-साइड डेटा स्टोरेज में यह देख पाएगी कि आपके कार्ट में क्या-क्या है.
पालतू जानवरों की दुकान के सर्वर को किए गए अनुरोध में, इस तरह का कुकी हेडर शामिल हो सकता है:
Cookie: _cart=CART1.2.34567890.123456789
इसके बाद, सर्वर अपने डेटास्टोर में _cart
खाते को ढूंढ सकता है. साथ ही, अनुरोध के बारे में अन्य जानकारी शामिल कर सकता है.
ज़्यादा जानें
- कुकी एट्रिब्यूट
- तीसरे पक्ष की कुकी क्या होती हैं?
- एचटीटीपी अनुरोध और जवाब
- कुकी टूल
- कुकी के डेमो
- एचटीटीपी कुकी का इस्तेमाल करना
- The Magic Cookie: How Lou Montulli cured the Web's amnesia
- एचटीटीपी कुकी (ओरिजनल स्पेसिफ़िकेशन)
- एचटीटीपी कुकी या प्रोटोकॉल डिज़ाइन न करने का तरीका