बैकएंड प्लेटफार्मों के बावजूद मुझे एन्कोडिंग/डिकोडिंग कुकी मानों के लिए मानक (या कोई है?) के बारे में पता लगाने में कठिनाई हो रही है।भाषा अज्ञेय कुकी कुकी एन्कोडिंग/डिकोडिंग मानकों
RFC 2109 के अनुसार:
VALUE उपयोगकर्ता एजेंट को अपारदर्शी है और कुछ भी मूल सर्वर भेजने के लिए, संभवत: यह सर्वर से चयनित प्रिंट योग्य ASCII एन्कोडिंग में चुनता है हो सकता है। "ओपेक" का तात्पर्य है कि सामग्री केवल मूल सर्वर के लिए ब्याज और प्रासंगिकता है। वास्तव में, सामग्री सेट-कुकी हेडर की जांच करने वाले किसी भी व्यक्ति द्वारा पठनीय हो सकती है।
जो "सर्वर मालिक है" जैसा लगता है और यह तय करता है कि एन्कोडिंग जो भी लागू होगी। इससे पीपी बैकएंड कहें और कुकी को सेट करना मुश्किल हो जाता है और इसे दोनों तरफ मैन्युअल एन्कोड/डीकोड हैंडलिंग लिखने के बिना, पाइथन या जावा या जो कुछ भी पढ़ा जाता है।
मान लें कि हमारे पास मूल्य को एन्कोड करने की आवश्यकता है। रूसी /"печенье (*} значения"/
का अर्थ है "कुकी मूल्य" इसमें कुछ अतिरिक्त गैर अल्फा-न्यूमेरिक वर्ण हैं।
पायथन:
लगभग हर WSGI सर्वर एक ही करता है और पायथन के SimpleCookie वर्ग कि encodes/कई का कहना है कि भले ही octal literals से डीकोड करने के लिए उपयोग करता है ECMA-262, कठोर मोड में octal literals are depreciated। WTF?
तो, हमारे कच्चे कुकी मान "/\"\320\277\320\265\321\207\320\265\320\275\321\214\320\265 (*} \320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\"/"
Node.js हो जाता है:
सब पर परीक्षण नहीं किया है, लेकिन मैं सिर्फ अनुमान लगा रहा हूँ एक जावास्क्रिप्ट बैकएंड देशी encodeURIComponent और decodeURIComponent कार्यों के साथ यह करना होगा hexadecimal से बचने/अनदेखा करने का उपयोग करें?
पीएचपी:
पीएचपी कुकी मानों कि encodeURIComponent के लिए इसी तरह बिल्कुल वैसा ही है, लेकिन नहीं पर लागू होता है urlencode।
तो कच्चा मूल्य बन जाता है; %2F%22%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D1%8C%D0%B5+%28%2A%7D+%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%22%2F
जो डबल कोट्स के साथ भी लपेटा नहीं गया है।
हालांकि; यदि जावास्क्रिप्ट value
चर ऊपर पीएचपी इनकोडिंग महत्व है, decodeURIComponent(value)
देता /"печенье+(*}+значения"/
, .. "+" रिक्त स्थान के बजाय वर्ण देख
जावा, रूबी, पर्ल और .NET में स्थिति क्या है? वांछित व्यवहार के लिए कौन सी भाषा निम्नलिखित (या निकटतम) है। असल में, क्या डब्ल्यू 3 द्वारा परिभाषित इस के लिए कोई मानक है?
+1! हालांकि कुकीज को एक और एक ही डोमेन पर सर्वर के बीच संरचित डेटा साझा करने के लिए बहुत अच्छी तरह से उपयोग किया जा सकता है। – flup
हाँ, अच्छा उदाहरण। अगर मैं ** बोल्ड ** भाग में प्रश्न का उत्तर देता हूं, तो मुझे इस पर बक्षीस देना अच्छा लगेगा। वैसे भी, कुकीज को क्रॉस प्लेटफ़ॉर्म पढ़ने में सक्षम होना चाहिए जो भी वे डेटा के प्रकार लेते हैं .. गधे में उदास और दर्द। – kirpit
मुझे लगता है कि मैं अंततः आपके प्रश्न को समझ गया, और तदनुसार मेरा जवाब संपादित किया। – Hazzit