2012-03-25 21 views
6

क्या निम्नलिखित यूआरएल को कार्यात्मक रूप से समकक्ष माना जाना चाहिए?खाली यूआरआई क्वेरी स्ट्रिंग पैरामीटर: "ए = और बी =" बनाम "ए और बी"

http://example.com/foo?a=&b= 

http://example.com/foo?a&b 

इस बारे में Drupal मॉड्यूल मैंने लिखा जो अलग पार्स करता है और उसके बाद के एक उपयोगकर्ता यूआरआई noticed कि कोड कभी कभी का कारण बनता है कैसे अंतर्निहित पीएचपी कार्यों में से कुछ की वजह से अप्रत्याशित तरीके से बदलने के लिए क्वेरी स्ट्रिंग भागों का पुनर्लेखन जब आया था पेश आ। उदाहरण के लिए:

parse_str("a&b", $values); print http_build_query($values); 

a=&b= 

क्या मुझे कुछ चिंता करने की परेशानी होनी चाहिए?

संपादित करें इसलिए यह शिकायत करना बंद कर देता है कि यह प्रश्न किसी अन्य के समान है: सवाल यह है कि यह मानना ​​सुरक्षित है कि "एक्स के लिए कोई मूल्य नहीं" और "एक्स के लिए खाली मूल्य" बराबर है, न कि "कोई मूल्य नहीं" शैली वाक्य रचनात्मक रूप से सही है (जो यह है)।

+0

एक राय के रूप में, हां, यह ऐसा कुछ है जिसके बारे में आपको चिंता करनी चाहिए क्योंकि इससे जल्द या बाद में रहस्यमय तरीके से तोड़ना मुश्किल हो सकता है, जो कि ए और बी क्वेरी पैरामीटर का उपभोग करने की योजना के आधार पर डीबग करना मुश्किल हो सकता है। अगर वे खाली/शून्य होने जा रहे हैं, तो उन्हें पहली जगह क्यों उत्पन्न करें? इन पैराम्स के अस्तित्व की जांच करने के लिए सर्वर स्क्रिप्ट के लिए एक बेहतर दृष्टिकोण हो सकता है –

+0

मुझे वास्तव में नियंत्रण नहीं है कि सर्वर से जुड़े किसी भी सर्वर को क्या करने जा रहा है। मैं मूल रूप से उम्मीद कर रहा हूं कि वहां एक कोडिफाइड मानक है जो मुझे नहीं मिल सका कि कोई मुझे इंगित कर सकता है, या इसे विफल कर सकता है, केवल कार्यान्वयन की एक व्यापक संगत विधि है। अगर मैं या तो नहीं पा रहा हूं, तो मुझे चिंता करना और पहियों को फिर से शुरू करना पड़ सकता है। –

+0

संभावित डुप्लिकेट [क्या यूआरएल क्वेरी पैरामीटर मान्य है यदि उसके पास कोई मूल्य नहीं है?] (Https://stackoverflow.com/questions/4557387/is-a-url-query-parameter-valid-if-it-has-no -value) –

उत्तर

1

RFC 3986 Uniform Resource Identifier (URI): Generic Syntax में क्वेरी स्ट्रिंग की संरचना के बारे में कुछ भी नहीं कहना है कि ? जैसे वर्णों का निपटारा किया जाना चाहिए। तो कड़ाई से बोलते हुए, आपके दो उदाहरण यूआरएल अलग हैं। बेशक, वे क्वेरी स्ट्रिंग प्राप्त करने वाले एप्लिकेशन को उनके साथ कार्यात्मक रूप से समकक्ष माना जा सकता है, लेकिन यह ऐसा कुछ नहीं है जिसे आप अकेले यूआरएल से निर्धारित कर सकते हैं।

संबंधित मुद्दे