एक HTTP अनुरोध में कई कुकी हेडर की अनुमति है?


91

आमतौर पर, एक ब्राउज़र एक ही Cookieहेडर में कुकीज़ समूहित करता है , जैसे:

Cookie: a=1; b=2

क्या मानक इन्हें अलग हेडर के रूप में भेजने की अनुमति देता है, जैसे:

Cookie: a=1
Cookie: b=2

या क्या उन्हें हमेशा एक ही लाइन पर रहना पड़ता है?

जवाबों:


127

विषय पर विवरण की तलाश करते हुए इस पृष्ठ पर बदल दिया गया। RFC 6265 का एक उद्धरण HTTP State Management Mechanism, चीजों को स्पष्ट करने के लिए चाहिए:

5.4। कुकी हैडर

जब उपयोगकर्ता एजेंट एक HTTP अनुरोध बनाता है, तो उपयोगकर्ता एजेंट को एक से अधिक कुकी शीर्ष लेख फ़ील्ड संलग्न नहीं करना चाहिए।

ऐसा लगता है कि कई Cookieहेडर का उपयोग वास्तव में निषिद्ध है!


8
ये पागल नई-नई RFC's। :)
काइलर

12
ध्यान दें कि सर्वर कई Set-Cookieहेडर के साथ प्रतिक्रिया कर सकता है : tools.ietf.org/html/rfc6265#page-7
माइकल हरेन

2
डाउनवोट क्यों, जैसा कि ओपी ने विशेष रूप से HTTP अनुरोध के संदर्भ में पूछा था, HTTP प्रतिक्रिया नहीं। @ जेफेडवेनपोर्ट
जेम्स चोंग

2
जेफ़ जैसे Google से आने वालों के लिए, ओपी दिखाता है कि आपके पास ""; (एक स्थान की आवश्यकता नहीं है)
अल्बर्ट हेंड्रिक्स ने

2
@HawkeyeParker - कर सकते हैं मतलब यह नहीं है सही । मैं तर्क दूंगा कि मान एक सर्वर द्वारा निर्धारित किए जाने Set-Cookie:a=b;c=d;से अधिक सही है Set-Cookie:a=b; Set-Cookie:c=d;। कल्पना का कहना है सर्वर जब अनेक सेट कुकी शीर्ष लेख फ़ील्ड गुना नहीं होना चाहिए क्षेत्र है, लेकिन यह एक में एकाधिक सेट कुकी शीर्ष लेख फ़ील्ड में जोड़ सकते हैं प्रतिक्रिया । वास्तविक दुनिया में इसका मतलब यह है कि जब प्रॉक्सी सर्वर प्रतिक्रिया के साथ गुजरता है, यदि वह प्रॉक्सी कुकीज़ सेट करता है, तो उसे एक अलग सेट-कुकी हेडर का उपयोग करना चाहिए।
गोल्फी

23

यह अब 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.