कुकी क्या होती हैं?

वेब को इस तरह से डिज़ाइन किया गया है कि वेब ब्राउज़र से किसी वेबसाइट को किया गया हर अनुरोध अलग होता है. वेब को इस तरह से डिज़ाइन किया गया है कि वह कोई जानकारी सेव नहीं करता. जब भी कोई वेब पेज खोला जाता है, तो आपकी विज़िट की गई वेबसाइट को आपके पिछले सेशन की जानकारी याद नहीं रहती. इससे वेब को ज़्यादा असरदार बनाने में मदद मिलती है, क्योंकि अनुरोधों और जवाबों को ट्रैक करने के लिए किसी मेकेनिज़्म की ज़रूरत नहीं होती.

हालांकि, वेब पर मौजूद जानकारी को आसानी से भुलाया जा सकता है. यह भी एक समस्या है. उदाहरण के लिए, अगर वेबसाइट को यह याद नहीं रहता कि आपने शॉपिंग कार्ट में क्या आइटम जोड़े हैं, तो शॉपिंग कार्ट कैसे काम करेगा?

कुकी को इसी समस्या को हल करने के लिए बनाया गया था.

कुकी, वेबसाइटों को आपकी जानकारी याद रखने में मदद करती हैं

किसी वेबसाइट के पेज पर जाने पर, आपका वेब ब्राउज़र वेबसाइट के सर्वर से पेज पर शामिल रिसॉर्स का अनुरोध करता है. जैसे, एचटीएमएल, सीएसएस, JavaScript या इमेज.

वेब ब्राउज़र और वेबसाइटें, एचटीटीपी प्रोटोकॉल का इस्तेमाल करके एक-दूसरे से इंटरैक्ट करती हैं. यह कम्यूनिकेशन के लिए नियमों का स्टैंडर्ड सेट है.

किसी संसाधन के लिए किए गए एचटीटीपी अनुरोध के जवाब में, वेबसाइट सर्वर संसाधन के साथ-साथ अतिरिक्त जानकारी भी शामिल कर सकता है. इस जानकारी को हेडर कहा जाता है. एचटीटीपी रिस्पॉन्स में शामिल Set-Cookie हेडर, आपके ब्राउज़र को कुछ टेक्स्ट सेव करने के लिए कहता है: एक नाम और एक वैल्यू. इसे कुकी कहा जाता है. उदाहरण के लिए, रिस्पॉन्स हेडर Set-Cookie: cat=tabby आपके ब्राउज़र को "cat" नाम वाली कुकी को "tabby" वैल्यू के साथ सेव करने के लिए कहता है.

यह कुकी सेट होने के बाद, आपकी वेबसाइट पर ब्राउज़र से किए गए अनुरोधों में Cookie: cat=tabby हेडर शामिल होगा. वेबसाइट का सर्वर, अनुरोध हेडर से कुकी को ऐक्सेस कर सकता है. साथ ही, वैल्यू का इस्तेमाल कर सकता है.

कुकी कैसे काम करती हैं: सिलसिलेवार तरीके से जानकारी

मान लें कि आपने cats.example वेबसाइट पर विज़िट किया. यह साइट आपको बिल्ली की कोई इमेज दिखाना चाहती है. साथ ही, यह रिकॉर्ड रखना चाहती है कि आपको कौनसी बिल्ली की इमेज दिखाई गई थी.

कुकी की मदद से ऐसा करने का तरीका यहां बताया गया है.

1. ब्राउज़र किसी फ़ाइल का अनुरोध करता है

आपने वेबसाइट cats.example के होम पेज पर जाकर, इस सुविधा को चालू किया हो.

जब आपका ब्राउज़र होम पेज के एचटीएमएल को प्रोसेस कर लेता है, तब वह पेज पर मौजूद फ़ाइलों का अनुरोध करता है. इनमें cat.jpg से cats.example भी शामिल है.

https://cats.example/cat.jpg पर एचटीटीपी अनुरोध

2. वेबसाइट का सर्वर जवाब देता है

cats.example पर मौजूद सर्वर, इमेज फ़ाइल cat.jpg के साथ जवाब देता है.

जवाब के साथ, सर्वर एक हेडर शामिल करता है: Set-Cookie: cat=tabby.

https://cats.example/cat.jpg से मिला एचटीटीपी रिस्पॉन्स, जिसमें Set-Cookie:
cat=tabby हेडर मौजूद है

3. ब्राउज़र को जवाब मिलता है

आपका ब्राउज़र, इमेज फ़ाइल को प्रोसेस करता है. साथ ही, उसमें शामिल Set-Cookie: cat=tabby हेडर को भी प्रोसेस करता है.

यह कुकी सेव की जाती है: नाम cat, वैल्यू tabby.

लैपटॉप पर वेब ब्राउज़र में मौजूद cookie cat=tabby.

4. ब्राउज़र अतिरिक्त अनुरोध करता है

अब से, आपका ब्राउज़र cats.example के अनुरोधों के साथ Cookie: cat=tabby हेडर को शामिल करेगा.

https://cats.example/cat.jpg पर भेजा गया एचटीटीपी अनुरोध, जिसमें Cookie: cat=tabby
हेडर मौजूद है

जब cats.example वेब सर्वर को कोई अनुरोध मिलता है, तो वह कुकी को प्रोसेस कर सकता है. साथ ही, उस वैल्यू के साथ अपनी पसंद के मुताबिक कोई भी कार्रवाई कर सकता है. जैसे, यह पक्का करना कि आपको एक ही टैबी कैट की इमेज फिर से न भेजी जाए.

कुकी की पूरी प्रोसेस यहां दी गई है:

  1. आपका ब्राउज़र, किसी वेबसाइट के सर्वर से फ़ाइल का अनुरोध करता है.
  2. सर्वर, अनुरोध के जवाब में भेजी गई फ़ाइल के साथ Set-Cookie: cat=tabby जैसा हेडर शामिल कर सकता है.
  3. जब आपका ब्राउज़र जवाब पाता है, तो वह कुकी को सेव कर लेता है.
  4. इसके बाद, हर अनुरोध के साथ आपका ब्राउज़र, सर्वर को Cookie: cat=tabby हेडर में कुकी भेजता है.


इस क्रम के डायग्राम में, वेब ब्राउज़र, cats.example, और cats.example के बीच अनुरोध और जवाब दिखाए गए हैं. इसमें यह भी दिखाया गया है कि कुकी कैसे सेट और भेजी जाती हैं.

JavaScript की मदद से कुकी ऐक्सेस करना

पिछले उदाहरण में, कुकी सेट करने के लिए Set-Cookie रिस्पॉन्स हेडर का इस्तेमाल किया गया है.

document.cookie तरीके का इस्तेमाल करके, JavaScript की मदद से भी कुकी बनाई जा सकती हैं.

डेमो आज़माएं: javascript-cookie.glitch.me.

ज़्यादा जानें: दस्तावेज़: कुकी प्रॉपर्टी.

हमें कुकी की ज़रूरत क्यों होती है?

साल 1994 में, इंजीनियर लू मोंटुली, सॉफ़्टवेयर कंपनी Netscape में काम कर रहे थे. इस कंपनी ने 1990 के दशक के बीच में सबसे लोकप्रिय वेब ब्राउज़र बनाया था. इस बीच, टेलीकॉम कंपनी MCI, दुनिया के पहले ऑनलाइन स्टोर में से एक के लिए शॉपिंग कार्ट बनाने की कोशिश कर रही थी. MCI ने मोंटुली से संपर्क करके, अपनी समस्या के बारे में बताया. मोंटुली ने जवाब में, एचटीटीपी में एक सुविधा जोड़ी. इससे कोई साइट, उपयोगकर्ता के वेब ब्राउज़र पर कम मात्रा में टेक्स्ट सेव कर सकती थी. इसमें एक नाम और एक वैल्यू होती थी: जैसे, cart-id=123. उन्होंने इसे "कुकी" कहा, क्योंकि उन दिनों प्रोग्रामर, डेटा कम्यूनिकेशन में शामिल की गई अतिरिक्त जानकारी के छोटे हिस्से के लिए "मैजिक कुकी" शब्द का इस्तेमाल करते थे.

मोंटुली ने एचटीटीपी कुकी पर काम एक हफ़्ते से भी कम समय में पूरा कर लिया था. उन्हें यह नहीं पता था कि कुकी, वेब प्लैटफ़ॉर्म की ज़रूरी सुविधाओं के लिए बुनियादी चीज़ बन जाएंगी. जैसे, विज्ञापन दिखाना, लॉग-इन करना, पेमेंट करना, और धोखाधड़ी का पता लगाना. कुकी एक ऐसी टेक्नोलॉजी है जो देखने में आसान लगती है, लेकिन इसके कई बुरे असर हुए हैं.

कुकी का इस्तेमाल

कुकी की मदद से ब्राउज़र, उपयोगकर्ता के बारे में थोड़ी जानकारी सेव कर पाता है. इससे कई अनुरोधों के दौरान, कुछ जानकारी को "याद" रखा जा सकता है. कुकी का इस्तेमाल कई कामों के लिए किया जाता है:

  • सेशन मैनेजमेंट
    इस कुकी की मदद से, वेबसाइट किसी उपयोगकर्ता को पहचान सकती है. उदाहरण के लिए, अलग-अलग पेजों पर लॉग-इन की स्थिति को बनाए रखने के लिए.
  • दिलचस्पी के मुताबिक अनुभव
    यह कुकी, उपयोगकर्ता की प्राथमिकताओं को सेव करती है. जैसे, भाषा, थीम या हाल ही में देखे गए आइटम. इससे वेबसाइट पर उपयोगकर्ता को उसकी दिलचस्पी के हिसाब से अनुभव दिया जा सकता है.
  • ट्रैकिंग
    पहले, कुकी का इस्तेमाल अलग-अलग वेबसाइटों पर उपयोगकर्ता के व्यवहार को ट्रैक करने के लिए किया जाता था. साथ ही, इनका इस्तेमाल टारगेट करके विज्ञापन दिखाने और अन्य कामों के लिए भी किया जाता था.

कुकी का इस्तेमाल ज़्यादातर आइडेंटिफ़ायर के लिए किया जाता है. इनका इस्तेमाल सीधे तौर पर जानकारी सेव करने के लिए नहीं किया जाता.

उदाहरण के लिए, किसी ऑनलाइन पेट शॉप पर मौजूद आपके शॉपिंग कार्ट की कुकी, प्रॉडक्ट की सूची नहीं दिखाएगी. इसके बजाय, यह एक खाता आईडी उपलब्ध कराएगी. इससे पेट शॉप, सर्वर-साइड डेटा स्टोरेज में यह देख पाएगी कि आपके कार्ट में क्या-क्या है.

पालतू जानवरों की दुकान के सर्वर को किए गए अनुरोध में, इस तरह का कुकी हेडर शामिल हो सकता है:

Cookie: _cart=CART1.2.34567890.123456789

इसके बाद, सर्वर अपने डेटास्टोर में _cart खाते को ढूंढ सकता है. साथ ही, अनुरोध के बारे में अन्य जानकारी शामिल कर सकता है.

ज़्यादा जानें