उत्तर सरल नहीं है।
निम्नलिखित अनुभाग 3.2 से निकाला गया है।RFC 3986 का 2:
एक मेजबान एक इंटरनेट प्रोटोकॉल शाब्दिक पते से पहचान, संस्करण 6
[RFC3513] या बाद में, आईपी शाब्दिक enclosing से भिन्न है
वर्गाकार कोष्ठक में ("[" और "] ")। यह एकमात्र ऐसा स्थान है जहां
यूआरआई वाक्यविन्यास में वर्ग ब्रैकेट वर्णों की अनुमति है।
यह लगता है साफ करते हुए कहा कि वर्ग कोष्ठक यूआरआई में और कहीं भी अनुमति नहीं है से सवाल का जवाब देने। लेकिन एक वर्ग ब्रैकेट चरित्र और एक प्रतिशत एन्कोडेड स्क्वायर ब्रैकेट चरित्र के बीच एक अंतर है।
निम्नलिखित RFC 3986 की धारा 3 की शुरुआत से निकाला जाता है:
सिंटेक्स घटक
सामान्य url सिंटैक्स की एक पदानुक्रमित अनुक्रम के होते हैं
घटकों को योजना, प्राधिकरण, पथ, क्वेरी, और
खंड के रूप में जाना जाता है।
यूआरआई = योजना ":" हायर-पार्ट ["?" क्वेरी] [ "#" टुकड़ा]
तो "क्वेरी" "URI" का एक घटक है।
निम्नलिखित RFC 3986 की धारा 2.2 से निकाला जाता है:
2,2। आरक्षित पात्र
यूआरआई में घटक और उप-घटक शामिल हैं जो
"आरक्षित" सेट में वर्णित हैं। ये अक्षर कहा जाता है
क्योंकि वे कर सकते हैं "आरक्षित" (या नहीं कर सकते हैं),
सामान्य वाक्य रचना द्वारा डिलीमीटर के रूप में परिभाषित किया जा प्रत्येक योजना विशेष वाक्य रचना के द्वारा, या एक यूआरआई के अपसंदर्भन एल्गोरिथ्म के
कार्यान्वयन-विशिष्ट वाक्यविन्यास द्वारा।
यूआरआई घटक के लिए डेटा परिसीमक के रूप में एक सुरक्षित
चरित्र का उद्देश्य के साथ संघर्ष होगा, तो परस्पर विरोधी डेटा
होना चाहिए प्रतिशत-एन्कोड से पहले यूआरआई ही बना है।
reserved = gen-delims/sub-delims
gen-delims = ":"/"/"/"?"/"#"/"["/"]"/"@"
sub-delims = "!"/"$"/"&"/"'"/"("/")"
/"*"/"+"/","/";"/"="
तो वर्ग कोष्ठक एक क्वेरी स्ट्रिंग में दिखाई दे सकते हैं, लेकिन वे प्रतिशत इनकोड करते हों। जब तक कि वे नहीं कर रहे हैं, और नीचे खंड 2.2 में समझाया जा रहे हैं:
यूआरआई अनुप्रयोग का निर्माण करने प्रतिशत एन्कोड डेटा ओक्टेट्स कि
जब तक इन पात्रों
सुरक्षित सेट में पात्रों के अनुरूप विशेष रूप से अनुमति होती है चाहिए यूआरआई योजना
घटक में डेटा का प्रतिनिधित्व करने के लिए।आरक्षित वर्ण यूआरआई घटक में पाया जाता है और
कोई परिसीमन भूमिका है कि चरित्र के लिए जाना जाता है, तो यह होना चाहिए
US-ASCII में है कि
चरित्र के कूट के लिए इसी डेटा ओकटेट प्रतिनिधित्व के रूप में व्याख्या की।
तो क्योंकि वर्ग कोष्ठक केवल "मेजबान" उपघटक में अनुमति दी जाती है, वे प्रतिशत अन्य घटकों और उप-घटक में encoded "चाहिए" सकता है, और "क्वेरी" घटक में इस मामले में, जब तक कि RFC 3986 स्पष्ट रूप से अनुमति देता है unencoded प्रश्न घटक में डेटा का प्रतिनिधित्व करने के लिए वर्ग ब्रैकेट, जो नहीं है।
हालांकि, यदि कोई "यूआरआई उत्पादक अनुप्रयोग" ऐसा करने में विफल रहता है, तो उसे "क्या करना चाहिए", क्वेरी में अनसुलझा स्क्वायर ब्रैकेट छोड़कर, यूआरआई के पाठक यूआरआई को पूरी तरह से अस्वीकार नहीं करना चाहते हैं। इसके बजाए, वर्ग ब्रैकेट को क्वेरी घटक के डेटा से संबंधित माना जाता है, क्योंकि इन घटक में डिलीमीटर के रूप में उपयोग नहीं किया जाता है।
यही कारण है कि, उदाहरण के लिए, यह आरएफसी 3 9 86 का उल्लंघन नहीं है जब PHP एक क्वेरी स्ट्रिंग में मान्य वर्णों के रूप में अनएन्डेड और प्रतिशत एन्कोडेड स्क्वायर ब्रैकेट दोनों स्वीकार करता है, और यहां तक कि उन्हें एक विशेष उद्देश्य भी निर्दिष्ट करता है। हालांकि, ऐसा लगता है कि लेखक जो इस छेड़छाड़ का लाभ लेने का प्रयास नहीं करते हैं, प्रतिशत एन्कोडिंग स्क्वायर ब्रैकेट्स आरएफसी 3986 का उल्लंघन नहीं कर रहे हैं।
इसमें "बहुआयामी" क्या है? या आप सर्वर साइड स्क्रिप्टिंग भाषा में सरणी के रूप में प्रतिनिधित्व करने वाले वर्रों का जिक्र कर रहे हैं? – arkascha
@arkascha yep, मेरा मतलब है एक क्वेरी स्ट्रिंग जैसे '? [बी] [सी] [डी] [ई] = एफ', सर्वर साइड स्क्रिप्ट तो इसे एक बहुआयामी सरणी –