क्या कोई url http://example.com/foo?bar
मान्य है?
मैं कुछ आधिकारिक के लिंक की तलाश कर रहा हूं जो एक तरह से या दूसरे तरीके से कहता है। एक साधारण हाँ / कोई जवाब या उपाख्यानात्मक साक्ष्य इसमें कटौती नहीं करेगा।
क्या कोई url http://example.com/foo?bar
मान्य है?
मैं कुछ आधिकारिक के लिंक की तलाश कर रहा हूं जो एक तरह से या दूसरे तरीके से कहता है। एक साधारण हाँ / कोई जवाब या उपाख्यानात्मक साक्ष्य इसमें कटौती नहीं करेगा।
जवाबों:
यूआरआई आरएफसी क्वेरी स्ट्रिंग के लिए एक प्रारूप जनादेश नहीं है। यद्यपि यह माना जाता है कि क्वेरी स्ट्रिंग अक्सर नाम-मूल्य जोड़े को ले जाएगा, इसकी आवश्यकता नहीं है (जैसे कि इसमें अक्सर एक और URI होगा)।
3.4। सवाल
क्वेरी घटक में गैर-पदानुक्रमित डेटा होता है, जो पथ घटक (धारा 3.3) में डेटा के साथ, URI की योजना और नामकरण प्राधिकरण (यदि कोई हो) के दायरे में एक संसाधन की पहचान करने का कार्य करता है। ...
... हालाँकि, जैसा कि क्वेरी घटकों का उपयोग अक्सर "कुंजी = मूल्य" जोड़े के रूप में जानकारी की पहचान करने के लिए किया जाता है और एक बार उपयोग किया जाने वाला मूल्य किसी अन्य यूआरआई के संदर्भ में होता है, ...
HTML स्थापित करता है कि HTTP GET के माध्यम से सबमिट किया गया एक फॉर्म "मान 1 = value1 & key2 = value2 ..." (ठीक से एन्कोडेड) रूप में मान मान युग्म के रूप में मानों को एनकोड करना चाहिए। क्वेरी स्ट्रिंग का पार्सिंग सर्वर-साइड कोड (जैसे जावा सर्वलेट इंजन) पर निर्भर है।
आप यह नहीं पहचानते हैं कि आप किस सर्वर-साइड फ्रेमवर्क का उपयोग करते हैं, यदि कोई हो, लेकिन यह संभव है कि आपका सर्वर-साइड फ्रेमवर्क मान सकता है कि क्वेरी स्ट्रिंग हमेशा नाम-वैल्यू जोड़े में होगी और यह क्वेरी स्ट्रिंग पर चोक हो सकता है जो कि नहीं है उस प्रारूप में (उदाहरण के लिए ?bar
)। यदि आपका अपना कस्टम कोड क्वेरी स्ट्रिंग को पार्स करता है, तो आपको बस यह सुनिश्चित करना होगा कि आप उस क्वेरी स्ट्रिंग प्रारूप को संभाल सकें। यदि इसकी एक रूपरेखा है, तो आपको अपने प्रलेखन से परामर्श करने की आवश्यकता होगी या इसे यह देखने के लिए परीक्षण करें कि यह कैसे संभाला जाता है।
isindex
जादू name
एचटीएमएल 5 से कुंजी और मान के प्रारूप के बिना एक क्वेरी स्ट्रिंग भेजने की अनुमति देता है stackoverflow.com/a/37579004/895245
वे पूरी तरह से मान्य हैं। आप उन्हें बड़े संदेशवाहक के बराबर मान सकते हैं जो भीड़ दूत के पीछे चुपचाप खड़े थे। आदमी का कोई नाम नहीं है और वह बोलता नहीं है, लेकिन उसकी उपस्थिति केवल जानकारी देती है।
"Http" योजना का उपयोग HTTP प्रोटोकॉल के माध्यम से नेटवर्क संसाधनों का पता लगाने के लिए किया जाता है। यह अनुभाग http URL के लिए स्कीम-विशिष्ट सिंटैक्स और शब्दार्थ को परिभाषित करता है। " http://www.w3.org/Protocols/rfc2616/rfc2616.html
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
तो हाँ, प्रश्न चिह्न के बाद कुछ भी मान्य है। आपका सर्वर अलग तरह से व्याख्या कर सकता है, लेकिन वास्तविक रूप से , आप कुछ भाषाओं को एक बूलियन मान के रूप में देख सकते हैं जो कि सूचीबद्ध होने पर सही है।
यूआरआई युक्ति का एकमात्र प्रासंगिक हिस्सा यह जानना है कि पहले ?
और पहले के बीच सब कुछ#
एक क्वेरी की युक्ति की परिभाषा के अनुसार है। इसमें कोई भी वर्ण शामिल हो सकते हैं जैसे कि [:/.?]
। इसका मतलब है कि एक क्वेरी स्ट्रिंग जैसे कि ?bar
, या ?ten+green+apples
मान्य है।
यहां RFC 3986 का पता लगाएं
isindex
HTML5 सार्थक रूप से नहीं है।
यह केवल एक रूप में पहले तत्व के रूप में उपयोग के लिए पदावनत प्रदान किया जाता है, और एक नाम के बिना प्रस्तुत करता है।
यदि प्रविष्टि का नाम "isindex" है, तो इसका प्रकार "टेक्स्ट" है, और यह प्रपत्र डेटा सेट में पहली प्रविष्टि है, फिर मान को परिणामित करें और इस प्रविष्टि के बाकी सभी विकल्पों को छोड़ दें, अगले पर जा रहे हैं प्रविष्टि, यदि कोई हो, या समग्र एल्गोरिथ्म में अगला कदम अन्यथा।
आइंडेक्स ध्वज केवल विरासत उपयोग के लिए है। HTML दस्तावेज़ों के अनुरूप होने वाले फ़ॉर्म उन पेलोड को उत्पन्न नहीं करेंगे जिन्हें इस ध्वज सेट के साथ डीकोड करने की आवश्यकता है।
पिछली बार थाindex समर्थित HTML3 था । एचटीएमएल 5 में इसका उपयोग आसान बैकवर्ड संगतता प्रदान करने के लिए है।
यूआरआई के इस प्रारूप के लिए पुस्तकालयों में समर्थन भिन्न होता है, हालांकि कुछ पुस्तकालय उपयोग को आसान बनाने के लिए विरासत का समर्थन प्रदान करते हैं isindex
।
पर्ल के यूआरआई जैसे कुछ पुस्तकालय इस तरह की संरचनाओं को पार्स करने के तरीके प्रदान करते हैं
$uri->query_keywords
$uri->query_keywords( $keywords, ... )
$uri->query_keywords( \@keywords )
Sets and returns query components that use the keywords separated by "+" format.
url
(कोई विशेष समर्थन नहीं)एक और अधिक लगातार उदाहरण के रूप में, node.js
सामान्य मार्ग लेता है और या तो पार्सिंग को आसान बनाता है
parseQueryString
)कुछ इसी तरह के कुछ अन्य URI- पार्सिंग एपीआई।
parse_url
, समान कार्यान्वयन के रूप में अनुसरण करता है, लेकिन केवल क्वेरी के लिए स्ट्रिंग लौटाता है। आवश्यकता की वस्तु में पार्स करनाk=>v
parse_string()
यह मान्य है: विकिपीडिया , RFC 1738 (3.3। HTTP) , RFC 3986 (3. सिंटैक्स कंपोनेंट्स) देखें ।
isindex
name
HTML5 से पदावनत जादू
यह पदावनत फीचर एक फॉर्म जमा करने की अनुमति देता है, जिससे एक URL उत्पन्न होता है, जिससे यह अधिक साक्ष्य मिलता है कि यह HTML के लिए मान्य है। उदाहरण के लिए:
<form action="#isindex" class="border" id="isindex" method="get">
<input type="text" name="isindex" value="bar"/>
<button type="submit">Submit</button>
</form>
एक प्रकार का URL बनाता है:
?bar
मानक: https://www.w3.org/TR/html5/forms.html#naming-form-controls:-the-n- त्याग
isindex
हालाँकि, जैसा कि यहां बताया गया है: https://stackoverflow.com/a/41689431/895245
जैसा कि वर्णित अन्य सभी उत्तर हैं, यह पूरी तरह से जाँच के लिए मान्य है, विशेष रूप से बूलियन प्रकार के सामान के लिए
यहाँ नाम से क्वेरी स्ट्रिंग प्राप्त करने के लिए एक सरल कार्य है:
function getParameterByName(name, url) {
if (!url) {
url = window.location.href;
}
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
और अब आप जांचना चाहते हैं कि आपके द्वारा खोजा जा रहा क्वेरी स्ट्रिंग मौजूद है या नहीं, आप एक साधारण काम कर सकते हैं जैसे:
var exampleQueryString = (getParameterByName('exampleQueryString') != null);
exampleQueryString
हो जाएगाfalse
यदि फ़ंक्शन क्वेरी स्ट्रिंग नहीं ढूँढ सकता है, अन्यथा होगा true
।