साइटप्वाइंट पर एक लेख का संदर्भ देने वाला उत्तर पूरी तरह से पूरा नहीं है। कृपया RFC 6265 देखें (निष्पक्ष होने के लिए, इस सवाल के पोस्ट होने के बाद 2011 में इस RFC को जारी किया गया था, जिसने 2000 से पिछले RFC 2965 और 1997 से RFC 2109 को पार कर लिया था)।
धारा 5.4 , उपधारा 2 में यह कहना है:
उपयोगकर्ता एजेंट SHOULD निम्न क्रम में कुकी-सूची को सॉर्ट करता है:
- छोटे रास्तों वाले कुकीज़ से पहले लंबे पथ वाले कूकीज़ सूचीबद्ध हैं।
नोट: सभी उपयोगकर्ता एजेंट इस क्रम में कुकी-सूची को सॉर्ट नहीं करते हैं, लेकिन यह आदेश सामान्य प्रथा को दर्शाता है जब यह दस्तावेज़ लिखा गया था, और, ऐतिहासिक रूप से, ऐसे सर्वर हैं जो (गलती से) इस आदेश पर निर्भर थे।
धारा 4.2.2 में यह छोटा रत्न भी है :
... सर्वर क्रमबद्धता क्रम पर भरोसा नहीं करते। विशेष रूप से, यदि कुकी शीर्षलेख में एक ही नाम के साथ दो कुकीज होती हैं (जैसे, जो अलग-अलग पथ या डोमेन विशेषताओं के साथ सेट की गई थीं), सर्वर SHOULD उस क्रम पर भरोसा नहीं करते हैं जिसमें ये कुकीज़ हेडर में दिखाई देते हैं।
अपने उदाहरण अनुरोध कुकी में ( कुकी: एक = 2; एक = 1 ) कृपया ध्यान दें कि पथ के साथ कुकी सेट / उदाहरण ( एक = 2 ) पथ के साथ एक से एक लंबे समय तक मार्ग होता है / ( एक = 1 ) और इसलिए यह आपको पहले पंक्ति में वापस भेजा जाता है, जो युक्ति की अनुशंसा से मेल खाता है। इस प्रकार आप अपनी धारणा में कम या ज्यादा सही हैं कि आप पहले मूल्य का चयन कर सकते हैं।
दुर्भाग्य से RFC में प्रयुक्त भाषा अत्यंत विशिष्ट है - SHOULD और SHOULD शब्द का उपयोग RFC में अस्पष्टता का परिचय नहीं देता है। ये उन सम्मेलनों को इंगित करते हैं जिनका पालन किया जाना चाहिए, लेकिन कल्पना के अनुरूप होने की आवश्यकता नहीं है । जब मैं आरएफसी को इसके बारे में अच्छी तरह से समझता हूं, तो मैंने यह देखने के लिए शोध नहीं किया है कि वास्तविक दुनिया के ग्राहक क्या करते हैं; (: जैसे यह संभव एक या अधिक ब्राउज़र या अन्य सॉफ्टवेयर HTTP के रूप में कार्य ग्राहकों सबसे लंबे समय तक पथ कुकी नहीं भेज सकते है / उदाहरण ) में पहली कुकी: हैडर।
यदि आप कुकी के मूल्य को नियंत्रित करने की स्थिति में हैं और आप अपने समाधान को मूर्ख बनाना चाहते हैं, तो आप सबसे अच्छे हैं:
कुछ पथों में ओवरराइड करने के लिए एक अलग कुकी नाम का उपयोग करना, जैसे:
- सेट-कुकी: एक वैश्विक-वैश्विक = 1; पथ = /; संस्करण = 1
- सेट-कुकी: एक-उदाहरण = 2; पथ = / उदाहरण; संस्करण = 1
कुकी मान में आपको जिस पथ की आवश्यकता है, उसे संग्रहीत करना:
- सेट-कुकी: a = 1 और पथ = /; पथ = /; संस्करण = 1
- सेट-कुकी: a = 2 और पथ = / उदाहरण; पथ = / उदाहरण; संस्करण = 1
इन दोनों वर्कअराउंड में उपलब्ध कुकी की सूची के विरुद्ध अनुरोधित URL की तुलना करके, वांछित कुकी मान लेने के लिए सर्वर पर अतिरिक्त तर्क की आवश्यकता होती है। यह बहुत सुंदर नहीं है। यह दुर्भाग्यपूर्ण है कि आरएफसी के पास यह आवश्यकता नहीं थी कि एक लंबा रास्ता पूरी तरह से एक छोटे रास्ते के साथ एक कुकी को ओवरराइड करता है (जैसे: आपके उदाहरण में, आपको कुकी प्राप्त होगी : a = 2 केवल )।