2010-10-06 8 views
47

मुझे यह पता लगाना प्रतीत नहीं होता कि निरंतर बनाम एक गैर-लगातार कुकी कैसे बनाएं। HTTP हेडर में वापस भेजे गए, वे अलग-अलग कैसे होते हैं?मैं निरंतर बनाम एक गैर-लगातार कुकी कैसे बना सकता हूं?

उत्तर

65

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

यदि कोई कुकी वैध है, तो इसे उस डोमेन से HTTP अनुरोध के साथ पारित किया जाएगा, जिसकी उत्पत्ति हुई थी। केवल कुकी सेट करने वाला डोमेन कुकी को पढ़ सकता है (हालांकि इसका उपयोग करने के तरीके हैं, जैसे क्रॉस-साइट स्क्रिप्टिंग)।

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

  • यदि आप सत्र समाप्त होने पर कुकी समाप्त होने की इच्छा रखते हैं, तो समाप्ति तिथि सेट न करें।

From the RFC (emphasis mine):

कुकी सेटर एक विलोपन तारीख, जिस स्थिति में कुकी उस तारीख को हटा दिया जाएगा निर्दिष्ट कर सकते हैं।

कुकी सेटर किसी तिथि का उल्लेख नहीं है, तो , कुकी एक बार उपयोगकर्ता अपने ब्राउज़र इस्तीफा निकाल दिया जाता है।

परिणामस्वरूप, दिनांक निर्दिष्ट करना के लिए एक तरीका है जिससे कुकी सत्रों में जीवित रहती है। इस कारण से, एक समाप्ति तिथि के साथ कुकीज़ को लगातार कहा जाता है।

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

+0

और यदि मैं केवल कुकी को सत्र के लिए जारी रखना चाहता हूं, तो मुझे किस समाप्ति को निर्धारित करना चाहिए? –

+0

कृपया मेरा संपादन देखें। –

+0

धन्यवाद! क्या इसका मतलब है कि किसी भी समाप्ति क्लॉज के बिना कोई सेट-कुकी एक सत्र कुकी होगी, और ब्राउजर फिर से शुरू होने के बाद खो जाएगा? क्योंकि यह वही नहीं है जो मैं देखता हूं ... एक बार जब मैं बिना किसी सेट-कुकी सेट करता हूं, और ब्राउज़र को पुनरारंभ करता हूं, तो भी मैं उस कुकी को वापस पढ़ सकता हूं। क्या यह उम्मीद है? –

5

सत्र कुकी एक निश्चित समय स्टाम्प (.NET DateTime library)

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue"); 
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours... 
Response.Cookies.Add(cookie); 

लगातार कुकी ASP.NET में कुकीज़ के

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue"); 
cookie.Expires = DateTime.MaxValue; 
Response.Cookies.Add(cookie); 
8

वहाँ दो प्रकार के साथ

HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue"); 
Response.Cookies.Add(cookie); 

कुकी

लगातार कुकीज़:

आपके कंप्यूटर हार्ड डिस्क पर जमा हो जाती है। वे आपकी हार्ड डिस्क पर रहते हैं और जब तक उन्हें हटाया नहीं जाता है या समाप्त हो जाता है तब तक वेब सर्वर द्वारा एक्सेस किया जा सकता है।

public void SetPersistentCookies(string name, string value) 
{ 
    HttpCookie cookie = new HttpCookie(name); 

    cookie.Value = value; 

    cookie.Expires = Convert.ToDateTime(“12/12/2008″); 

    Response.Cookies.Add(cookie); 
} 

गैर लगातार कुकीज़:

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

public void SetNonPersistentCookies(string name, string value) 
{ 
    HttpCookie cookie = new HttpCookie(name); 

    cookie.Value = value; 

    Response.Cookies.Add(cookie); 
} 
संबंधित मुद्दे