URL एन्कोडिंग, जिसे प्रतिशत-एन्कोडिंग भी कहा जाता है, URL के भीतर डेटा को सुरक्षित रूप से संचारित करने के लिए आवश्यक है। यह प्रक्रिया उन वर्णों को परिवर्तित करती है जो मानक URL में अनुमत नहीं हैं (जैसे रिक्त स्थान, विशेष वर्ण और उच्चारित अक्षर) एक ऐसे प्रारूप में जिसे वेब सर्वर समझ सकते हैं। JavaScript दो शक्तिशाली फ़ंक्शन, encodeURI()
और encodeURIComponent()
प्रदान करता है, इसे प्रभावी ढंग से संभालने के लिए। उनके अंतरों को समझना मजबूत और सुरक्षित वेब एप्लिकेशन बनाने की कुंजी है।
विषयसूची
- URI और URL में क्या अंतर है?
- जावास्क्रिप्ट में
encodeURI()
विधि का उपयोग करके URL को एन्कोड करना - जावास्क्रिप्ट में
encodeURIComponent()
विधि का उपयोग करके URL को एन्कोड करना - सही एन्कोडिंग विधि चुनना
URI और URL में क्या अंतर है?
जबकि अक्सर परस्पर उपयोग किया जाता है, URI (यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर) और URL (यूनिफ़ॉर्म रिसोर्स लोकेटर) अलग हैं। URI एक संसाधन की पहचान करने वाला एक सामान्य शब्द है, जबकि URL URI का एक विशिष्ट प्रकार है जो अपनी पहुँच विधि (जैसे, HTTP) को निर्दिष्ट करके संसाधन का पता लगाता है। URI को पते के रूप में और URL को उस पते के निर्देशों के रूप में सोचें। जावास्क्रिप्ट एन्कोडिंग में व्यावहारिक उद्देश्यों के लिए, अंतर न्यूनतम है; दोनों को विशेष वर्णों को संभालने के लिए उचित एन्कोडिंग की आवश्यकता होती है।
जावास्क्रिप्ट में encodeURI()
विधि का उपयोग करके URL को एन्कोड करना
encodeURI()
विधि एक पूर्ण URI या URL को एन्कोड करती है। यह उन विशेष वर्णों को लक्षित करता है जो URL पथ, क्वेरी पैरामीटर या फ़्रैगमेंट पहचानकर्ताओं में अनुमत नहीं हैं, उन वर्णों को छोड़कर जिन्हें आम तौर पर सुरक्षित माना जाता है (जैसे स्लैश /
, प्रश्न चिह्न ?
, और एम्परसैंड &
)।
let url = "https://www.example.com/search?q=hello world";
let encodedUrl = encodeURI(url);
console.log(encodedUrl); // आउटपुट: https://www.example.com/search?q=hello%20world
encodeURI()
रिक्त स्थान को %20
(रिक्त स्थान का प्रतिशत-एन्कोडेड प्रतिनिधित्व) से बदल देता है। यह पूरे URL को एन्कोड करने के लिए उपयुक्त है, लेकिन व्यक्तिगत घटकों के लिए नहीं जिनमें आरक्षित वर्ण हो सकते हैं।
जावास्क्रिप्ट में encodeURIComponent()
विधि का उपयोग करके URL को एन्कोड करना
encodeURIComponent()
अधिक आक्रामक है, सभी विशेष वर्णों को एन्कोड करता है, जिसमें वे भी शामिल हैं जो आम तौर पर URL के भीतर सुरक्षित होते हैं। यह व्यक्तिगत URL घटकों (क्वेरी पैरामीटर या फ़्रैगमेंट पहचानकर्ता) को एन्कोड करने के लिए एकदम सही बनाता है। इस विधि से पूरे URL को एन्कोड करने से एक गलत URL बन जाएगा।
let urlBase = "https://www.example.com/search?q=";
let query = "hello world & special characters";
let encodedQuery = encodeURIComponent(query);
let completeUrl = urlBase + encodedQuery;
console.log(completeUrl); // आउटपुट: https://www.example.com/search?q=hello%20world%26%20special%20characters
ध्यान दें कि कैसे encodeURIComponent()
ने सभी रिक्त स्थान और एम्परसैंड को एन्कोड किया है। यह अप्रत्याशित व्यवहार और सुरक्षा भेद्यता को रोकता है जब गतिशील रूप से URL बनाते हैं।
सही एन्कोडिंग विधि चुनना
पूरे URL के लिए encodeURI()
और व्यक्तिगत घटकों (क्वेरी पैरामीटर, फ़्रैगमेंट पहचानकर्ता) के लिए encodeURIComponent()
का उपयोग करें। इन कार्यों का दुरुपयोग टूटे हुए URL और सर्वर-साइड त्रुटियां पैदा कर सकता है। मूल डेटा प्राप्त करने के लिए हमेशा सर्वर-साइड पर URL को डिकोड करें।