इस लेख में
URL एन्कोडिंग क्या है?
URL एन्कोडिंग (जिसे पर्सेंट-एन्कोडिंग भी कहते हैं) उन वर्णों को एक सुरक्षित रूप में बदलती है जो URL में असुरक्षित या आरक्षित होते हैं। हर असुरक्षित वर्ण को % चिह्न और उसके बाद उसके दो-अंकीय हेक्साडेसिमल ASCII कोड से बदल दिया जाता है। उदाहरण के लिए, एक स्पेस %20 बन जाता है और एम्परसैंड %26 बन जाता है।
URL में केवल सीमित ASCII वर्णों का ही उपयोग हो सकता है। इस सेट से बाहर के वर्ण — जिनमें स्पेस, गैर-ASCII अक्षर और विशेष चिह्न शामिल हैं — को URL में सुरक्षित रूप से भेजने के लिए पर्सेंट-एन्कोड करना ज़रूरी होता है।
URL एन्कोडिंग कैसे काम करती है
एन्कोडर उन वर्णों की पहचान करता है जो URL में सुरक्षित नहीं हैं और उन्हें उनके पर्सेंट-एन्कोडेड समकक्षों से बदल देता है।
- सुरक्षित वर्ण पहचान — अक्षर, अंक और - _ . ~ अपरिवर्तित रहते हैं
- आरक्षित वर्ण संभालना — ! * ' ( ) ; : @ & = + $ , / ? # [ ] अधिकांश संदर्भों में एन्कोड किए जाते हैं
- यूनिकोड समर्थन — गैर-ASCII वर्णों को पहले UTF-8 में एन्कोड किया जाता है, फिर हर बाइट को पर्सेंट-एन्कोड किया जाता है
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
URL एन्कोड या डिकोड करें →URL एन्कोडिंग कब उपयोग करें
जब भी URL घटकों में विशेष वर्ण दिखाई दें, तब URL एन्कोडिंग ज़रूरी हो जाती है।
- क्वेरी पैरामीटर — क्वेरी स्ट्रिंग पैरामीटर के रूप में पास किए गए मानों को एन्कोड करें, खासकर उपयोगकर्ता द्वारा दिए गए खोज शब्दों को
- API अनुरोध — API URL को प्रोग्रामेटिक रूप से बनाते समय पथ खंडों और पैरामीटरों को एन्कोड करें
- फ़ॉर्म डेटा — GET अनुरोधों में URL से जोड़ने से पहले फ़ॉर्म डेटा को एन्कोड करें
अक्सर पूछे जाने वाले सवाल
JavaScript में encodeURI और encodeURIComponent में क्या अंतर है?
encodeURI एक पूरे URL को एन्कोड करता है और /, :, # जैसे वर्णों को अछूता छोड़ देता है क्योंकि URL में उनका संरचनात्मक अर्थ होता है। encodeURIComponent एक एकल URL घटक (जैसे क्वेरी पैरामीटर मान) को एन्कोड करता है और उन संरचनात्मक वर्णों को भी पर्सेंट-एन्कोड करता है। अलग-अलग पैरामीटर मानों को एन्कोड करने के लिए हमेशा encodeURIComponent का उपयोग करें।
स्पेस कभी-कभी %20 के बजाय + के रूप में क्यों दिखता है?
application/x-www-form-urlencoded प्रारूप (HTML फ़ॉर्म सबमिशन में उपयोग होने वाला) स्पेस को %20 के बजाय + के रूप में एन्कोड करता है। यह शुरुआती वेब मानकों से चली आ रही एक पुरानी परंपरा है। HTML फ़ॉर्म से आने वाली क्वेरी स्ट्रिंग्स में + का मतलब स्पेस होता है; अन्य URL संदर्भों में %20 का उपयोग होता है। दोनों मान्य हैं, लेकिन संदर्भ तय करता है कि किसका उपयोग करना है।
क्या मुझे पूरे URL को एन्कोड करना चाहिए या सिर्फ़ उसके कुछ हिस्सों को?
केवल अलग-अलग घटकों (पथ खंड, क्वेरी पैरामीटर मान) को एन्कोड करें। पूरे URL को एन्कोड करने से :, / और ? जैसे वर्ण भी एन्कोड हो जाएँगे जो URL की संरचना को परिभाषित करते हैं, और इससे वह टूट जाएगा। नियम: मानों को एन्कोड करें, URL बनाने वाले संरचनात्मक वर्णों को नहीं।