2010-02-02 8 views
7

एक सहयोगी साथी के साथ एक गैर-संचार के कारण हम अपने सर्वर पर कॉल किए गए यूआरएल के साथ काम कर रहे हैं।एक क्वेरी स्ट्रिंग है जिसमें इसे/इसमें वैध है?

यह URL वे हमारे सर्वर पर कॉल करने के लिए की अपेक्षा की जाती है:

/AAAAAAAA/?b=CCCCCCC 

unfotunately यह के रूप में अपने सिस्टम में लागू किया गया था इस

?b=CCCCCCC/AAAAAAA 

मैं आसानी से घटकों को पार्स कर सकते हैं, लेकिन मैं मैं चिंतित हूं कि इसमें एक क्वेरी स्ट्रिंग पैरामीटर वास्तव में एक मान्य यूआरएल नहीं है।

क्या यूआरएल में वास्तव में मान्य है - या मुझे चिंतित होना चाहिए। एक क्वेरी स्ट्रिंग में कौन सी परिस्थितियों में एक अनएन्डेड/कारण समस्याएं हो सकती हैं।

+1

मैं प्यार कैसे/इस सवाल :-) –

उत्तर

2

हालांकि मैं एक समस्या थी कभी नहीं किया है, वे तकनीकी रूप से प्रति RFC 2396 के रूप में अनुमति नहीं है:

एक प्रश्न घटक के भीतर, वर्ण ",", "/", ":"? " "," @ "," & "," = "," + ",", ", और" $ "आरक्षित हैं।

लेकिन जैसा कि मैंने कहा ... मैंने कभी भी किसी भी मुद्दे में भाग नहीं लिया है। मुझे लगता है कि पुराने ब्राउज़र के साथ कुछ भी ज्यादा समस्या है, लेकिन हो सकता है कि कोई इस कारण किसी समस्या पर कुछ और प्रकाश डाल सके?

+0

मैं थोड़े लगा कि तकनीकी रूप से यह अनुमति नहीं थी के लिए URL से पार्स गया (स्पष्ट के लिए कारण) लेकिन मैंने सोचा होगा कि यह होगा बहुत ठीक है ठीक है। इसके साथ में कहा गया है कि मैं सोच रहा हूं कि कुछ फंकी पतले प्रॉक्सी, पुराने ब्राउज़र, सुरक्षा उपकरण इत्यादि के साथ हो सकते हैं –

+0

@ सिमॉन - मुझे अभी तक कोई दुष्प्रभाव नहीं मिला है, लेकिन मेरे उपयोग आमतौर पर बहुत विशिष्ट हैं, उदा। 'लॉगिन? आरयू = रूट/SubRoute/श्रेणी/45'। –

+0

ठीक है तो उम्मीद है कि हम एक सप्ताह के लिए ठीक हैं। धन्यवाद - और किसी ऐसे व्यक्ति को आश्चर्यचकित कर रहा है जो वास्तव में '/' का उपयोग कर रहा है ताकि मेरा प्रश्न इतनी जल्दी मिल सके! –

1

स्लैश RFC 2396 सेक्शन 3.4 के यूआरएल के क्वेरी भाग में एक "आरक्षित चरित्र" है, इसलिए धारा 2.2 के अनुसार इसे एन्कोड किया जाना है। यही है, एक क्वेरी भाग में %2F हो सकता है लेकिन / नहीं होना चाहिए।

+0

लेकिन व्यवहार में वास्तव में कुछ तोड़ने जा रहा है? मैं यूआरएल प्रारूप तय करना चाहता हूं लेकिन अगले सप्ताह –

+0

@ सिमॉन के लिए एक सप्ताह लग जाएगा यदि कोई उस प्रश्न का उत्तर जानता है तो यह आप हैं। – hobbs

+0

अच्छी तरह से यह क्रोम या आईई 8 में मेरे लिए नहीं तोड़ता है, लेकिन शायद यह मोज़ेक 1.0 का उपयोग कर किसी के लिए तोड़ देता है? मैं dunno ;-) –

5

RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (वर्ष 2005 से) के अनुसार, हाँ, / क्वेरी घटक में अनुमति है। (RFC 3986 में परिशिष्ट ए में)

query   = *(pchar/"/"/"?") 
pchar   = unreserved/pct-encoded/sub-delims/":"/"@" 

कल्पना का कहना है:: इस क्वेरी स्ट्रिंग के लिए BNF है ("?")

  • पात्रों स्लेश ("/") और प्रश्न चिह्न क्वेरी घटक के भीतर डेटा का प्रतिनिधित्व कर सकते हैं।
  • क्वेरी घटकों को अक्सर "कुंजी = मूल्य" जोड़े के रूप में पहचानने वाली जानकारी ले जाने के लिए उपयोग किया जाता है और एक बार उपयोग किया जाने वाला मान किसी अन्य यूआरआई का संदर्भ होता है, यह कभी-कभी प्रतिशत-एन्कोडिंग से बचने के लिए उपयोगिता के लिए बेहतर होता है पात्रों

यहाँ एक संबंधित सवाल यह है: Query string: Can a query string contain a URL that also contains query strings?

+0

यह सही जवाब होना चाहिए, क्योंकि आरएफसी 3986 2396 के लिए प्रतिस्थापन है। –