2012-11-14 15 views
10

किसी URL क्वेरी स्ट्रिंग में कौन से वर्णों की अनुमति है?मान्य यूआरएल क्वेरी स्ट्रिंग क्या है?

क्या क्वेरी स्ट्रिंग को किसी विशेष प्रारूप का पालन करना है?

+1

कुछ भी उन जरूरतों को फरार हो जाने के लिए एक URL में अनुमति दी जाती है के अलावा अन्य, क्या इस सवाल में भाग निकले किए जाने की आवश्यकता देखें: http:

https://perishablepress.com/url-character-codes/

आपकी सुविधा के लिए, इस सूची है: //stackoverflow.com/questions/2322764/what-characters-must-be-escaped-in-an-http-query-string –

उत्तर

10

प्रति http://tools.ietf.org/html/rfc3986

अनुभाग में 2.2 आरक्षित वर्ण, निम्न वर्णों सूचीबद्ध हैं:

सुरक्षित = पीढ़ी-delims/उप-delims

पीढ़ी-delims = ":"/"/"/"? "/" # "/" ["/"] "/" @ "

उप-delims ="! "/" $ "/" & "/" '"/" ("/ ")"/"*"/"+"/","/"," /"="

कल्पना तो कहते हैं:

तो यूआरआई घटक के लिए डेटा आरक्षित वर्ण के एक के रूप में उद्देश्य के साथ संघर्ष होगा डेलीमीटर, तो यूआरआई बनने से पहले विरोधाभासी डेटा प्रतिशत-एन्कोड किया जाना चाहिए।

इसके बाद, में अनुभाग 2.3 अनारक्षित वर्ण, निम्नलिखित सूचीबद्ध हैं:

अनारक्षित = अल्फा/अंक/"-"// "_"/"~"

"।" http://en.wikipedia.org/wiki/Query_string

"यूआरएल एन्कोडिंग:: (उदाहरण के लिए, अंतरिक्ष कुछ वर्ण URL के भाग नहीं हो सकता

+2

[आरएफसी 3 9 86 - ** धारा 3.4 **] (http: //tools.ietf। संगठन/एचटीएमएल/आरएफसी 3 9 86 # पृष्ठ -23) विशेष रूप से क्वेरी स्ट्रिंग का वर्णन करता है और विशेष रूप से उप-डिलीम्स और कुछ मुट्ठी भर शामिल करता है। संक्षेप में: 'ए'-'Z',' a'-'z', '0'-'9',' -', '.',' _', '~', '!', '$' , '&', ''', '(', ')', '*', '+', ',', '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' ? – MrWhite

11

विकिपीडिया आपका जवाब है) और कुछ अन्य वर्णों का URL में एक विशेष अर्थ है: उदाहरण के लिए, वर्ण # का उपयोग किसी दस्तावेज़ के उपखंड (या खंड) को निर्दिष्ट करने के लिए किया जा सकता है; चरित्र = किसी मान से नाम को अलग करने के लिए उपयोग किया जाता है। इन बाधाओं को पूरा करने के लिए एक क्वेरी स्ट्रिंग को परिवर्तित करने की आवश्यकता हो सकती है। यह यूआरएल एन्कोडिंग के रूप में जाना जाने वाला स्कीमा का उपयोग करके किया जा सकता है।

विशेष रूप से, क्वेरी स्ट्रिंग एन्कोडिंग निम्नलिखित नियमों का उपयोग करता है: '।'

  • पत्र (AZ और az), संख्याओं (0-9) और वर्ण, '-', '~' और के रूप में है
  • अंतरिक्ष के रूप में '+' या% एन्कोड किया गया है '_' छोड़ दिया जाता है 20 [उद्धरण वांछित]
  • अन्य सभी वर्ण पहले के रूप में एन्कोड किसी भी गैर- ASCII वर्ण के साथ% एफएफ हेक्स प्रतिनिधित्व के रूप में इनकोड UTF-8 (या अन्य निर्दिष्ट एन्कोडिंग)

टी वह tilde ("~") चरित्र से संबंधित ऑक्टेट अक्सर पुराने यूआरआई प्रसंस्करण कार्यान्वयन द्वारा "% 7E" के रूप में एन्कोड किया जाता है; "% 7E" को इसकी व्याख्या के बिना "~" द्वारा प्रतिस्थापित किया जा सकता है। स्पेस के एन्कोडिंग को '+' के रूप में और "as-is" वर्णों का चयन आरएफसी 1738 से इस एन्कोडिंग को अलग करता है। "

प्रारूप के संबंध में, क्वेरी स्ट्रिंग्स नाम मान जोड़े हैं। क्वेरी स्ट्रिंग को अलग करता है यूआरएल।प्रत्येक नाम मान जोड़ी को एम्पर्सेंड (&) से अलग किया जाता है जबकि नाम (कुंजी) और मान बराबर चिह्न (=) से अलग होता है। जैसे। http://domain.com?key=value&secondkey=secondvalue

तहत संरचना विकिपीडिया संदर्भ मैं प्रदान की में:

  • प्रश्न चिह्न क्वेरी स्ट्रिंग का हिस्सा नहीं है एक विभाजक के रूप में प्रयोग किया जाता है।
  • क्वेरी स्ट्रिंग फ़ील्ड-वैल्यू जोड़े की श्रृंखला से बना है
  • प्रत्येक जोड़ी के भीतर, फ़ील्ड का नाम और मान बराबर चिह्न, '=' से अलग होता है।
  • जोड़े की श्रृंखला एम्पर्सेंड, '&' (या अर्धविराम, ';' एचटीएमएल में एम्बेडेड यूआरएल के लिए और एक द्वारा उत्पन्न नहीं है ...; नीचे देखें) द्वारा अलग किया गया है।
  • डब्ल्यू 3 सी अनुशंसा करता है कि सभी वेब सर्वर एम्पर्सेंड सेपरेटर्स [6] के अलावा अर्धविराम विभाजक का समर्थन करते हैं ताकि एचटीएमएल दस्तावेज़ों के भीतर यूआरएल में एप्लिकेशन/एक्स-www-form-urlencoded क्वेरी स्ट्रिंग्स को इकाई से बचने के बिना एपर्सेंड के बिना अनुमति दी जा सके।
+0

क्या आप अंतिम पैराग्राफ के लिए उद्धरण प्रदान कर सकते हैं? –

+0

मैंने व्यक्तिगत अनुभव के आधार पर पैराग्राफ जोड़ा लेकिन मैंने अपडेट किया है और अधिक जानकारी जो मुझे इसे वापस पाने के लिए मिल सकती है। ऐसा करने में, मैंने देखा कि कुंजी-मूल्य न केवल एम्पर्सेंड द्वारा अलग किए जाते हैं बल्कि अर्ध-कॉलन द्वारा हो सकते हैं हालांकि मैं पहले कभी नहीं आया हूं। इसके अलावा, प्रश्न चिह्न क्यूएस का हिस्सा नहीं है बल्कि एक विभाजक है। – cbillowes

+1

उत्तर के पाठ में: "प्रत्येक नाम मान जोड़ी एक एम्पर्सेंड के साथ उपसर्ग है" शब्द ("prefixed") भ्रामक है। आगे नीचे, सही है "... जोड़े अलग हो गया है ..."। – laune

1

इस लिंक में आपके पास आवश्यक सभी जवाब और स्वरूपित मान हैं।

<  %3C 
>  %3E 
#  %23 
%  %25 
{  %7B 
}  %7D 
|  %7C 
\  %5C 
^  %5E 
~  %7E 
[  %5B 
]  %5D 
`  %60 
;  %3B 
/ %2F 
?  %3F 
:  %3A 
@  %40 
=  %3D 
&  %26 
$  %24 
+  %2B 
"  %22 
space  %20 
+0

ध्यान दें कि [केवल-लिंक उत्तर] (http://meta.stackoverflow.com/tags/link-only-answers/info) निराश हैं, SO उत्तर समाधान के लिए खोज का अंत बिंदु होना चाहिए (बनाम। फिर भी संदर्भों का एक और स्टॉपओवर, जो समय के साथ पुराना हो जाता है)। लिंक को संदर्भ के रूप में रखते हुए, यहां स्टैंड-अलोन सारांश जोड़ना पर विचार करें। – kleopatra

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