2010-09-24 9 views
11

चूंकि सत्र और कुकीज़ दोनों अस्थायी डेटा संग्रहीत करने के लिए उपयोग की जाती हैं, उनके बीच क्या अंतर है?क्या सत्र और कुकीज़ एक ही चीज़ हैं?

+0

क्या कुकी को अस्थायी होना चाहिए? – JeffO

+0

@ जेफ: कुकीज़ को हटा दिया जाता है। स्थायी भंडारण के रूप में क्लाइंट-साइड डेटा का इलाज खतरनाक है। – Brian

उत्तर

5

प्रत्येक HTTP प्रतिक्रिया में, सर्वर को हेडर Set-Cookie: {cookie-name}={cookie-data}; {cookie-options} जोड़ने का अवसर मिला है।

ब्राउज़र, प्रत्येक बाद के HTTP अनुरोध (या विकल्पों द्वारा निर्दिष्ट अनुसार) में, हेडर Cookie: {cookie-name}={cookie-data} जोड़ें।

# 1 अनुरोध:

POST /auth/login HTTP/1.1 
Host: www.example.com 

username=Justice&password=pass1234 

प्रतिसाद # 1:

HTTP/1.1 307 Temporary Redirect 
Set-Cookie: user_id=928 
Location: http://www.example.com/dashboard 

अनुरोध # 2:

GET /dashboard HTTP/1.1 
Host: www.example.com 
Cookie: user_id=928 

प्रतिसाद # 2:

HTTP/1.1 200 OK 
Content-Type: text/html 

<html> 
    <head>...</head> 
    <body>...</body> 
</html> 

सभी भावी अनुरोधों में Cookie हेडर भी शामिल होगा।

+0

एक स्पष्टीकरण के रूप में, 'सेट-कुकी' हेडर प्रतिक्रिया में विकल्प निर्धारित करता है * कौन सा * भविष्य के अनुरोधों में 'कुकी' हेडर शामिल है, चाहे सभी बाद के अनुरोध या उनमें से एक निश्चित सबसेट। – yfeldblum

+1

यह मजाकिया है कि यह स्वीकार्य उत्तर है। हालांकि यह कुकीज़ के जन्म के बारे में एक अच्छी व्याख्या है (हालांकि अपूर्ण है, चूंकि कुकीज़ को जावास्क्रिप्ट द्वारा भी सेट किया जा सकता है, इस प्रकार 'सेट-कुकी' हेडर को छोड़कर) इसमें सत्रों का भी उल्लेख नहीं होता है! :) –

+0

यह आंशिक उत्तर है, लेकिन यह पूरे उत्तर का सबसे बड़ा टुकड़ा है। कुकीज़ और सत्रों के बीच अंतर के बारे में भ्रम अक्सर भ्रम के कारण होता है, वास्तव में, कुकीज़ क्या हैं। कुकीज़ की व्याख्या करें, और आश्रित प्रश्न अक्सर स्पष्ट किए जाते हैं। – yfeldblum

5

कुकीज को सिस्टम सिस्टम (लगातार कुकीज़) या ब्राउज़र मेमोरी (गैर-लगातार कुकीज़) पर छोटी टेक्स्ट फ़ाइलों के रूप में संग्रहीत किया जाता है और सर्वर पर भेज दिया जाता है और प्रत्येक अनुरोध और प्रतिक्रिया के साथ क्लाइंट में लौटाया जाता है। जब तक समाप्ति तिथि पास नहीं हो जाती है तब तक लगातार कुकीज़ ब्राउज़र सत्रों के बीच उपलब्ध रहेंगी। ब्राउज़र बंद होने के बाद गैर-लगातार कुकीज़ खो जाएंगी।
सत्र स्मृति में सर्वर पर संग्रहीत किया जाता है। कुकीज अक्सर अनुरोध के बीच उपयोगकर्ता सत्र के संदर्भ को संरक्षित करने के तरीके के रूप में उपयोग किया जाता है, हालांकि यह क्लाइंट ब्राउज़र पर कुकीज़ अक्षम होने पर क्वेरीस्ट्रिंग पैरामीटर के साथ भी किया जा सकता है।

+0

स्मृति में ?? ___ –

+1

@ अलवरो जी। विकारियो - स्मृति में। या तो अपने वेब सर्वर के माध्यम से एप्लिकेशन को आवंटित रैम में, डेटाबेस सत्र स्टोर के माध्यम से स्टोरेज मेमोरी में, या सत्र स्थिति सर्वर से संबंधित किसी अन्य रैम/पृथक भंडारण में। –

+0

जाहिर है, वे स्मृति में हो सकते हैं - http://www.cookiecentral.com/faq/#1.1 – JeffO

5

कुकीज़ उपयोगकर्ता के डेटा को पर उनके कंप्यूटर पर संग्रहीत करती है।

सत्र कार्यान्वयन पर उपयोगकर्ता के अस्थायी डेटा को (या कॉन्फ़िगरेशन के आधार पर एकाधिक सर्वर) पर संग्रहीत करता है।

1

कुकीज़ एक छोटे पाठ ग्राहक है कि डोमेन में विशेष जानकारी रख सकते हैं पर संग्रहीत फ़ाइल,

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

3

कुकी एक सत्र सर्वर साइड

2

सत्र सर्वर साइड जमा हो जाती है है ग्राहक के पक्ष है। आपके पास इनप्रोक सत्र हो सकते हैं, जो स्मृति में संग्रहीत किए जाएंगे, या आप सत्र को SQL डेटाबेस में संग्रहीत कर सकते हैं। आप more here पढ़ सकते हैं।

कुकीज क्लाइंट के कंप्यूटर पर संग्रहीत हैं। इसका मतलब है कि कुकी में महत्वपूर्ण विवरण स्टोर करने की अनुशंसा नहीं की जाती है, क्योंकि ग्राहक आसानी से उन्हें कुशल बना सकते हैं।

0

सत्र और कुकीज़ में संग्रहीत डेटा के बीच मुख्य अंतर यह है कि सत्र में संग्रहीत डेटा सर्वर की तरफ संग्रहीत होता है (उपयोगकर्ता ऐसे डेटा पर काम नहीं कर सकता), जबकि कुकीज क्लाइंट पक्ष पर संग्रहीत होते हैं। वे उपयोगकर्ता द्वारा किसी भी तरह से छेड़छाड़ की जा सकती है। यदि आपके पास वास्तव में संवेदनशील डेटा है - तो इसे सत्र में संग्रहीत करें। लेकिन कुकीज़ में स्टोर करने वाले अन्य सभी डेटा सर्वर को अधिभारित नहीं करते हैं।

+0

चूंकि कुकीज़ प्रत्येक अनुरोध के साथ भेजी जाती है (यहां तक ​​कि छवियों के लिए और जैसे कि आप उनके लिए एक अलग डोमेन या सबडोमेन का उपयोग नहीं करते हैं), कुकीज़ का दुरुपयोग करने से अतिरिक्त बैंडविड्थ की एक बड़ी मात्रा हो सकती है।यदि सत्र डेटा इतनी अधिक जगह चूस रहा है कि राम एक मुद्दा बन रहा है, तो मुझे आश्चर्य होगा कि क्या यह डेटा डेटाबेस में उस डेटा को सामान देने का समय है, यह सोचने के बजाय कि क्या मैं इसे क्लाइंट को ऑफ़लोड कर सकता हूं। – Brian

6

मई ज्ञान के लिए के रूप में:

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

कुकी उपयोगकर्ता के ब्राउज़र में तब तक रहेगी जब तक उपयोगकर्ता द्वारा इसे हटाया नहीं जाता है।

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

यदि आप चर को "सत्र" में सेट करते हैं, तो उपयोगकर्ता गतिविधि ब्राउज़र सत्रों का उपयोग करके ट्रैक की जाएगी, और आपके उपयोगकर्ताओं को प्रत्येक बार अपने ब्राउज़र को फिर से खोलने के लिए लॉग इन करना होगा। इसके अतिरिक्त, यदि आप "सत्र" चर का उपयोग कर रहे हैं, तो आपको "रूट" निर्देशिका को सुरक्षित करना होगा, या तो इसे वेब रूट से ऊपर रखकर या यह अनुरोध करके कि आपका वेब होस्ट इसे एक गैर-ब्राउज़ करने योग्य निर्देशिका बनाये।

कुंजी अंतर आपकी हार्ड डिस्क में संग्रहीत किया जाएगा जबकि एक सत्र आपकी हार्ड डिस्क में संग्रहीत नहीं किया जाता है। सत्र मूल रूप से टोकन की तरह होते हैं, जो प्रमाणीकरण पर उत्पन्न होते हैं। जब तक ब्राउज़र खोला जाता है तब तक एक सत्र उपलब्ध होता है।

आशा निम्न लिंक आगे अपने संदेहों को स्पष्ट करेंगे

http://wiki.answers.com/Q/What_is_the_difference_between_session_and_cookies http://www.allinterview.com/showanswers/74177.html

+1

ध्यान दें कि सत्र कुंजी उपयोगकर्ता की कुकीज़ में संग्रहीत होती है। जब साइट को यह पता लगाने की आवश्यकता होती है कि कौन सा सत्र एक विशिष्ट पृष्ठ अनुरोध से मेल खाता है, तो आमतौर पर इसे उपयोगकर्ता की कुकीज़ के आधार पर देखा जाता है। – Brian

+0

आपके लिए टिप्पणी के लिए बहुत बहुत धन्यवाद, मुझे यह नहीं पता था। –

+0

ऐसा हो सकता है कि यदि सत्र को मार नहीं दिया गया है, तो उपयोगकर्ता को लॉग इन करने की आवश्यकता नहीं है। सिमलर जो आपने ऊपर लिखा है। जब कुकीज़ मारे जाते हैं और जब सत्र मारे जाते हैं? – Shalni

2

वे एक ही बात नहीं कर रहे हैं। एक सत्र एक अवधारणा है जिसके द्वारा एक उपयोगकर्ता के ब्राउज़िंग सत्र की स्थिति संग्रहित की जाती है।

कुकीज़ इस अवधारणा को लागू करने का एक अच्छा माध्यम है, इस प्रकार "सत्र कुकीज़" का व्यापक अभ्यास।

संबंधित मुद्दे