इस लेख में
URL संरचना को समझना
URL (Uniform Resource Locator) वेब पर किसी संसाधन का पता है। हर URL एक संरचित फ़ॉर्मेट का पालन करता है जो ब्राउज़र को बताता है कि कहाँ जाना है और वहाँ कैसे पहुँचना है। इस संरचना को समझना वेब डेवलपर, SEO विशेषज्ञों और वेब API के साथ काम करने वाले हर व्यक्ति के लिए ज़रूरी है।
एक पूर्ण URL में सात अलग-अलग घटक तक हो सकते हैं: स्कीम (प्रोटोकॉल), यूज़रनेम और पासवर्ड (ऑथेंटिकेशन), होस्ट (डोमेन), पोर्ट, पाथ, क्वेरी स्ट्रिंग और फ़्रैगमेंट (हैश)। अधिकांश URL इनमें से केवल कुछ ही इस्तेमाल करते हैं, पर इन सभी को जानने से आपको जटिल URL डिबग करने और उन्हें सही ढंग से बनाने में मदद मिलती है।
URL पार्सिंग कैसे काम करती है
URL पार्सिंग एक URL स्ट्रिंग को RFC 3986 के अनुसार उसके अलग-अलग घटकों में तोड़ती है। हर घटक के लिए ख़ास नियम होते हैं कि कौन-से अक्षर मान्य हैं और उनका क्या मतलब है।
- प्रोटोकॉल (स्कीम) — संसाधन तक पहुँचने के लिए इस्तेमाल किया गया तरीक़ा: http, https, ftp, mailto या myapp:// जैसी कस्टम स्कीम
- होस्ट — सर्वर का डोमेन नाम या IP पता। इसमें सबडोमेन (api.example.com) शामिल हो सकते हैं या यह IPv4/IPv6 पता हो सकता है
- पाथ — सर्वर पर संसाधन का विशिष्ट स्थान। सेगमेंट फ़ॉरवर्ड स्लैश से अलग किए जाते हैं और उनमें एन्कोडेड अक्षर हो सकते हैं
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
URL पार्स करें →क्वेरी पैरामीटर के साथ काम करना
क्वेरी पैरामीटर की-वैल्यू जोड़े हैं जो प्रश्नचिह्न (?) के बाद URL में जोड़े जाते हैं। ये GET अनुरोधों में डेटा भेजने का सबसे आम तरीक़ा हैं और API, एनालिटिक्स ट्रैकिंग व खोज कार्यक्षमता में भारी मात्रा में इस्तेमाल होते हैं।
- बुनियादी फ़ॉर्मेट — पैरामीटर key=value जोड़े इस्तेमाल करते हैं जो एम्परसैंड से अलग होते हैं: ?page=2&sort=name&order=asc
- URL एन्कोडिंग — विशेष अक्षरों को परसेंट-एन्कोड करना ज़रूरी है: स्पेस %20 या + बन जाता है, वैल्यू में एम्परसैंड %26 बन जाता है
- ऐरे पैरामीटर — कुछ API ऐरे के लिए दोहराई गई की (color=red&color=blue) या ब्रैकेट नोटेशन (color[]=red&color[]=blue) इस्तेमाल करते हैं
- खाली और अनुपस्थित वैल्यू — कई सर्वर फ़्रेमवर्क में ?key= (खाली स्ट्रिंग), ?key (कोई वैल्यू नहीं) से अलग होता है
- पैरामीटर क्रम — तकनीकी रूप से URL पैरामीटर बेतरतीब होते हैं, पर कुछ API कैशिंग या सिग्नेचर वैलिडेशन के लिए क्रम पर निर्भर करते हैं
URL डिबगिंग के सुझाव
जो URL पहली नज़र में सही लगते हैं, उनमें सूक्ष्म एन्कोडिंग समस्याएँ, ग़ायब घटक या अप्रत्याशित अक्षर हो सकते हैं। ये सुझाव आपको आम समस्याएँ जल्दी पकड़ने में मदद करते हैं।
- पढ़ने से पहले हमेशा डिकोड करें — परसेंट-एन्कोडेड URL पढ़ने में मुश्किल होते हैं। भेजी जा रही असली वैल्यू देखने के लिए पहले डिकोड करें
- डबल एन्कोडिंग की जाँच करें — %2520 का मतलब है कि परसेंट चिह्न ही एन्कोड हुआ था (%25 = %), जो दर्शाता है कि URL दो बार एन्कोड हुआ था
- अंत के स्लैश पर ध्यान दें — सर्वर कॉन्फ़िगरेशन के आधार पर /api/users और /api/users/ अलग-अलग रूट हो सकते हैं
- फ़्रैगमेंट का निरीक्षण करें — हैश फ़्रैगमेंट (#section) कभी सर्वर को नहीं भेजा जाता। अगर आपके सर्वर-साइड कोड को इसकी ज़रूरत है, तो आपको एक अलग तरीक़ा चाहिए
- होस्ट को वैलिडेट करें — डोमेन नामों में टाइपो आम हैं। ग़ायब डॉट, आगे-पीछे हुए अक्षर या ग़लत TLD की जाँच करें
अक्सर पूछे जाने वाले सवाल
URL, URI और URN में क्या अंतर है?
URI (Uniform Resource Identifier) किसी संसाधन के किसी भी पहचानकर्ता के लिए सामान्य शब्द है। URL (Uniform Resource Locator) एक ऐसा URI है जिसमें स्थान और पहुँच का तरीक़ा शामिल होता है — यह बताता है कि संसाधन कहाँ है और उस तक कैसे पहुँचें। URN (Uniform Resource Name) एक ऐसा URI है जो स्थान बताए बिना किसी संसाधन का नाम रखता है। व्यवहार में, अधिकांश लोग URL और URI को एक-दूसरे की जगह इस्तेमाल करते हैं क्योंकि वेब पर लगभग सभी URI असल में URL ही होते हैं।
कुछ URL अक्षर परसेंट चिह्नों के साथ क्यों एन्कोड किए जाते हैं?
URL एन्कोडिंग (परसेंट-एन्कोडिंग) उन अक्षरों को एक सुरक्षित फ़ॉर्मेट में बदल देती है जिनका URL में विशेष मतलब होता है या जो URL में अनुमत नहीं होते। उदाहरण के लिए, स्पेस %20 बन जाता है क्योंकि URL में स्पेस मान्य नहीं होते। एम्परसैंड (&) क्वेरी पैरामीटर अलग करता है, इसलिए किसी वैल्यू में शाब्दिक एम्परसैंड को %26 के रूप में एन्कोड करना ज़रूरी है। एन्कोडिंग के बिना URL पार्सर संरचना का ग़लत मतलब निकालेगा।
एक URL कितना लंबा हो सकता है?
HTTP विनिर्देश में कोई आधिकारिक सीमा नहीं है। हालाँकि, अधिकांश ब्राउज़र लगभग 2,048 अक्षर तक के URL का समर्थन करते हैं (Internet Explorer की ऐतिहासिक सीमा)। Chrome जैसे आधुनिक ब्राउज़र 2MB तक का समर्थन करते हैं। सर्वर-साइड सीमाएँ अलग-अलग होती हैं — Apache का डिफ़ॉल्ट 8,190 बाइट है, Nginx का 8KB। अधिकतम अनुकूलता के लिए URL को 2,000 अक्षरों से कम रखें और बड़े डेटा पेलोड के लिए POST अनुरोध इस्तेमाल करें।