दिलचस्प पोस्ट
शुरुआतीकरण पर बिट्स आकार को परिभाषित करें? पाठ ब्लिंकिंग jQuery कम से कम एन / 2 बार दोहराया जाने वाला सरणी का तत्व कैसे खोजता है? पहला कंपाइलर कैसे लिखा गया था? स्क्रिप्ट चलते समय मुख्य () फ़ंक्शन नहीं चलते आईओएस 9: यूनिवर्सल लिंक काम नहीं करता है AUBUC के लिए प्रोल यूनियन `आवश्यकता ': लोड करने के लिए ऐसी कोई फ़ाइल नहीं है – एमकेएमएफ (लोड एरर) स्विच केस 'या' PHP में कैसे उपयोग करें? एचटीएमएल 5 फेविकॉन – समर्थन? डेटा एनोटेशन का उपयोग करके निर्भर गुणों का कस्टम मॉडल सत्यापन कॉर्डोवा 3.5.0 इंस्टॉल करें त्रुटि- कृपया एंड्रॉइड लक्ष्य 19 स्थापित करें मैं PHP कर्ल के साथ HTTP मूल प्रमाणीकरण का उपयोग कैसे कर सकता हूं? फ़ंक्शन में मैं एक दो-आयामी सरणी के संदर्भ को कैसे पारित कर सकता हूं? पायथन में मैं कैसे वर्णों के अनुसार यूनिकोड तारों को सॉर्ट कर सकता हूँ?

क्या एक यूआरएल को एक जगह रखने की इजाजत है?

क्या एक यूआरआई (विशेष रूप से एक HTTP यूआरएल) को एक या अधिक स्पेस वर्णों को शामिल करने की इजाजत है? यदि एक यूआरएल को एन्कोड किया जाना चाहिए, तो क्या + यह एक आम तौर पर पालन किया गया सम्मेलन या वैध विकल्प है?

विशेष रूप से, क्या कोई आरएफसी को इंगित कर सकता है जो बताता है कि अंतरिक्ष के साथ यूआरएल एन्कोडेड होना चाहिए?

प्रश्न के लिए प्रेरणा: एक वेब साइट बीटा-परीक्षण करते समय, मैंने देखा कि कुछ यूआरएल उन में रिक्त स्थान के साथ बनाए गए थे। फ़ायरफ़ॉक्स ने सही काम किया, जिससे मुझे आश्चर्य हुआ! लेकिन मैं डेवलपर्स को आरएफसी को इंगित करने में सक्षम होना चाहता था ताकि वे उन URL को ठीक करने की आवश्यकता महसूस कर सकें।

वेब के समाधान से एकत्रित समाधान "क्या एक यूआरएल को एक जगह रखने की इजाजत है?"

आरएफसी 1738 के अनुसार:

असुरक्षित:

कई कारणों से वर्ण असुरक्षित हो सकते हैं। स्पेस वर्ण असुरक्षित है क्योंकि महत्वपूर्ण स्थान गायब हो सकते हैं और यूआरएल लिखित या टाइपसेट या वर्ड प्रोसेसिंग प्रोग्राम के उपचार के अधीन होने पर नगण्य स्थान की शुरुआत की जा सकती है। वर्ण "<" और ">" असुरक्षित होते हैं क्योंकि उन्हें मुफ्त टेक्स्ट में यूआरएल के चारों ओर सीमांकक के रूप में उपयोग किया जाता है; कुछ सिस्टम में यूआरएल को सीमांकित करने के लिए उद्धरण चिह्न ( """ ) का उपयोग किया जाता है। "#" चरित्र असुरक्षित है और इसे हमेशा एन्कोड किया जाना चाहिए क्योंकि इसका उपयोग वर्ल्ड वाइड वेब और अन्य प्रणालियों में एक टुकड़ा / एंकर पहचानकर्ता जो इसका अनुसरण कर सकता है। "%" वर्ण असुरक्षित है क्योंकि इसका उपयोग अन्य वर्णों के एन्कोडिंग के लिए किया जाता है। अन्य वर्ण असुरक्षित हैं क्योंकि गेटवे और अन्य परिवहन एजेंट ज्ञात होते हैं, कभी-कभी ऐसे अक्षरों को संशोधित करते हैं। ये वर्ण "{" , "}" , "|" , "\" , "^" , "~" , "[" , "]" , और "`"

सभी असुरक्षित पात्रों को हमेशा किसी यूआरएल के भीतर एनकोड करना चाहिए । उदाहरण के लिए, वर्ण "#" को यूआरएल के भीतर भी एन्कोड किया जाना चाहिए सिस्टम में जो कि सामान्यतः टुकड़ा या एंकर पहचानकर्ता से निपटने के लिए नहीं होते हैं, इसलिए यदि यूआरएल को किसी अन्य सिस्टम में कॉपी किया जाता है जो इसका उपयोग करता है, तो इसे बदलने के लिए आवश्यक नहीं होगा यूआरएल एन्कोडिंग

यह एन्कोडेड क्यों होना चाहिए? एक अनुरोध ऐसा दिखता है:

 GET /url HTTP/1.1 (Ignoring headers) 

एक सफेद स्थान से अलग 3 फ़ील्ड हैं। यदि आप अपने यूआरएल में जगह डालते हैं:

 GET /url end_url HTTP/1.1 

आपको पता है कि 4 फ़ील्ड हैं, HTTP सर्वर आपको बताएगा कि यह एक अमान्य अनुरोध है।

 GET /url%20end_url HTTP/1.1 

3 फ़ील्ड => वैध

नोट: क्वेरी स्ट्रिंग में (के बाद?), एक जगह आमतौर पर + के रूप में एन्कोडेड है

 GET /url?var=foo+bar HTTP/1.1 

बजाय

 GET /url?var=foo%20bar HTTP/1.1 

कम उत्तर: नहीं, आपको एक स्थान को एन्कोड करना होगा; यह एक के रूप में एक अंतरिक्ष सांकेतिक शब्दों में बदलना सही है, लेकिन केवल क्वेरी स्ट्रिंग में; पथ में आपको %20 उपयोग करना होगा

यूआरएल को आरएफसी 3986 में परिभाषित किया गया है , हालांकि अन्य आरएफसी प्रासंगिक भी हैं लेकिन आरएफसी 1738 अप्रचलित है

उनके पास कई अन्य पात्रों के साथ रिक्त स्थान नहीं है। चूंकि उन निषिद्ध वर्णों को अक्सर किसी तरह का प्रतिनिधित्व करने की आवश्यकता होती है, इसलिए उन्हें "%" उपसर्ग के साथ उनके एएससीआईआई हेक्साडेसिमल समकक्ष में अनुवाद करके यूआरएल में एन्कोडिंग के लिए एक योजना है।

अधिकांश प्रोग्रामिंग भाषाओं / प्लेटफ़ॉर्म एन्कोडिंग और डीकोडिंग यूआरएल के लिए फ़ंक्शन प्रदान करते हैं, हालांकि वे आरएफसी मानकों का उचित रूप से पालन नहीं कर सकते हैं। उदाहरण के लिए, मुझे पता है कि PHP नहीं करता है

हां, यह जगह आमतौर पर "% 20" को एन्कोड की जाती है यद्यपि। किसी यूआरएल को पास करने वाले किसी भी पैरामीटर को सुरक्षा के कारणों के लिए एन्कोड किया जाना चाहिए

क्या कोई आरएफसी को इंगित करता है कि किसी स्थान के साथ यूआरएल एन्कोडेड होना चाहिए?

यूआरआई, और इस प्रकार यूआरएल, आरएफसी 3986 में परिभाषित किए गए हैं

यदि आप वहां परिभाषित व्याकरण को देखते हैं, तो आप अंततः ध्यान दें कि एक अंतरिक्ष चरित्र कभी भी वाक्यात्मक रूप से कानूनी यूआरएल का हिस्सा नहीं हो सकता है, इस प्रकार शब्द "अंतरिक्ष के साथ यूआरएल" अपने आप में एक विरोधाभास है।

यहां एक बढ़िया पृष्ठ है जो आपको दिखाता है कि कई तकनीकों का उपयोग करके चीजों को कैसे एन्कोड किया जाता है

http://andrewu.co.uk/tools/uriencoder/

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

इस विकिपीडिया लेख के बारे में प्रतिशत-एन्कोडिंग देखें

यूआरएल में उनके पास एक स्पेस कैरेक्टर हो सकता है और इन्हें अधिकांश ब्राउज़रों में% 20 के रूप में प्रदर्शित किया जाएगा, लेकिन ब्राउजर एन्कोडिंग नियमों में काफी बदलाव आते हैं और हम उस पर निर्भर नहीं कर सकते हैं कि एक ब्राउज़र यूआरएल कैसे प्रदर्शित करेगा।

तो इसके बजाय आप यूआरएल में स्पेस कैरेक्टर को किसी भी ऐसे वर्ण के साथ बदल सकते हैं, जो आपको लगता है कि यूआरएल को और अधिक पठनीय और 'सुंदर' होगा;) ….. ओ बहुत सामान्य अक्षर हैं जो पसंदीदा हैं "-", "_", "+" …. लेकिन ये अनिवार्यता नहीं हैं, ताकि आप यूआरएल में पहले से ही किसी भी पात्र का उपयोग कर सकें।

कृपया यूआरएल स्पेस वर्ण प्रतिस्थापन के रूप में%, &,}, {,], [, /,>, <से बचें क्योंकि वे कुछ ब्राउज़रों और प्लेटफार्मों पर एक त्रुटि खींच सकते हैं।

जैसा कि आप देख सकते हैं कि स्टेक अतिप्रवाह ही '-' वर्ण को अंतरिक्ष (% 20) प्रतिस्थापन के रूप में प्रयोग करता है

एक मुबारक पूछताछ करें

यूआरएल में उनके पास रिक्त स्थान नहीं होना चाहिए। अगर आपको उस पते को संबोधित करना होगा, तो इसके एन्कोडेड मान का %20 का उपयोग करें

फ़ायरफ़ॉक्स 3 पता बार में रिक्त स्थान के रूप में यूआरएल में %20 एस प्रदर्शित करेगा।

ऐसा नहीं देखा है। शायद आप इसे स्वीकार करने के लिए वेब सर्वर को कॉन्फ़िगर कर सकते हैं …