URL Shortener कैसे काम करता है? [बन्द है]


87

मुझे आश्चर्य है कि एक URL शॉर्टनर कैसे काम करता है, जैसे कि वे टेक्स्ट को एड्रेस बार से कैसे निकालते हैं और URL को सही करने के लिए इसे मैप करते हैं, बाद में इसे रीडायरेक्ट करते हैं। वे किस प्रोग्रामिंग भाषा का उपयोग करते हैं? वे मानचित्रण के इतिहास को कैसे बनाए रखते हैं? वे छोटे url की विशिष्टता कैसे सुनिश्चित करते हैं? URL पर आए बिना कोई आदमी इसे अनमैप कैसे कर सकता है?


65
केवल 3 करीबी वोट? चलो, वह कुछ सीखना चाहता है, इसे तेजी से बंद करें !!!
एडेप्टर

22
यह सटीक प्रश्न था जो मेरे पास था और मुझे यह देखकर बहुत निराशा हुई कि यह बंद है। यह अस्पष्ट या अधूरा नहीं है - वह जो कुछ पूछ रहा है, उसमें बहुत विशिष्ट है।
अंगूठे

3
@bmargulies मुझे लगता है कि सवाल को बंद नहीं किया जाना चाहिए, यह बहुत मददगार था और यहां तक ​​कि जवाब भी, 43 अपवोट्स भी सोचते हैं और आपने इसे बंद करने का फैसला किया..क्यों ??
अमृथ ए

जवाबों:


40

विकी योर फ्रेंड

मूल रूप से, छोटे नाम वाली वेबसाइट का उपयोग एक स्थान धारक के रूप में किया जाता है, जैसे कि bit.ly।

फिर, bit.ly उपयोगकर्ता को प्रदान करने के लिए एक कुंजी उत्पन्न करता है, जो यादृच्छिक रूप से दोहराने के लिए उत्पन्न होता है। 35 चरित्र विकल्प और 8 या तो मूल्यों के साथ, गणित करते हैं। यह बहुत संभव कुंजी है। यदि कोई url पहले से मौजूद कुंजी के बराबर है, तो मुझे याद है कि कहीं न कहीं वे भी कुंजियों का पुन: उपयोग करते हैं।

वे वास्तव में एक विशिष्ट प्रोग्रामिंग भाषा का उपयोग नहीं करते हैं, वे बस एक साधारण URL पुनर्निर्देशित का उपयोग करते हैं, जिसे HTML i विश्वास के साथ किया जा सकता है।


ओह, यह अच्छा है। बहुत बहुत धन्यवाद
prap19

25
रीडायरेक्ट HTML के साथ नहीं किया गया है, यह HTTP हेडर्स के साथ किया गया है। (स्थिति कोड 301 या 302, निर्भर करता है)।
येलहल

आह ठीक है, यह अधिक समझ में आता है। स्पष्टीकरण के लिए धन्यवाद।
डैनियल जी। विल्सन

उन्हें रीडायरेक्ट करने के लिए लोकेशन हेडर का उपयोग करना चाहिए।
जीवन पाटिल

26

URL शोर्टर्स केवल एक शोर्ट-जनरेट करते हैं, शोर्ट-टारगेट URL को मैप करते हैं, और एक नया URL प्रदान करते हैं। URL देखने से एक कुंजी के रूप में शोर्ट के साथ डेटाबेस लुकअप होता है, और आपको लक्ष्य URL पर पुनर्निर्देशित करता है। छोटे URL और गंतव्य URL के बीच कोई एल्गोरिथमिक संगति नहीं है, इसलिए आप URL shortener के सिस्टम से गुजरे बिना इसे "अनमैप" नहीं कर सकते।

आप इसे किसी भी प्रोग्रामिंग भाषा और डेटा स्टोर के साथ कर सकते हैं। कोड पीढ़ी के रूप में अच्छी तरह से विशिष्टता सुनिश्चित करने के लिए तुच्छ है; यदि आपके पास एक प्राथमिक प्राथमिक पूर्णांक कुंजी है, तो आप बस कुंजी को base62 के रूप में एन्कोड कर सकते हैं और उसकी सेवा कर सकते हैं। चूंकि कोड प्रकृति में वृद्धिशील हैं, इसलिए आपके पास कभी कोई विरोध नहीं होगा।


19

यह प्रक्रिया वास्तव में बहुत सरल है: एक स्क्रिप्ट जो URL के लिए पूछती है, एक यादृच्छिक स्ट्रिंग उत्पन्न करती है (और पुष्टि करती है कि यह स्ट्रिंग पहले से उपयोग नहीं की गई है), और दोनों को किसी तरह के डेटाबेस में रखती है। जब आप एक यूआरएल का अनुरोध करते हैं, तो यादृच्छिक स्ट्रिंग के लिए डेटाबेस में एक और स्क्रिप्ट दिखाई देती है, और यदि इसका पाया आपको साइट पर पुनर्निर्देशित करता है।

यह निश्चित रूप से दुरुपयोग की रोकथाम, URL फ़िल्टरिंग, स्पैम रोकथाम, URL सत्यापन इत्यादि जैसी आवश्यक सुविधाओं के कारण उत्पादन में अधिक जटिल है, लेकिन ये लागू करने के लिए बहुत सरल हैं।


भाषा अप्रासंगिक है, ज्यादातर कोई भी करेगा।


9
"और पुष्टि करता है कि इस स्ट्रिंग का उपयोग पहले से नहीं किया गया है" .. कैसे? यह सबसे बड़ा सवाल है
स्टीवी

3
@Stewie: चयन करें * मैपिंग से कहाँ कुंजी = stringToCheck, और जाँच करें कि क्या कोई पंक्तियाँ लौटी हैं? या अपनी पसंद की डेटाबेस भाषा में किसी भी समान चीज। ईमानदार होने के लिए पूरी समस्या का सबसे सरल हिस्सा लगता है।
डेविड लियू

@Stewie या वे मैप करने के लिए एक HashMap का उपयोग कर सकते हैं<key, url>
roottraveller

@DavidLiu जब तक इसका कोई परिणाम नहीं निकलता है, तब तक किसी को पुनर्जीवित और जारी रखने की आवश्यकता नहीं होगी? जैसे-जैसे आपका डेटा आकार बढ़ता है, जांचने का समय बढ़ता जाता है। सबसे खराब स्थिति में, आपके DB के प्रश्नों की संख्या n-1 होगी जहां n "स्ट्रिंग्स" की संख्या है; क्या होता है जब आपके पास 100M तार ​​होते हैं?
स्टीवे

@Stewie यह पूरी तरह से एक अलग सवाल है, समाधान के सिद्धांत के साथ एक समस्या है। आप सही कह रहे हैं कि उत्थान समस्या आखिरकार एक मुद्दा बन जाएगी, लेकिन फिर, इसलिए मैंने कहा कि "स्ट्रिंग का सत्यापन पहले से ही उपयोग नहीं किया गया है" समाधान का आसान हिस्सा है। प्रतिस्थापन के बिना यादृच्छिक करने के लिए बहुत सारे वैकल्पिक समाधान हैं।
डेविड लियू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.