URL पैरामीटर और क्वेरी स्ट्रिंग्स के बीच अंतर क्या है?


92

मुझे URL में पैरामीटर और क्वेरी स्ट्रिंग्स के बीच बहुत अंतर नहीं दिखता है। तो क्या अंतर है और एक दूसरे के ऊपर कब इस्तेमाल किया जाना चाहिए?


1
क्या आपके पास एक संदर्भ है, क्योंकि जहां तक ​​मुझे पता है, तो दोनों का उपयोग आम तौर पर एक ही के लिए किया जाता है - लेकिन आपका मामला संदर्भ विशिष्ट हो सकता है।
एलन एस।

मेरे पास एक विशिष्ट संदर्भ नहीं है, एक सामान्य प्रश्न है। किस मामले में मुझे एक के बजाय दूसरे का उपयोग करना चाहिए। उन दोनों के अलग-अलग उपयोग होने चाहिए।
कोनस्ट

व्यक्तिगत रूप से - मैं ज्यादातर शब्द पैरामीटर का उपयोग किसी चर या विधि कॉल संदर्भ में उनके बारे में लेते समय, और URL संदर्भ में उनके बारे में बात करते समय क्वेरी स्ट्रिंग के लिए करता हूं। (उदाहरण: क्वेरी स्ट्रिंग विधि के लिए मापदंडों में विभाजित है)। लेकिन यह सिर्फ भाषा है इसलिए संदर्भ और परिस्थितियां अलग-अलग हैं और मुझे संदेह है कि कोई भी आपको एक का उपयोग करने के लिए नीचे शिकार करेगा जब आप इसे पसंद करते हैं :)।
एलन एस।

जवाबों:


85

क्वेरी घटक पहले से निर्देशित होता है ?यूआरआई में। "क्वेरी स्ट्रिंग" एक समानार्थी शब्द हो सकता है (यह शब्द यूआरआई मानक में उपयोग नहीं किया गया है)।

क्वेरी घटकों के साथ HTTP URI के लिए कुछ उदाहरण:

http://example.com/foo?bar
http://example.com/foo/foo/foo?bar/bar/bar
http://example.com/?bar
http://example.com/?@bar._=???/1:
http://example.com/?bar1=a&bar2=b

( क्वेरी घटक में अनुमत पात्रों की सूची )

क्वेरी घटक का "प्रारूप" URI लेखकों पर निर्भर है। एक आम सम्मेलन ( लेकिन एक सम्मेलन से ज्यादा कुछ नहीं, जहां तक ​​यूआरआई मानक का संबंध है ) कुंजी-मूल्य जोड़े, उर्फ ​​के लिए क्वेरी घटक का उपयोग करना है। पैरामीटर , ऊपर दिए गए अंतिम उदाहरण की तरह bar1=a&bar2=b:।

इस तरह के पैरामीटर अन्य यूआरआई घटकों में भी दिखाई दे सकते हैं, अर्थात, पथ और खंड। जहां तक ​​यूआरआई मानक का संबंध है, यह आपके ऊपर है कि किस घटक और किस प्रारूप का उपयोग करना है।

उदाहरण URI पथ में पैरामीटर, क्वेरी और खंड के साथ:

http://example.com/foo;key1=value1?key2=value2#key3=value3

: क्वेरी घटक के बारे में URI मानक कहता है :

[...] क्वेरी घटकों का उपयोग अक्सर "कुंजी = मान" जोड़े के रूप में जानकारी की पहचान करने के लिए किया जाता है […]

: यूआरआई मानक पथ घटक के बारे में कहता है :

[...] अर्धविराम (";") और बराबर ("=") आरक्षित वर्णों का उपयोग अक्सर उस खंड पर लागू मापदंडों और पैरामीटर मानों को परिसीमित करने के लिए किया जाता है। अल्पविराम (",") आरक्षित वर्ण अक्सर समान उद्देश्यों के लिए उपयोग किया जाता है।


1
पैरामीटर और क्वेरी अलग हैं। अनुभाग 3.3 और 3.4 को टूल्स
html/

@cowlinator: (RFC 2396 अप्रचलित है, लेकिन वर्तमान मानक, RFC 3986, पथ घटक में मापदंडों के बारे में कुछ ऐसा ही कहता है )। मैंने यह नहीं बताया कि वे वही हैं, या मैंने? यूआरआई लेखक क्वेरी घटक में पैरामीटर निर्दिष्ट कर सकते हैं (जैसा कि मेरे उत्तर में वर्णित है), और वे पथ घटक में पैरामीटर भी निर्दिष्ट कर सकते हैं (जैसा कि आपके संदर्भ में वर्णित है) - दोनों ही मामलों में यह केवल एक सम्मेलन है, कुछ भी नहीं जो मानक को परिभाषित करता है। - क्या आप मेरे उत्तर में बदलाव का सुझाव देंगे? क्या आपको लगता है कि ओपी मार्ग में मापदंडों का मतलब है?
UNOR

30

पैरामीटर कुंजी-मूल्य जोड़े हैं जो URL पथ के अंदर दिखाई दे सकते हैं, और अर्धविराम वर्ण ( ;) के साथ शुरू हो सकते हैं ।

क्वेरी स्ट्रिंग पथ के बाद दिखाई देता है (यदि कोई हो) और प्रश्न चिह्न वर्ण ( ?) के साथ शुरू होता है ।

दोनों मापदंडों और क्वेरी स्ट्रिंग में कुंजी-मूल्य जोड़े हैं।

एक में GETअनुरोध, पैरामीटर URL अपने आप में दिखाई देते हैं:

<scheme>://<username>:<password>@<host>:<port>/<path>;<parameters>?<query>#<fragment>

एक में POSTअनुरोध, पैरामीटर URL अपने आप में प्रकट हो सकते हैं, लेकिन यह भी datastream (सामग्री के रूप में जाना जाता है) में।

क्वेरी स्ट्रिंग हमेशा URL का एक हिस्सा है।

पैरामीटर form-dataPOST विधि का उपयोग करते समय डेटास्ट्रीम में दफन किए जा सकते हैं ताकि वे URL में दिखाई न दें। हाँ एक POSTअनुरोध फॉर्म डेटा के रूप में मानकों को परिभाषित कर सकते हैं और URL में है, और क्योंकि मापदंडों कई मान हो सकते हैं इस असंगत नहीं है।

मुझे इस व्यवहार के लिए अब तक कोई स्पष्टीकरण नहीं मिला है। मुझे लगता है कि यह कभी-कभी एक POSTअनुरोध से "अनहाइड" मापदंडों के लिए उपयोगी हो सकता है , या यहां तक ​​कि कोड को एक GETअनुरोध से निपटने वाले कोड को कुछ हिस्सों को संभालने के साथ साझा करने दें POST। बेशक यह केवल एक यूआरएल में सर्वर कोड सपोर्टिंग पैरामीटर के साथ काम कर सकता है।

जब तक आप बेहतर अंतर्दृष्टि प्राप्त नहीं कर लेते, मैं आपको केवल अनुरोधों के form-dataडेटास्ट्रीम में मापदंडों का उपयोग करने का सुझाव देता हूं POST

सूत्रों का कहना है:

URL के बारे में हर डेवलपर को क्या पता होना चाहिए

आरएफसी 3986

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.