§

URL

§

URL के हिस्से

पूरा URL (href)
प्रोटोकॉल
यूज़रनेम
पासवर्ड
होस्ट
होस्टनेम
पोर्ट
पाथनेम
सर्च (रॉ)
हैश (फ्रैगमेंट)
ओरिजिन
§

क्वेरी पैरामीटर

की वैल्यू (रॉ) डिकोड की गई वैल्यू

इस URL में कोई क्वेरी पैरामीटर नहीं है

CERT-In के फ़िशिंग-इनसिडेंट रिपोर्टिंग पोर्टल पर संदिग्ध URL जमा करते समय सुरक्षा विश्लेषकों को प्रत्येक क्वेरी पैरामीटर अलग से देखना पड़ता है — इस टूल से वह काम सेकंडों में होता है। MeitY के Digital India कार्यक्रम के अंतर्गत india.gov.in सब-डोमेन पर query-parameter नामकरण मानक निर्धारित हैं, जिनका पालन सरकारी पोर्टल डेवलपर जाँचते हैं। DPDP अधिनियम 2023 के तहत भारतीय फिनटेक कंपनियों को tracking-parameter की पहचान कर कुकी-अनुमति के आधार पर उन्हें छोड़ना अनिवार्य है। यह ब्राउज़र-only पार्सर WHATWG मानक उपयोग करता है — कोई डेटा सर्वर पर नहीं जाता।

URL पार्सिंग कैसे काम करती है

पार्सर WHATWG URL मानक पर चलता है, वही एल्गोरिदम जो ब्राउज़र किसी भी href के लिए उपयोग करता है। हम स्ट्रिंग को नेटिव URL कंस्ट्रक्टर को देते हैं और हर घटक को एक प्रॉपर्टी के रूप में वापस पढ़ते हैं।

  1. इनपुट को सत्यापित करें. खाली स्ट्रिंग पर खाली-इनपुट सूचना दिखती है। अन्यथा हम टेक्स्ट को new URL(text) में पास करते हैं; TypeError का अर्थ है कि स्ट्रिंग एक वैध पूर्ण URL नहीं है।
  2. संरचनात्मक घटक पढ़ें. हम URL ऑब्जेक्ट से protocol, username, password, host, hostname, port, pathname, search, hash, और origin पढ़ते हैं। प्रत्येक अपनी पंक्ति में आता है ताकि आप उसे अलग से कॉपी कर सकें।
  3. क्वेरी स्ट्रिंग में चलें. हम url.searchParams.entries() को iterate करते हैं और प्रति की एक टेबल पंक्ति रेंडर करते हैं। रॉ वैल्यू decodeURIComponent(value) के साथ रहती है ताकि प्रतिशत-एन्कोडेड पेलोड (स्पेस, प्लस, यूनिकोड) सादे पाठ में पढ़ें।
  4. मांग पर पुनर्निर्माण करें. किसी भी सेल को संपादित करें, एक पंक्ति हटाएँ, या नया पैरामीटर जोड़ें, फिर URL बनाएँ क्लिक करें। टूल आपके संपादनों से एक नया URL ऑब्जेक्ट बनाता है और परिणाम इनपुट बॉक्स में वापस लिखता है।
  5. लाइव मोड. लाइव मोड टॉगल करें और हर कीस्ट्रोक 150 ms डिबाउंस के साथ URL को फिर से पार्स करता है। जब आप लॉग से फ्रैगमेंट पेस्ट कर रहे हों और तत्काल प्रतिक्रिया चाहते हों तो उपयोगी है।

ब्राउज़र में URL पार्स क्यों करें

  • कुछ भी टैब से बाहर नहीं जाता. URL में टोकन, सेशन ID, OAuth स्टेट और हस्ताक्षरित क्वेरी पैरामीटर होते हैं जो आप किसी तृतीय-पक्ष सेवा को नहीं देना चाहते। यह पार्सर वही URL एल्गोरिदम उपयोग करता है जो आपका ब्राउज़र पहले से स्थानीय रूप से चलाता है — कोई अपलोड नहीं, कोई नेटवर्क कॉल नहीं।
  • आपके कोड को जो दिखता है वही. Node.js, Deno, आधुनिक ब्राउज़र, और Cloudflare Workers सभी WHATWG URL implementation के साथ आते हैं। यहाँ एक URL का निरीक्षण आपको वही घटक विभाजन देता है जो प्रोडक्शन में new URL(input) कॉल देता है।
  • क्वेरी स्ट्रिंग को मानवों की तरह पढ़ें. रॉ और डिकोड की गई वैल्यू साथ-साथ रखी हैं, इसलिए q=hello%20world जोड़ा वायर बाइट और पठनीय hello world दोनों एक नज़र में दिखाता है। मानसिक URL-डिकोडिंग की ज़रूरत नहीं।
  • राउंड-ट्रिप संपादन. एक ट्रैकिंग पैरामीटर हटाएँ, पाथ में टाइपो ठीक करें, पोर्ट बदलें — और URL पुनर्निर्माण करें। आउटपुट URL कंस्ट्रक्टर से वापस जाता है इसलिए कोई भी अमान्य चीज़ कॉपी करने से पहले सामने आ जाती है।

सामान्य अनुप्रयोग

URL पार्सिंग दिन-प्रतिदिन के डेवलपर, सुरक्षा और एनालिटिक्स कार्य में तब दिखती है जब URL महज़ एक लिंक से अधिक होता है।

  • API एंडपॉइंट डीबग करना: curl या Postman अनुरोध भेजने से पहले बेस URL, पाथ और क्वेरी पैरामीटर की पुष्टि करें।
  • ट्रैकिंग-पैरामीटर ऑडिट: लैंडिंग-पेज URL पर हर UTM, gclid, fbclid, या campaign की सूची बनाएँ और तय करें कि कौन से रखने हैं।
  • एफिलिएट और पार्टनर लिंक सत्यापित करना: एक डीपलिंक पेस्ट करें, डेस्टिनेशन होस्ट और एम्बेडेड रीडायरेक्ट टार्गेट प्रकाशित करने से पहले पुष्टि करें।

एक विस्तृत उदाहरण

इनपुट में https://example.com/search?q=hello%20world&lang=en पेस्ट करें। प्रोटोकॉल पढ़ता है https:, होस्टनेम पढ़ता है example.com, पाथनेम पढ़ता है /search, और सर्च पढ़ता है ?q=hello%20world&lang=en। क्वेरी टेबल दो पंक्तियाँ दिखाती है: q जिसका रॉ वैल्यू hello%20world और डिकोड वैल्यू hello world है, फिर lang जिसका रॉ और डिकोड दोनों वैल्यू en है। lang पंक्ति पर हटाएँ क्लिक करें, फिर URL बनाएँ — इनपुट https://example.com/search?q=hello%20world पर अपडेट होता है।

FAQ

URL पार्सर क्या है?

URL पार्सर एक URL स्ट्रिंग को नाम वाले घटकों में तोड़ता है: प्रोटोकॉल (https), यूज़रइन्फो (यूज़रनेम, पासवर्ड), होस्ट (होस्टनेम और वैकल्पिक पोर्ट), पाथ, क्वेरी स्ट्रिंग, और फ्रैगमेंट। यह प्रत्येक क्वेरी पैरामीटर को भी डिकोड करता है ताकि प्रतिशत-एन्कोडेड वैल्यू (जैसे स्पेस के लिए %20) पढ़ी जा सकें। यहाँ पार्सर WHATWG URL मानक उपयोग करता है, वही जो आपका ब्राउज़र पेज लोड करने के लिए उपयोग करता है।

होस्ट और होस्टनेम में क्या अंतर है?

होस्टनेम केवल डोमेन (या IP पता) है — example.com:8080 के लिए होस्टनेम example.com है। होस्ट होस्टनेम और पोर्ट है जब कोई गैर-डिफ़ॉल्ट पोर्ट मौजूद हो, इसलिए उसी URL का होस्ट example.com:8080 है। डिफ़ॉल्ट पोर्ट (https के लिए 443, http के लिए 80) वाले URL के लिए होस्ट और होस्टनेम समान हैं।

क्या डिकोडिंग स्वचालित रूप से होती है?

संरचनात्मक घटक (प्रोटोकॉल, होस्टनेम, पोर्ट, पाथनेम) URL ऑब्जेक्ट से सीधे पढ़े जाते हैं बिना अतिरिक्त डिकोडिंग के — URL कंस्ट्रक्टर उन्हें पहले से नॉर्मलाइज़ कर देता है। क्वेरी वैल्यू दो बार दिखाई जाती हैं: रॉ प्रतिशत-एन्कोडेड स्ट्रिंग जैसी search में दिखती है, और decodeURIComponent द्वारा उत्पन्न डिकोड वैल्यू। इस तरह आप वह फॉर्म कॉपी कर सकते हैं जो आपका डाउनस्ट्रीम टूल अपेक्षा करता है।

क्या मैं URL संपादित और पुनर्निर्माण कर सकता हूँ?

हाँ। हर parts सेल और हर query-parameter सेल संपादन योग्य है। Add और Remove बटन से क्वेरी पंक्तियाँ जोड़ें या हटाएँ, फिर हिस्सों से URL बनाएँ क्लिक करें। टूल आपके संपादनों को URL कंस्ट्रक्टर से वापस चलाता है और परिणाम इनपुट में लिखता है — यदि संपादन एक अमान्य URL बनाते हैं तो आपको वही त्रुटि संदेश मिलता है जो आपके अपने कोड में new URL() से मिलता।

URL पार्सिंग उन छोटे कामों में से एक है जो हर वेब डेवलपर हर हफ्ते करता है। इसे ब्राउज़र में, उसी एल्गोरिदम के साथ जो प्रोडक्शन कोड उपयोग करता है, करने से काम तेज़ रहता है और डेटा आपकी मशीन पर।