पर्सेंट-एन्कोडिंग क्या है?+−
पर्सेंट-एन्कोडिंग (जिसे URL एन्कोडिंग भी कहा जाता है) किसी वर्ण को % और उसके दो-अंकों के हेक्साडेसिमल मान से बदल देती है, जो उसके UTF-8 प्रतिनिधित्व के हर बाइट के लिए दोहराया जाता है। इसी वजह से एक URL स्पेस (%20), & चिह्न (%26) या इमोजी को बिना इन वर्णों को URL के अपने ही सिंटैक्स के साथ मिलाए, ले जा सकता है।
encodeURIComponent और encodeURI में क्या अंतर है?+−
encodeURIComponent कुछ गैर-आरक्षित वर्णों को छोड़कर बाकी सब कुछ एस्केप करता है, जिससे यह किसी एकल मान - क्वेरी पैरामीटर या पाथ सेगमेंट - के लिए सही विकल्प बन जाता है, क्योंकि यह & और = जैसे वर्णों को भी एस्केप करता है जो अन्यथा URL संरचना के रूप में पढ़े जाते। encodeURI पूरे URL के लिए है: यह :, /, ?, & और # जैसे संरचनात्मक वर्णों को बिना बदले छोड़ देता है ताकि URL काम करता रहे, और केवल उन्हीं वर्णों को एस्केप करता है जिन्हें URL वास्तव में नहीं रख सकता, जैसे स्पेस। पूरे URL को encodeURIComponent से गुज़ारना उसे तोड़ देता है, क्योंकि इससे स्लैश और कोलन भी एस्केप हो जाएंगे।
क्या मुझे अब भी escape() और unescape() का उपयोग करना चाहिए?+−
नहीं। दोनों को उसी पहले JavaScript मानक संस्करण में अप्रचलित घोषित कर दिया गया था जिसने encodeURIComponent भी पेश किया था, क्योंकि escape() गैर-ASCII वर्णों को उस तरह एन्कोड नहीं करता जैसा HTTP और आधुनिक URL अपेक्षा करते हैं - यह Latin-1 से बाहर की हर चीज़ के लिए एक गैर-मानक %uXXXX रूप का उपयोग करता है, जिसे decodeURIComponent वापस नहीं पढ़ सकता। यह टूल यह विकल्प केवल इसलिए रखता है ताकि आप देख सकें कि किसी पुराने सिस्टम ने क्या उत्पन्न किया।
क्वेरी स्ट्रिंग में + स्पेस में क्यों बदल जाता है?+−
क्वेरी स्ट्रिंग्स ऐतिहासिक रूप से HTML फॉर्म सबमिशन से आती हैं, जो application/x-www-form-urlencoded फ़ॉर्मेट का उपयोग करते हैं: यह एक वास्तविक स्पेस को %20 की बजाय + के रूप में एन्कोड करता है, और इस टूल का पार्सर (और JavaScript का URLSearchParams) डिकोड करते समय दोनों को स्पेस मानते हैं। यदि किसी मान में वास्तव में एक लिटरल प्लस चिह्न चाहिए, तो उसे स्वयं %2B के रूप में पर्सेंट-एन्कोड करना होगा।
?tag=a&tag=b जैसे दोहराए गए पैरामीटर के साथ क्या होता है?+−
कुछ भी नहीं खोता - यह टूल हर बार आने वाले पैरामीटर को क्रम में, क्वेरी पैरामीटर टेबल में अपनी अलग पंक्ति के रूप में सुरक्षित रखता है, ठीक वैसे ही जैसे अधिकांश सर्वर फ्रेमवर्क दोहराई गई की (key) को एक सूची में इकट्ठा करते हैं। किसी एक पंक्ति को संपादित या हटाने से बाकी पंक्तियां प्रभावित नहीं होतीं।
पार्सर ने मेरे URL के लिए https:// क्यों मान लिया?+−
example.com/path जैसी स्ट्रिंग में कोई प्रोटोकॉल नहीं होता, इसलिए न तो ब्राउज़र और न ही यह टूल यह जान सकता है कि यह एक वेब एड्रेस है, किसी अन्य प्रोटोकॉल के लिए है, या केवल सादा टेक्स्ट है। इसे अस्वीकार करने के बजाय, पार्सर https:// मान लेता है ताकि आप फिर भी इसकी जांच और संपादन कर सकें - ऐसा होने पर हर बार एक संकेत दिखाई देता है, और यदि कोई अलग स्कीम अभीष्ट थी तो आप प्रोटोकॉल फ़ील्ड को ठीक कर सकते हैं।