आमतौर पर, एक ब्राउज़र एक ही Cookie
हेडर में कुकीज़ समूहित करता है , जैसे:
Cookie: a=1; b=2
क्या मानक इन्हें अलग हेडर के रूप में भेजने की अनुमति देता है, जैसे:
Cookie: a=1
Cookie: b=2
या क्या उन्हें हमेशा एक ही लाइन पर रहना पड़ता है?
जवाबों:
विषय पर विवरण की तलाश करते हुए इस पृष्ठ पर बदल दिया गया। RFC 6265 का एक उद्धरण HTTP State Management Mechanism
, चीजों को स्पष्ट करने के लिए चाहिए:
5.4। कुकी हैडर
जब उपयोगकर्ता एजेंट एक HTTP अनुरोध बनाता है, तो उपयोगकर्ता एजेंट को एक से अधिक कुकी शीर्ष लेख फ़ील्ड संलग्न नहीं करना चाहिए।
ऐसा लगता है कि कई Cookie
हेडर का उपयोग वास्तव में निषिद्ध है!
Set-Cookie
हेडर के साथ प्रतिक्रिया कर सकता है : tools.ietf.org/html/rfc6265#page-7
Set-Cookie:a=b;c=d;
से अधिक सही है Set-Cookie:a=b; Set-Cookie:c=d;
। कल्पना का कहना है सर्वर जब अनेक सेट कुकी शीर्ष लेख फ़ील्ड गुना नहीं होना चाहिए क्षेत्र है, लेकिन यह एक में एकाधिक सेट कुकी शीर्ष लेख फ़ील्ड में जोड़ सकते हैं प्रतिक्रिया । वास्तविक दुनिया में इसका मतलब यह है कि जब प्रॉक्सी सर्वर प्रतिक्रिया के साथ गुजरता है, यदि वह प्रॉक्सी कुकीज़ सेट करता है, तो उसे एक अलग सेट-कुकी हेडर का उपयोग करना चाहिए।
यह अब HTTP / 2 ( RFC 7540 ) में अनुमत है , जो निर्दिष्ट करता है:
8.1.2.5. Compressing the Cookie Header Field
The Cookie header field [COOKIE] uses a semi-colon (";") to delimit
cookie-pairs (or "crumbs"). This header field doesn't follow the
list construction rules in HTTP (see [RFC7230], Section 3.2.2), which
prevents cookie-pairs from being separated into different name-value
pairs. This can significantly reduce compression efficiency as
individual cookie-pairs are updated.
To allow for better compression efficiency, the Cookie header field
MAY be split into separate header fields, each with one or more
cookie-pairs. If there are multiple Cookie header fields after
decompression, these MUST be concatenated into a single octet string
using the two-octet delimiter of 0x3B, 0x20 (the ASCII string "; ")
before being passed into a non-HTTP/2 context, such as an HTTP/1.1
connection, or a generic HTTP server application.
Therefore, the following two lists of Cookie header fields are
semantically equivalent.
cookie: a=b; c=d; e=f
cookie: a=b
cookie: c=d
cookie: e=f