सत्र और कुकीज़ के बीच अंतर

सत्र और कुकी के बीच मुख्य अंतर

  • सत्र सर्वर-साइड फ़ाइलें हैं जिनमें उपयोगकर्ता जानकारी होती है, जबकि कुकीज़ क्लाइंट-साइड फ़ाइलें हैं जिनमें उपयोगकर्ता जानकारी होती है।
  • सत्र कुकी पर निर्भर है, लेकिन कुकी सत्र पर निर्भर नहीं है।
  • सत्र तब समाप्त होता है जब उपयोगकर्ता अपना ब्राउज़र बंद करता है, जबकि कुकी की समयावधि आपके द्वारा निर्धारित जीवनकाल पर निर्भर करती है।
  • आप एक सत्र में जितना चाहें उतना डेटा संग्रहीत कर सकते हैं, लेकिन कुकी में डेटा संग्रहण स्थान केवल 4KB है।
  • सत्र के भीतर सभी पंजीकृत डेटा को Session_destroy() कमांड का उपयोग करके नष्ट किया जा सकता है। हालाँकि, कुकी से डेटा हटाने के लिए unsetcookie() जैसा कोई कमांड नहीं है।  

सत्र और कुकीज़ के बीच अंतर
सत्र और कुकीज़ के बीच अंतर

यहाँ, मैंने इनके बीच के अंतर का विश्लेषण किया है सत्र और कुकी और उनके पक्ष-विपक्ष का व्यापक मूल्यांकन किया जाएगा।

एक सत्र क्या है?

सत्र सर्वर पर संग्रहीत एक वैश्विक चर है। प्रत्येक सत्र को एक अद्वितीय आईडी दी जाती है, जिसका उपयोग संग्रहीत मानों को पुनः प्राप्त करने के लिए किया जाता है। जब भी कोई सत्र बनाया जाता है, तो अद्वितीय सत्र आईडी वाली कुकी उपयोगकर्ता के कंप्यूटर पर संग्रहीत की जाती है और सर्वर को प्रत्येक अनुरोध के साथ वापस कर दी जाती है। यदि क्लाइंट ब्राउज़र कुकीज़ का समर्थन नहीं करता है, तो URL में अद्वितीय सत्र आईडी प्रदर्शित की जाती है। सत्रों में कुकीज़ की तुलना में अपेक्षाकृत बड़ी मात्रा में डेटा संग्रहीत करने की क्षमता होती है।

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

$_COOKIE सरणी चर की तरह ही, सत्र चर $_SESSION सरणी चर में संग्रहीत किए जाते हैं। कुकीज़ की तरह, सत्र को किसी भी HTML टैग से पहले शुरू किया जाना चाहिए।

मुझे सत्र का उपयोग क्यों और कब करना चाहिए?

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

इसका उपयोग तब भी किया जाता है जब आप कुकीज़ का समर्थन न करने वाले ब्राउज़र पर कुकीज़ का विकल्प चाहते हैं, ताकि वैश्विक चर को कुशल और अधिक सुरक्षित तरीके से संग्रहीत किया जा सके। यह उन्हें URL में पास करने या शॉपिंग कार्ट जैसे एप्लिकेशन को विकसित करने से बेहतर है जो अस्थायी रूप से 4KB से बड़ी क्षमता वाली जानकारी संग्रहीत करता है।

PHP के साथ सत्र बनाना

एक सत्र शुरू करने के लिए, आपको PHP में session_start फ़ंक्शन आरंभ करना होगा और उसके बाद अपने मानों को $_SESSION सुपरग्लोबल सरणी में सहेजना होगा।

उस परिदृश्य पर विचार करें जहां आप पेज विज़िट की आवृत्ति को ट्रैक करना चाहते हैं। इस उद्देश्य के लिए सत्र का उपयोग करना एक प्रभावी तरीका है।

निम्नलिखित उदाहरण दर्शाता है कि सत्रों में मान कैसे स्थापित करें और उन तक कैसे पहुँचें:

<?php

session_start(); //start the PHP_session function 

if(isset($_SESSION['page_count']))
{
     $_SESSION['page_count'] += 1;
}
else
{
     $_SESSION['page_count'] = 1;
}
 echo 'You are visitor number ' . $_SESSION['page_count'];

?>
आउटपुट:
You are visitor number 1

सत्र के लाभ

मेरे दृष्टिकोण से इस सत्र के लाभ इस प्रकार हैं।

  • एकाधिक अनुरोधों में निरंतर संवाद स्थिति बनाए रखकर उपयोगकर्ता सहभागिता को बढ़ाता है।
  • उपयोगकर्ता डेटा को अस्थायी रूप से संग्रहीत करके सर्वर लोड को कम करता है।
  • सीमित अवधि के लिए नियंत्रित डेटा एक्सपोजर के माध्यम से सुरक्षा में सुधार करता है।
  • उपयोगकर्ता के व्यवहार और प्राथमिकताओं के आधार पर वैयक्तिकृत अनुभव की अनुमति देता है।
  • कई चरणों पर नज़र रखकर जटिल लेनदेन को सुगम बनाता है।
  • पुनः प्रमाणीकरण की आवश्यकता को न्यूनतम करके वेबसाइट के प्रदर्शन को बढ़ाता है।
  • वितरित प्रणालियों में उपयोगकर्ता सत्रों को प्रभावी ढंग से प्रबंधित करके स्केलेबिलिटी का समर्थन करता है।

सत्र के नुकसान

मेरे अनुभव में, सत्रों के उपयोग में ये कमियां हैं।

  • यदि सत्र डेटा को बाधित किया जाता है तो डेटा उल्लंघन का जोखिम बढ़ जाता है।
  • सर्वर मेमोरी का उपभोग करता है, जिससे सम्पूर्ण सिस्टम प्रदर्शन में कमी आ सकती है।
  • यदि इसका प्रबंधन ठीक से न किया जाए तो इससे उपयोगकर्ता अनुभव असंगत हो सकता है।
  • सत्रों को बनाए रखने और मॉनिटर करने के लिए अतिरिक्त सर्वर संसाधनों की आवश्यकता होती है।
  • सत्र समाप्ति से उपयोगकर्ता की गतिविधियां बाधित हो सकती हैं, जिससे निराशा हो सकती है।
  • सत्र अपहरण और फिक्सेशन हमलों के प्रति संवेदनशील।
  • इससे लगातार डेटा भंडारण के कारण गोपनीयता विनियमों का अनुपालन जटिल हो सकता है।

एक कुकी क्या है?

कुकी एक छोटी फ़ाइल होती है जिसका अधिकतम आकार 4KB होता है जिसे वेब सर्वर क्लाइंट कंप्यूटर पर स्टोर करता है। एक बार कुकी सेट हो जाने के बाद, उसके बाद आने वाले सभी पेज अनुरोध कुकी का नाम और मान लौटाते हैं। कुकी को केवल उसी डोमेन से पढ़ा जा सकता है जिससे इसे जारी किया गया है। उदाहरण के लिए, www.guru99.com डोमेन का उपयोग करके सेट की गई कुकी को career.guru99.com डोमेन से नहीं पढ़ा जा सकता है। इंटरनेट पर अधिकांश वेबसाइटें अन्य डोमेन से तत्व प्रदर्शित करती हैं, जैसे विज्ञापन। इन तत्वों को परोसने वाले डोमेन अपनी खुद की कुकी भी सेट कर सकते हैं। इन्हें थर्ड-पार्टी कुकी के रूप में जाना जाता है। किसी उपयोगकर्ता द्वारा बनाई गई कुकी केवल उन्हीं को दिखाई दे सकती है। अन्य उपयोगकर्ता इसका मान नहीं देख सकते हैं। अधिकांश वेब ब्राउज़र्स कुकीज़, तृतीय-पक्ष कुकीज़, या दोनों को अक्षम करने के विकल्प हैं।

मुझे कुकीज़ का उपयोग क्यों और कब करना चाहिए?

HTTP एक स्टेटलेस प्रोटोकॉल है; कुकीज़ हमें उपयोगकर्ता के कंप्यूटर पर संग्रहीत छोटी फ़ाइलों का उपयोग करके एप्लिकेशन की स्थिति को ट्रैक करने की अनुमति देती हैं। कुकीज़ कहाँ संग्रहीत की जाती हैं यह ब्राउज़र पर निर्भर करता है। इंटरनेट एक्सप्लोरर आमतौर पर उन्हें टेम्पोरल इंटरनेट फाइल्स फ़ोल्डर में संग्रहीत करता है।

उपयोगकर्ता अनुभव को वैयक्तिकृत करना: यह उपयोगकर्ताओं को उनकी प्राथमिकताएँ चुनने की अनुमति देकर प्राप्त किया जाता है। इसके बाद आने वाले पेज अनुरोध कुकीज़ में निर्धारित प्राथमिकताओं के आधार पर वैयक्तिकृत किए जाते हैं। उपयोगकर्ता द्वारा देखे गए पेजों को ट्रैक करना।

PHP के साथ कुकीज़ बनाना

अब, आइए कुकी निर्माण के लिए आवश्यक मूलभूत वाक्यविन्यास पर गौर करें।

<?php

setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]);

?>
  • PHP में, setcookie समारोह कुकी बनाने के लिए उपयोग किया जाता है। "कुकी_नाम" कुकी के लिए पहचानकर्ता का प्रतिनिधित्व करता है, जो सर्वर के लिए आवश्यक है जब उसे $_COOKIE सरणी से कुकी का मान प्राप्त करने की आवश्यकता होती है। यह नाम अनिवार्य है।
  • “कुकी_मूल्य” कुकी की सामग्री को दर्शाता है और यह आवश्यक भी है।
  • “[expiry_time]” पैरामीटर वैकल्पिक है और इसे कुकी के जीवनकाल को निर्धारित करने के लिए सेट किया जा सकता है, जैसे इसे 1 घंटे में समाप्त होने के लिए सेट करना। यह PHP time() फ़ंक्शन से सेकंड जोड़कर या घटाकर किया जाता है, उदाहरण के लिए, time() + 3600 1 घंटा सेट करने के लिए।
  • “[कुकी_पथ]” एक अन्य वैकल्पिक पैरामीटर है जो सर्वर पथ निर्धारित करता है जहाँ कुकी पहुँच योग्य है। फ़ॉरवर्ड स्लैश “/” का उपयोग यह दर्शाता है कि कुकी पूरे डोमेन में उपलब्ध है, जबकि उपनिर्देशिकाएँ निर्दिष्ट करने से उन उपडोमेन तक पहुँच प्रतिबंधित हो जाती है।
  • “[डोमेन]” पैरामीटर भी वैकल्पिक है, यह निर्धारित करता है कि कुकी को कहां से एक्सेस किया जा सकता है। उदाहरण के लिए, इसे इस पर सेट करना www.cookiedomain.com इसे संपूर्ण डोमेन में उपलब्ध कराता है, जबकि www.sub.cookiedomain.com इसे उस उपडोमेन और उसके चाइल्ड उपडोमेन तक सीमित करता है। याद रखें, एक उपडोमेन के अपने उपडोमेन भी हो सकते हैं, बशर्ते डोमेन की कुल लंबाई 253 वर्णों से ज़्यादा न हो।
  • “[सुरक्षित]” पैरामीटर वैकल्पिक है, इसकी डिफ़ॉल्ट सेटिंग गलत है। यह निर्दिष्ट करता है कि कुकी को HTTPS (यदि सही है) या HTTP (यदि गलत है) पर प्रसारित किया जाना चाहिए।
  • “[Httponly]” सेटिंग भी वैकल्पिक है। जब इसे true पर सेट किया जाता है, तो कुकी को क्लाइंट-साइड स्क्रिप्टिंग भाषाओं जैसे कि द्वारा एक्सेस नहीं किया जा सकता है Javaलिपि .

नोट: किसी भी HTML टैग को आउटपुट करने से पहले PHP setcookie फ़ंक्शन को कॉल किया जाना चाहिए।

आइए कुकीज़ से जुड़े एक व्यावहारिक उदाहरण पर विचार करें।

इस मामले में, हम एक सरल प्रोग्राम विकसित करेंगे जो उपयोगकर्ता नाम को दस सेकंड के बाद समाप्त होने वाली कुकी में संग्रहीत करेगा।

निम्नलिखित “cookies.php” कोड दर्शाता है कि इसे कैसे लागू किया जाए।

<?php
     setcookie("user_name", "Guru99", time() + 60,'/'); // expires after 60 seconds
     echo 'the cookie has been set for 60 seconds';
?>
आउटपुट:
the cookie has been set for 60 seconds

कुकीज़ के लाभ

मेरे अनुभव से, इसके लाभ इस प्रकार हैं: कुकीज़:

  • स्वाद की खोज में आश्चर्य के तत्व को बढ़ाता है।
  • यह न्यूनतम सौंदर्यबोध प्रदान करता है, जो आधुनिक ब्रांडिंग के लिए आदर्श है।
  • पैकेजिंग की अव्यवस्था को कम करता है, तथा उत्पाद पर ध्यान केन्द्रित करता है।
  • यह घटक वरीयताओं या ब्रांड धारणा पर आधारित पूर्वाग्रह को समाप्त करता है।
  • यह बिना किसी पूर्वधारणा के स्वाद चखने को प्रोत्साहित करता है, जिससे निष्पक्ष प्रतिक्रिया मिलती है।
  • पैकेजिंग के लिए मुद्रण लागत को संभावित रूप से कम करता है।
  • कम कठोर लेबलिंग कानून वाले बाजारों में विनियामक अनुपालन को सरल बनाता है।

कुकी के नुकसान

मैंने जो देखा है उसके आधार पर, कुकीज़ के नुकसान ये हैं।

  • ग्राहक एलर्जी या आहार प्रतिबंधों की पहचान नहीं कर सकते।
  • इसमें पोषण संबंधी जानकारी का अभाव है, जो स्वास्थ्य के प्रति जागरूक उपभोक्ताओं के लिए महत्वपूर्ण है।
  • अद्वितीय या प्रीमियम सामग्री को उजागर करने का अवसर चूक जाता है।
  • इससे अलमारियों पर रखे समान उत्पादों के बीच भ्रम पैदा हो सकता है।
  • ब्रांड पहचान और वफादारी निर्माण को रोकता है।
  • उपभोक्ता को सूचित निर्णय लेने से रोकता है।
  • इससे सख्त लेबलिंग कानून वाले क्षेत्रों में कानूनी समस्याएं पैदा हो सकती हैं।

सत्र बनाम कुकी: उनके बीच अंतर

सत्र और कुकी के बीच महत्वपूर्ण अंतर इस प्रकार हैं जो मैंने अपने अभ्यास में देखे हैं:

सत्र बनाम कुकी
सत्र बनाम कुकी

अधिवेशन
कुकीज

सत्र सर्वर-साइड फ़ाइलें हैं जिनमें उपयोगकर्ता जानकारी होती है

कुकीज़ क्लाइंट-साइड फ़ाइलें हैं जिनमें उपयोगकर्ता की जानकारी होती है

जब कोई उपयोगकर्ता अपना ब्राउज़र बंद करता है तो सत्र समाप्त हो जाता है

कुकी आपके द्वारा निर्धारित जीवनकाल के आधार पर समाप्त होती है

In PHP$_SESSION का उपयोग करने से पहले, आपको session_start() लिखना होगा; इसी तरह अन्य भाषाओं के लिए भी

आपको कुकी शुरू करने की आवश्यकता नहीं है क्योंकि यह आपकी स्थानीय मशीन में संग्रहीत है

एक सत्र के भीतर, आप जितना चाहें उतना डेटा संग्रहीत कर सकते हैं। एकमात्र सीमा जो आप प्राप्त कर सकते हैं वह है अधिकतम मेमोरी जो एक स्क्रिप्ट एक समय में उपभोग कर सकती है, जो डिफ़ॉल्ट रूप से 128MB है

आधिकारिक अधिकतम कुकी आकार 4KB है

एक सत्र कुकी पर निर्भर है

कुकी सत्र पर निर्भर नहीं है

Session_destroy() का उपयोग सभी पंजीकृत डेटा को नष्ट करने या कुछ को अनसेट करने के लिए किया जाता है

unsetcookie() नाम का कोई फ़ंक्शन नहीं है

निष्कर्ष

मैं सत्रों का उपयोग करने की सलाह देता हूं जब डेटा सुरक्षा और क्षमता की आवश्यकताएं कुकीज़ द्वारा प्रदान की जाने वाली सुविधाओं से अधिक होती हैं। हालांकि, कुकीज़ उपयोग में आसानी और हल्के, लगातार उपयोगकर्ता स्थिति ट्रैकिंग को लागू करने के लिए अपराजेय हैं।