रीडायरेक्ट के साथ एक URL शॉर्टनर बनाना कई प्रमुख घटकों और चरणों को शामिल करता है। यहाँ एक सामान्य रूपरेखा दी गई है कि आप इसे कैसे कर सकते हैं: 1. अपना टेक्नोलॉजी स्टैक चुनें बैकएंड भाषा/फ्रेमवर्क: आपको अनुरोधों को संभालने, शॉर्ट कोड उत्पन्न करने, और डेटाबेस के साथ इंटरैक्ट करने के लिए एक सर्वर-साइड भाषा और फ्रेमवर्क की आवश्यकता होगी। लोकप्रिय विकल्पों में पाइथन (फ्लेस्क, डैंगो), नोड.जेएस (एक्सप्रेस), रूबी (रेल्स), गो, या पीएचपी (लैरावेल) शामिल हैं। डेटाबेस: शॉर्ट कोड और मूल यूआरएल के बीच मैपिंग को संग्रहीत करने के लिए एक डेटाबेस आवश्यक है। विकल्पों में पोस्टग्रेएसक्यूएल, माईएसक्यूएल, मॉन्गोडीबी, या बहुत उच्च-प्रदर्शन वाले, अस्थायी शॉर्ट लिंक के लिए रेडिस भी शामिल हैं।
फ्रंटएंड (वैकल्पिक लेकिन अनुशंसित): एक उपयोगकर्ता-अनुकूल इंटरफ़ेस के लिए, आप उपयोगकर्ताओं को लंबे URL इनपुट करने और उनके द्वारा उत्पन्न छोटे URL देखने की अनुमति देने के लिए HTML, CSS, और JavaScript (React, Vue, या Angular जैसे फ्रेमवर्क के साथ) का उपयोग कर सकते हैं। 2. डेटाबेस स्कीमा डिज़ाइन
आपको अपने URL मैपिंग को संग्रहीत करने के लिए एक तालिका (या संग्रह) की आवश्यकता होगी। एक बुनियादी स्कीमा में शामिल हो सकते हैं: *
id: प्राइमरी की (ऑटो-इन्क्रीडिंग पूर्णांक या UUID)।
* short_code: एक अद्वितीय, छोटी स्ट्रिंग (जैसे, "abcde") जो आपके छोटे URL का हिस्सा होगी। इसे तेज़ लुकअप के लिए इंडेक्स किया जाना चाहिए। * original_url: वह पूरा, लंबा URL जिस पर छोटा कोड रीडायरेक्ट करता है। * created_at: उस समय का टाइमस्टैम्प जब छोटा URL बनाया गया था।
* clicks (वैकल्पिक): यह एक काउंटर है कि शॉर्ट URL कितनी बार एक्सेस किया गया है। 3. कोर बैकएंड लॉजिक शॉर्ट कोड जेनरेशन:
जब कोई उपयोगकर्ता एक लंबा URL सबमिट करता है, तो आपके बैकएंड को एक अद्वितीय short_code उत्पन्न करने की आवश्यकता होती है। यह निम्नलिखित द्वारा किया जा सकता है: रैंडम स्ट्रिंग जेनरेशन: अल्फान्यूमेरिक वर्णों का उपयोग करके एक निश्चित लंबाई (जैसे, 6-8 वर्ण) की एक रैंडम स्ट्रिंग उत्पन्न करें। आपको यह जांचने की आवश्यकता होगी कि क्या यह कोड पहले से आपके डेटाबेस में मौजूद है और यदि ऐसा है तो अद्वितीयता सुनिश्चित करने के लिए इसे फिर से जेनरेट करें। हैशिंग: मूल URL या URL और एक टाइमस्टैम्प के संयोजन को हैश करें, फिर हैश का एक हिस्सा लें। यह अधिक निर्धारणात्मक हो सकता है लेकिन फिर भी अद्वितीयता जांच की आवश्यकता होती है।
बेस62 एन्कोडिंग: यदि आप अपने डेटाबेस में एक ऑटो-इन्क्रीमेंटिंग id का उपयोग कर रहे हैं, तो आप उस पूर्णांक आईडी को एक बेस62 स्ट्रिंग (0-9, a-z, A-Z) में बदल सकते हैं। यह अद्वितीयता की गारंटी देता है और बहुत कुशल है।
मैपिंग को संग्रहीत करना: एक बार एक अद्वितीय short_code उत्पन्न हो जाने पर, short_code और original_url को अपने डेटाबेस में संग्रहीत करें। रीडायरेक्शन हैंडलिंग:
जब कोई उपयोगकर्ता एक छोटे URL (जैसे, yourshortener.com/abcde) पर पहुँचता है, तो आपके सर्वर को: URL पथ से short_code (abcde) निकालना।
उस short_code से संबंधित original_url को खोजने के लिए अपने डेटाबेस को क्वेरी करें।
यदि वह मिल जाए, तो original_url पर एक HTTP 301 (स्थायी रूप से स्थानांतरित) या 302 (मिला) रीडायरेक्ट जारी करें। स्थायी रीडायरेक्ट के लिए आम तौर पर 301 को प्राथमिकता दी जाती है क्योंकि इसे ब्राउज़र द्वारा कैश किया जाता है, जिससे आपके सर्वर पर बाद के अनुरोधों में कमी आती है। यदि नहीं मिला, तो एक 404 नहीं मिला त्रुटि पृष्ठ लौटाएँ।
4. एपीआई एंडपॉइंट्स (बैकएंड के लिए) POST /shorten: रिक्वेस्ट बॉडी में original_url लेता है।
एक short_code उत्पन्न करता है। मैपिंग को संग्रहीत करता है। पूरा शॉर्ट URL (जैसे, yourshortener.com/generated_code) लौटाता है। GET /:short_code:
URL पथ से short_code लेता है। original_url को खोजता है। रीडायरेक्ट करता है। 5. फ्रंटएंड (यदि लागू हो)
एक साधारण वेब पेज जिसमें लंबे URL के लिए एक इनपुट फ़ील्ड और सबमिट करने के लिए एक बटन हो। उपयोगकर्ता को उत्पन्न छोटा URL प्रदर्शित करें। 6. डिप्लॉयमेंट आपको एक डोमेन नाम (जैसे, myurl.short) की आवश्यकता होगी।
अपने बैकएंड एप्लिकेशन को एक सर्वर (जैसे, AWS, Google Cloud, Heroku, Vercel) पर होस्ट करें। अपने वेब सर्वर (जैसे, Nginx, Apache) को अपने बैकएंड एप्लिकेशन पर अनुरोध राउट करने और डोमेन को हैंडल करने के लिए कॉन्फ़िगर करें। उदाहरण फ़्लो:
उपयोगकर्ता yourshortener.com पर जाता है। उपयोगकर्ता https://www.example.com/very/long/path/to/a/resource दर्ज करता है और "Shorten" पर क्लिक करता है।
फ्रंटएंड लंबे URL के साथ yourshortener.com/shorten पर एक POST अनुरोध भेजता है। बैकएंड XyZ12a जैसे एक अद्वितीय short_code बनाता है। बैकएंड XyZ12a -> को संग्रहीत करता है। डेटाबेस में https://www.example.com/very/long/path/to/a/resource। बैकएंड yourshortener.com/XyZ12a के साथ प्रतिक्रिया देता है। उपयोगकर्ता yourshortener.com/XyZ12a साझा करता है।
एक अन्य उपयोगकर्ता yourshortener.com/XyZ12a पर क्लिक करता है। उनका ब्राउज़र yourshortener.com/XyZ12a पर एक GET अनुरोध भेजता है। बैकएंड XyZ12a को खोजता है, और मूल URL ढूंढता है।
बैकएंड उपयोगकर्ता के ब्राउज़र को https://www.example.com/very/long/path/to/a/resource पर इंगित करते हुए एक HTTP 301 रीडायरेक्ट प्रतिक्रिया भेजता है। तब उपयोगकर्ता का ब्राउज़र मूल लंबे URL पर नेविगेट करता है।