यूआरएल को कोड में बदलने का तरीका

कुछ वर्ण किसी यूआरएल (जैसे कि स्पेस) का हिस्सा नहीं हो सकते और कुछ दूसरे वर्णों का यूआरएल में खास मतलब होता है. एचटीएमएल फ़ॉर्म में, = वर्ण का इस्तेमाल किसी नाम को वैल्यू से अलग करने के लिए किया जाता है. यूआरआई जेनरिक सिंटैक्स में इस समस्या से निपटने के लिए, यूआरएल एन्कोडिंग का इस्तेमाल किया जाता है. वहीं, एचटीएमएल फ़ॉर्म ऐसे सभी वर्णों के लिए, प्रतिशत एन्कोडिंग लागू करने के बजाय, कुछ और बदलाव भी करते हैं.

उदाहरण के लिए, स्ट्रिंग में मौजूद स्पेस को या तो %20 से कोड में बदला जाता है या उसकी जगह प्लस का निशान (+) लगाया जाता है. अगर सेपरेटर के तौर पर किसी पाइप वर्ण (|) का इस्तेमाल किया जाता है, तो पक्का करें कि पाइप को %7C के तौर पर कोड में बदला गया हो. स्ट्रिंग में मौजूद कॉमा को %2C के तौर पर एन्कोड किया जाना चाहिए.

हमारा सुझाव है कि आप अपने प्लैटफ़ॉर्म के सामान्य यूआरएल बिल्डिंग लाइब्रेरी का इस्तेमाल करें, ताकि आपके यूआरएल अपने-आप कोड में बदल जाएं. इससे यह पक्का किया जा सकेगा कि यूआरएल आपके प्लैटफ़ॉर्म पर सही तरीके से चले.

मान्य यूआरएल बनाना

आपको लग सकता है कि एक "मान्य" यूआरएल खुद ही साफ़ तौर पर दिख रहा है, लेकिन यह पूरी तरह से सही नहीं है. उदाहरण के लिए, किसी ब्राउज़र के पता बार में डाले गए यूआरएल में विशेष वर्ण हो सकते हैं (जैसे, "上海+中國"); ब्राउज़र को ट्रांसमिशन से पहले उन वर्णों को अंदरूनी तौर पर किसी दूसरी एन्कोडिंग में अनुवाद करना होगा. इसी टोकन से, UTF-8 इनपुट जनरेट करने या स्वीकार करने वाला कोई भी कोड, UTF-8 वर्णों वाले यूआरएल को "मान्य" मान सकता है. हालांकि, किसी वेब सर्वर पर भेजने से पहले, आपको उन वर्णों का अनुवाद भी करना होगा. इस प्रोसेस को यूआरएल-एन्कोडिंग या प्रतिशत-एन्कोडिंग कहा जाता है.

खास वर्ण

हमें खास वर्णों का अनुवाद करना होगा, क्योंकि सभी यूआरएल यूनिफ़ॉर्म रिसॉर्स आइडेंटिफ़ायर (यूआरआई) के बताए गए सिंटैक्स के मुताबिक होने चाहिए. इसका मतलब यह है कि यूआरएल में ASCII वर्णों का सिर्फ़ एक खास सबसेट शामिल होना चाहिए: जाने-पहचाने अक्षर और अंकों वाले सिंबल और यूआरएल में कंट्रोल कैरेक्टर के तौर पर इस्तेमाल करने के लिए, कुछ रिज़र्व किए गए वर्ण. इस टेबल में इन वर्णों को संक्षेप में बताया गया है:

मान्य यूआरएल वर्णों की खास जानकारी
सेट करेंवर्णयूआरएल का इस्तेमाल
अक्षर और अंक ए बी सी डी एफ़ एफ़ जी एच आई जे के एल एम n o p q र स ट यू वी वी x वाय ज़ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 7 6 6 टेक्स्ट स्ट्रिंग, स्कीम इस्तेमाल (http), पोर्ट (8080) वगैरह.
गैर-आरक्षित - _ . ~ टेक्स्ट स्ट्रिंग
बुकिंग की गई ! * ' ( ) ; : @ & = + $ , / ? % # [ ] वर्ण और/या टेक्स्ट स्ट्रिंग को कंट्रोल करें

एक मान्य यूआरएल बनाते समय, आपको यह पक्का करना होगा कि उसमें सिर्फ़ वे वर्ण शामिल हों जो मान्य यूआरएल वर्णों की खास जानकारी वाली टेबल में दिखाए गए हैं. वर्णों के इस सेट का इस्तेमाल करने के लिए एक यूआरएल बनाने पर आम तौर पर दो समस्याएं आती हैं, एक चूक और एक विकल्प बदलता है:

  • आपको जिन वर्णों को मैनेज करना है वे ऊपर दिए गए सेट से बाहर मौजूद हैं. उदाहरण के लिए, 上海+中國 जैसी विदेशी भाषाओं के वर्णों को, ऊपर दिए गए वर्णों का इस्तेमाल करके कोड में बदलना होगा. आम तौर पर, स्पेस (जिनकी यूआरएल में अनुमति नहीं है) को अक्सर प्लस '+' वर्ण का इस्तेमाल करके भी दिखाया जाता है.
  • ऊपर दिए गए सेट में, रिज़र्व किए गए वर्णों के तौर पर वर्ण मौजूद हैं, लेकिन इनका लिटरल तौर पर इस्तेमाल किया जाना चाहिए. उदाहरण के लिए, ? का इस्तेमाल यूआरएल में क्वेरी स्ट्रिंग की शुरुआत को दिखाने के लिए किया जाता है. अगर आपको स्ट्रिंग "? और मिस्टीरियन" का इस्तेमाल करना है, तो आपको '?' वर्ण को कोड में बदलना होगा.

यूआरएल कोड में बदले जाने वाले सभी वर्णों को उनके UTF-8 वर्ण से मिलते-जुलते '%' वर्ण और दो वर्ण वाले हेक्स मान का इस्तेमाल करके एन्कोड किया जाता है. उदाहरण के लिए, UTF-8 में 上海+中國 को %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B के तौर पर यूआरएल कोड में बदला जाएगा. स्ट्रिंग ? and the Mysterians को %3F+and+the+Mysterians या %3F%20and%20the%20Mysterians के तौर पर यूआरएल कोड में बदला जाएगा.

वे सामान्य वर्ण जिन्हें कोड में बदलने की ज़रूरत होती है

कोड में बदले जाने वाले कुछ सामान्य वर्ण इस तरह हैं:

असुरक्षित वर्ण कोड में बदली गई वैल्यू
स्पेस %20
" %22
< %3C
> %3E
# %23
% %25
| %7C

उपयोगकर्ता के इनपुट से मिले यूआरएल को बदलना कभी-कभी मुश्किल होता है. उदाहरण के लिए, कोई उपयोगकर्ता किसी पते को "5th&Main St." के रूप में दर्ज कर सकता है. आम तौर पर, आपको उपयोगकर्ता के इनपुट को लिटरल वर्ण मानते हुए अपने यूआरएल को उसके हिस्सों से बनाना चाहिए.

इसके अलावा, सभी Google Maps Platform वेब सेवाओं और स्टैटिक वेब एपीआई के लिए यूआरएल में ज़्यादा से ज़्यादा 8192 वर्ण हो सकते हैं. ज़्यादातर सेवाओं के लिए, इस वर्ण सीमा तक शायद ही कभी पहुंचा जाए. हालांकि, ध्यान दें कि कुछ सेवाओं में कई पैरामीटर होते हैं जिनकी वजह से यूआरएल लंबे हो सकते हैं.