कुकीज़ आमतौर पर HTTP हेडर में सेट की जाती हैं (हालांकि JavaScript ब्राउज़र पर सीधे कुकी भी सेट कर सकता है)। एक JSP जो कुकी सेट करता है, वह हेडर भेज सकता है जो इस तरह दिखते हैं:
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name = xyz; expires = Friday, 04-Feb-07 22:03:38 GMT; path = /; domain = tutorialspoint.com Connection: close Content-Type: text/html
जैसा कि आप देख सकते हैं, Set-Cookie हेडर में एक नाम-मान जोड़ी, एक GMT तारीख, एक पथ और एक डोमेन होता है। नाम और मान URL एन्कोडेड होंगे। expires फ़ील्ड ब्राउज़र को दिए गए समय और तारीख के बाद कुकी को "भूलने" का निर्देश है।
यदि ब्राउज़र कुकीज़ संग्रहीत करने के लिए कॉन्फ़िगर किया गया है, तो यह समाप्ति तिथि तक इस जानकारी को रखेगा। यदि उपयोगकर्ता ब्राउज़र को किसी ऐसे पेज पर इंगित करता है जो कुकी के पथ और डोमेन से मेल खाता है, तो यह कुकी को सर्वर को पुनः भेजेगा। ब्राउज़र के हेडर इस तरह दिख सकते हैं:
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name = xyz
एक JSP स्क्रिप्ट तब रिक्वेस्ट मेथड request.getCookies() के माध्यम से कुकीज़ तक पहुंच प्राप्त करेगी जो Cookie ऑब्जेक्ट्स की एक सरणी लौटाती है।
कुकी जीवनचक्र सारांश
- सर्वर सेट करता है: रिस्पॉन्स में
Set-Cookieहेडर भेजता है। - ब्राउज़र संग्रहीत करता है: समाप्ति/पथ/डोमेन के आधार पर कुकी सहेजता है।
- ब्राउज़र भेजता है: मिलान करने वाले रिक्वेस्ट्स पर
Cookieहेडर में कुकी शामिल करता है। - सर्वर पढ़ता है:
request.getCookies()के माध्यम से कुकीज़ एक्सेस करता है।
कुकी एट्रिब्यूट्स
- Name=Value: डेटा पेलोड।
- Expires/Max-Age: जीवनकाल (सत्र या स्थायी)।
- Domain: कौन से डोमेन कुकी प्राप्त करते हैं।
- Path: डोमेन के तहत URL पथ प्रीफिक्स।
- Secure: केवल HTTPS पर भेजा जाता है।
- HttpOnly: JavaScript के लिए दुर्गम (XSS सुरक्षा)।
- SameSite: CSRF सुरक्षा (Strict, Lax, None)।