URL एन्कोडिंग: संपूर्ण गाइड
URL एन्कोडिंग, जिसे प्रतिशत एन्कोडिंग भी कहा जाता है, यह सुनिश्चित करने के लिए एक महत्वपूर्ण तंत्र है कि URLs सभी सिस्टम्स में सही तरीके से ट्रांसमिट होते हैं। स्पेशल कैरेक्टर्स, स्पेसेस और नॉन-ASCII टेक्स्ट को एन्कोड करने का तरीका समझना वेब डेवलपमेंट का एक आवश्यक हिस्सा है।
URL एन्कोडिंग क्या है?
URL एन्कोडिंग URLs में असुरक्षित कैरेक्टर्स को उनके प्रतिनिधित्व में परिवर्तित करती है जो सुरक्षित रूप से ट्रांसमिट किए जा सकते हैं। URL स्पेसिफिकेशन (RFC 3986) परिभाषित करता है कि कौन से कैरेक्टर्स URLs में सुरक्षित रूप से दिखाई दे सकते हैं और कौन से नहीं कर सकते। असुरक्षित कैरेक्टर्स को % के बाद दो हेक्साडेसिमल डिजिट्स के साथ एन्कोड किया जाता है जो कैरेक्टर के ASCII कोड का प्रतिनिधित्व करते हैं। उदाहरण के लिए: स्पेस → %20, ! → %21, # → %23, $ → %24, % → %25, & → %26, ' → %27, ( → %28, ) → %29। URL के विभिन्न हिस्सों में अलग-अलग एन्कोडिंग नियम होते हैं। पाथ: अधिकांश विशेष कैरेक्टर्स को एन्कोड करना होगा। क्वेरी स्ट्रिंग: स्पेसेस और विशेष कैरेक्टर्स को एन्कोड किया जाना चाहिए। फ्रैगमेंट: पाथ के समान नियम। आरक्षित कैरेक्टर्स (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) में विशेष अर्थ है और सिंटैक्स के हिस्से के रूप में उपयोग किए जाने पर एन्कोड नहीं किए जाने चाहिए। सामान्य मामले जिन्हें एन्कोडिंग की आवश्यकता होती है: स्पेसेस को %20 (या + क्वेरी स्ट्रिंग्स में) में एन्कोड किया जाना चाहिए। नॉन-ASCII कैरेक्टर्स (यूनिकोड) को UTF-8 बाइट्स के रूप में एन्कोड किया जाना चाहिए। स्पेशल कैरेक्टर्स जो URL सिंटैक्स का हिस्सा नहीं हैं। एम्परसैंड्स (&) क्वेरी पैरामीटर वैल्यू में। इक्वल साइन्स (=) क्वेरी पैरामीटर वैल्यू में। एन्कोडिंग के बिना क्या होता है: URLs टूट जाते हैं या गलत तरीके से पार्स होते हैं। स्पेशल कैरेक्टर्स को URL कमांड के रूप में गलत व्याख्या की जाती है। डेटा करप्ट या खो जाता है। सिक्योरिटी वल्नरेबिलिटीज (जैसे URL injection अटैक्स)। क्रॉस-ब्राउज़र और क्रॉस-प्लेटफ़ॉर्म असंगतताएं।
हमारे URL एन्कोडर का उपयोग करना
हमारा मुफ्त URL एन्कोडर/डिकोडर टूल URLs के साथ काम करना आसान बनाता है जिनमें स्पेशल कैरेक्टर्स हैं। एन्कोड करने के लिए: अपने टेक्स्ट या URL को इनपुट फील्ड में पेस्ट करें। टूल स्वचालित रूप से पता लगाता है कि कौन से कैरेक्टर्स को एन्कोड करने की आवश्यकता है। एन्कोडेड रिजल्ट तुरंत दिखाई देता है। URL-सुरक्षित आउटपुट को कॉपी करें और उपयोग करें। डिकोड करने के लिए: एन्कोडेड URL पेस्ट करें (जिसमें %20, %3A आदि हैं)। टूल प्रतिशत-एन्कोडेड कैरेक्टर्स को मूल टेक्स्ट में बैक कन्वर्ट करता है। पठनीय रिजल्ट दिखाई देता है। यह URLs को डिबग करने और क्वेरी पैरामीटर्स को समझने में मदद करता है। सामान्य उपयोग के मामले: क्वेरी पैरामीटर्स बनाना (search?q=hello%20world)। स्पेसेस वाले URLs को एन्कोड करना। यूनिकोड कैरेक्टर्स को संभालना (विदेशी भाषाओं में)। API रिक्वेस्ट्स तैयार करना। URLs में फाइल नेम्स को एन्कोड करना। ओAuthリダइरेक्ट URLs को एन्कोड करना। एन्कोडिंग संपूर्ण URLs बनाम भागों: केवल वैल्यू एन्कोड करें, संपूर्ण URL नहीं। अच्छा: https://example.com/search?q=hello%20world। बुरा: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world। URL के प्रत्येक कॉम्पोनेंट को अलग से एन्कोड करें। प्रोटोकॉल और डोमेन नेम को कभी भी एन्कोड न करें। डबल एन्कोडिंग से बचें: एक बार एन्कोड करें, दो बार नहीं। डबल-एन्कोडिंग की जांच करें: %2520 (स्पेस के बजाय %20 एन्कोडेड)। यदि सुनिश्चित नहीं हैं, तो पहले डिकोड करें, फिर पुन: एन्कोड करें। कई लाइब्रेरीज स्वचालित रूप से एन्कोड करती हैं—मैनुअल एन्कोडिंग को न दोहराएं।
URL एन्कोडिंग बेस्ट प्रैक्टिसेज
हमेशा यूजर इनपुट को एन्कोड करें। यूजर्स स्पेशल कैरेक्टर्स दर्ज करेंगे। URLs में यूजर डेटा डालने से पहले एन्कोड करें। यह सिक्योरिटी वल्नरेबिलिटीज (URL injection) को रोकता है। यह URLs को टूटने से रोकता है। बिल्ट-इन एन्कोडिंग फंक्शन्स का उपयोग करें, मैनुअल रिप्लेसमेंट नहीं। सही एन्कोडिंग फंक्शन का उपयोग करें। JavaScript: संपूर्ण URLs के लिए encodeURI(), क्वेरी पैरामीटर्स के लिए encodeURIComponent()। Python: urllib.parse.quote() या quote_plus()। PHP: urlencode() या rawurlencode()। Java: URLEncoder.encode()। गलत फंक्शन गलत एन्कोडिंग की ओर ले जाता है। encodeURI बनाम encodeURIComponent को समझें। encodeURI: संपूर्ण URLs को एन्कोड करता है, URL विशेष कैरेक्टर्स को छोड़ता है (: / ? #)। सामान्य रूप से संपूर्ण URLs बनाने के लिए उपयोग करें। encodeURIComponent: सब कुछ एन्कोड करता है सिवाय अनारक्षित कैरेक्टर्स (A-Z a-z 0-9 - _ . ~ !)। क्वेरी पैरामीटर वैल्यू के लिए उपयोग करें। अधिक आक्रामक, सुरक्षित विकल्प। प्लस साइन्स (+) सावधानी से संभालें। क्वेरी स्ट्रिंग्स में, + का अर्थ स्पेस हो सकता है। एक लिटरल + को %2B के रूप में एन्कोड किया जाना चाहिए। application/x-www-form-urlencoded स्पेसेस के लिए + का उपयोग करता है। URL पाथ्स में, + एक लिटरल + है। फॉर्म सबमिशन के लिए सही एन्कोडिंग टाइप का उपयोग करें। यूनिकोड सही तरीके से संभालें। नॉन-ASCII कैरेक्टर्स को पहले UTF-8 में एन्कोड किया जाना चाहिए। फिर प्रत्येक बाइट को प्रतिशत-एन्कोडेड किया जाता है। उदाहरण: "हिंदी" → %E0%A4%B9%E0%A4%BF%E0%A4%82%E0%A4%A6%E0%A5%80। आधुनिक लाइब्रेरीज यह स्वचालित रूप से करती हैं। IDN (Internationalized Domain Names) एन्कोडिंग के लिए Punycode का उपयोग करें। URLs की लेंथ सीमाओं के बारे में जागरूक रहें। URLs की कोई आधिकारिक लेंथ सीमा नहीं है। व्यावहारिक सीमाएं मौजूद हैं: ब्राउज़र्स आमतौर पर ~2000 कैरेक्टर्स का सपोर्ट करते हैं। सर्वर्स में कॉन्फ़िगर योग्य सीमाएं होती हैं (अक्सर 8KB)। बड़े डेटा के लिए POST का उपयोग करने पर विचार करें। एन्कोडिंग URL लेंथ बढ़ाती है—इसे ध्यान में रखें।
टूल आज़माएं
URL एनकोडर/डिकोडर
और जानें
अक्सर पूछे जाने वाले प्रश्न
URL एनकोडर/डिकोडर
अक्सर पूछे जाने वाले प्रश्न →