लघु URL सेवाएँ कैसे काम करती हैं?


105

TinyURL या Metamark जैसी सेवाएं कैसे काम करती हैं?
क्या वे छोटे URL कुंजी को एक [वर्चुअल?] वेब पेज के साथ जोड़ते हैं जो मूल URL को केवल "HTTP रीडायरेक्ट" प्रदान करता है? या इसमें और अधिक "जादू" है?

[मूल शब्दकरण] मैं अक्सर TinyURL, Metamark, और अन्य जैसी URL शॉर्टिंग सेवाओं का उपयोग करता हूं, लेकिन हर बार जब मैं करता हूं, तो मुझे आश्चर्य होता है कि ये सेवाएं कैसे काम करती हैं। क्या वे एक नई फ़ाइल बनाते हैं जो किसी अन्य पृष्ठ पर पुनर्निर्देशित करेगा या क्या वे उप-डोमेन का उपयोग करते हैं?


1
[गैर-] सवाल को फिर से बताने के लिए: "TinyURL जैसी सेवाएं कैसे काम करती हैं? क्या वे छोटे URL कुंजी को [वर्चुअल?] वेब पेज से जोड़ते हैं, जो केवल" HTTP रीडायरेक्ट "मूल URL प्रदान करते हैं? पूछ रहे हैं?
mjv

1
क्या छोटे उरोज कभी समाप्त हो जाते हैं? (यानी उन यूआरएल के लिए डेटाबेस प्रविष्टियों को सर्वर से हटा दिया जाता है)
thd

2
@thd: हाँ, लेकिन यह (दैनिक) हिट, और लघु यूआरएल सेवा प्रदाता की नीति पर निर्भर कर सकता है। वे कभी भी समाप्ति की अनुमति नहीं दे सकते, कुछ उसके लिए सदस्यता मांगते हैं।
हाबिल

जवाबों:


224

नहीं, वे फ़ाइलों का उपयोग नहीं करते हैं। जब आप उस तरह के लिंक पर क्लिक करते हैं, तो http://bit.ly/duSk8wK (इस प्रश्न के लिंक) की तरह, एक HTTP अनुरोध पूरे URL के साथ उनके सर्वर को भेजा जाता है । वे पथ भाग (यहां duSk8wK) पढ़ते हैं , जो उनके डेटाबेस में मैप करता है। डेटाबेस में, वे एक विवरण (कभी-कभी), आपका नाम (कभी-कभी) और वास्तविक URL पाते हैं। फिर वे एक रीडायरेक्ट जारी करते हैं, जो HTTP 302 की प्रतिक्रिया और हेडर में लक्ष्य URL है।

यह प्रत्यक्ष पुनर्निर्देशन महत्वपूर्ण है। यदि आप फ़ाइलों का उपयोग करते हैं या पहले HTML लोड करते हैं और फिर रीडायरेक्ट करते हैं, तो ब्राउज़र इतिहास में टाइनीउल को जोड़ देगा, जो कि वह नहीं चाहता है। इसके अलावा, जिस साइट को रीडायरेक्ट किया जाता है, वह रेफ़रर (वह साइट जिसे आप मूल रूप से आते हैं) साइट के रूप में देख रहे हैं, क्योंकि साइट पर टाइनीउल लिंक चालू है (यानी, ट्विटर डॉट कॉम, आपकी अपनी साइट, जहां भी लिंक है)। यह सिर्फ उतना ही महत्वपूर्ण है, ताकि साइट के मालिक देख सकें कि लोग कहां से आ रहे हैं। यदि कोई पृष्ठ उस रीडायरेक्ट को लोड करता है, तो भी यह काम नहीं करेगा।

पुनश्च: पुनर्निर्देशित अधिक प्रकार के होते हैं। HTTP 301 का अर्थ है: स्थायी रूप से पुनर्निर्देशित करना। यदि ऐसा होता है, तो ब्राउज़र अब बिट.इन या टिनीउल साइट का अनुरोध नहीं करेगा और वे साइटें हिट्स को गिनना चाहती हैं। यही कारण है कि HTTP 302 का उपयोग किया जाता है, जो एक अस्थायी रीडायरेक्ट है। ब्राउज़र हर बार फिर से TinyUrl.com या bit.ly से पूछेगा, जो आपके लिए हिट की गिनती करना संभव बनाता है (कुछ छोटे यूआरएल सेवाएं यह पेशकश करती हैं)।


2
वास्तव में मुझे लगता है, Bit.ly 302 के बजाय HTTP 301 का उपयोग करता है (आखिरी बार मैंने सुना था)
केनी कैसन

1
चूँकि bit.ly आपको बदलने नहीं देगा जहाँ उनका एक URL इंगित करता है, 301 समझ में आता है। बिट.ली संस्करण को याद करने और उसे रीचेक करने की आवश्यकता नहीं है।
जोस्ट शूउर

11
@ केनी कैसन / @ जोस्ट शूउर: यह वास्तव में HTTP 301 है जिसका उपयोग टाइमस्टैम्प के साथ किया जाता है। यह एक में बदल जाता Movedनहीं Moved Permanently। यह एक सूक्ष्म अंतर है। टाइमस्टैम्प को जोड़कर, ब्राउज़र मानता है कि यह जांचना चाहिए कि क्या संसाधन बदल गया है या नहीं जब यह समय समाप्त हुआ। अन्य, जैसे .gd, एक सामान्य का उपयोग करता है 301 Moved Permanentlyऔर ब्राउज़र को फिर से जांच (लेकिन अक्सर होगा) की आवश्यकता नहीं होती है। अंत में, url4.eu जैसी सेवाएं बिल्कुल भी पुनर्निर्देशित नहीं होती हैं, लेकिन पहले आपको एक विज्ञापन दिखाती हैं। 301 सेवाओं के साथ अभी भी अद्वितीय आगंतुकों की गणना कर सकते हैं , लेकिन सभी हिट नहीं।
हाबिल

6
उदाहरण बिटली URL अब एक वास्तविक है और वास्तव में इस प्रश्न पर वापस भेज देता है ;-) जानकारी पृष्ठ के लिए bitly.com/duSk8wK+ देखें ।
रोनाल्ड

1
@ कोस्टा: क्लिक गणना के कई तरीके हैं, यह संभव है कि यह आपके नेटवर्क कार्ड आईडी का ट्रैक रखता है, जो ट्रैकिंग का एक तरीका है कि क्या एक ही कंप्यूटर से अनुरोध आता है। उस आईडी को नकली या बदलना संभव है, यह मूर्खतापूर्ण नहीं है। इसके अलावा, यह संभव है कि यह तृतीय-पक्ष कुकीज़ को ट्रैक या उपयोग करता है जो पहले और एक ही उपयोगकर्ता के लिए अलग-अलग ब्राउज़रों पर सेट किए गए हैं, जिन्हें आप सभी सत्र डेटा को साफ़ करके और एक अनाम ब्राउज़र का उपयोग करके देख सकते हैं।
हाबिल

110

दूसरों ने उत्तर दिया है कि पुनर्निर्देश कैसे काम करते हैं लेकिन आपको यह भी पता होना चाहिए कि वे अपने छोटे से पेशाब को कैसे उत्पन्न करते हैं। आपने गलती से सुना होगा कि वे छोटे URL के लिए उस अद्वितीय कोड को बनाने के लिए URL का हैश बनाते हैं। यह ज्यादातर मामलों में गलत है, वे हैशिंग एल्गोरिथ्म का उपयोग नहीं कर रहे हैं (जहां आप संभावित रूप से टकराव हो सकते हैं)।

ज्यादातर लोकप्रिय URL की छोटी-छोटी सेवाएँ केवल URL के डेटाबेस में ID लेती हैं और फिर इसे बेस 36 [a-z0-9] (केस असंवेदनशील) या बेस 62 (केस सेंसिटिव) में बदल देती हैं।

एक TinyURL डेटाबेस तालिका का एक सरल उदाहरण:

ID       URL                           VisitCount
 1       www.google.com                        26
 2       www.stackoverflow.com               2048
 3       www.reddit.com                        64
...
 20103   www.digg.com                         201
 20104   www.4chan.com                         20

वेब फ़्रेमवर्क जो लचीली रूटिंग की अनुमति देता है, आने वाले URL को वास्तव में आसान (रूबी, ASP.NET MVC, आदि) से निपटने देता है।

तो, अपने वेबसर्वर पर आपके पास एक मार्ग कार्रवाई हो सकती है जो कि लगती है (छद्म कोड):

Route: www.mytinyurl.com/{UrlID}
Route Action: RouteURL(UrlID);

आपके सर्वर के लिए आने वाले किसी भी अनुरोध को रूट करता है, जिसमें आपके डोमेन www.mytinyurl.com के बाद कोई भी पाठ आपके संबंधित विधि, रूटुरल के लिए है। यह उस पाठ की आपूर्ति करता है जो आपके URL में फ़ॉरवर्ड स्लैश के बाद उस विधि से किया जाता है।

तो, आपको अनुरोध करता हूं: www.mytinyurl.com/fif

"पंद्रह" तब आपकी विधि, रूटुरल (स्ट्रिंग UrlID) को पारित कर दिया जाएगा। रूटुरल फिर "दस" को अपने बेस 10 समकक्ष, 20103 में बदल देगा, और एक डेटाबेस अनुरोध आईडी 2010 2010 (इस मामले में, www.digg.com) के तहत जो भी URL संग्रहीत किया जाता है, उसे पुनर्निर्देशित किया जाएगा। आप सही URL पर रीडायरेक्ट करने से पहले Digg के लिए विज़िट की संख्या एक-एक करके बढ़ा देंगे।

यह वास्तव में सरल उदाहरण है लेकिन आपको सामान्य विचार प्राप्त करने में सक्षम होना चाहिए।


12
अच्छी व्याख्या के लिए धन्यवाद। तो क्या होता है जब कोई पहले से मौजूद लंबे URL के लिए छोटा URL बनाने की कोशिश करता है? क्या वे डेटाबेस पर एक पूर्ण पाठ खोज करते हैं? मुझे ऐसा नहीं लगता है क्योंकि इसमें बहुत अधिक समय लगेगा। हैश या मैसेज डाइजेस्ट आधारित दृष्टिकोण अधिक व्यावहारिक लगता है।
पीयूष कांसल

@PiyushKansal आप O(1)डुप्लिकेट खोजने के लिए लुकअप करने के लिए आंतरिक रूप से हैश का उपयोग कर सकते हैं ; और फिर उसके लिए मौजूदा छोटे URL को रूट करें, या नया जनरेट करने का विकल्प चुन सकते हैं। जहां तक ​​मैं बता सकता हूं, goo.glउसी यूआरएल के लिए छोटे यूआरएल का पुन: उपयोग करता है; इस पृष्ठ के लिए आपकी ओर से इस कोशिश: क्या आप इस प्राप्त >> goo.gl/8gVb8X?
किंग्स

वे url मापदंडों को कैसे संभालते हैं? उदाहरण के लिए www.digg.com?filter=123
रोनेन

7

@A Salcedo उत्तर के विस्तार के रूप में:

कुछ url शोर्टिंग सर्विसेस (Tinyarro.ws) यूनिकोड (UTF-8) का उपयोग करके शॉर्ट यूरल में वर्णों को एनकोड करने के लिए चरम पर जाते हैं - जो अतिरिक्त प्रतीक जोड़ने से पहले अधिक मात्रा में वेबसाइटों की अनुमति देता है। चूंकि UTF-8 के अधिकांश उपयोग के लिए स्वीकार किए जाते हैं ( (IRI) RFC 3987 अधिकांश ब्राउज़रों द्वारा संभाला जाता है ) जो 62प्रति प्रतीक साइटों से ~ तक धमाके करता है 1,112,064

परिप्रेक्ष्य में रखने के लिए, 2 प्रतीकों ( 1,112,064*1,112,064) के साथ 1.2366863e + 12 साइटों को एन्कोड किया जा सकता है - नवंबर 2009 में, छोटे लिंक bit.lyको 2.1अरब बार एक्सेस किया गया था ( उस समय के आसपास, bit.ly और TinyURL सबसे व्यापक रूप से उपयोग की जाने वाली URL- छोटी सेवाएं थीं। ) जो कि ~ 2 गुना से ~ 600 गुना कम हो सकता है, इसलिए सभी यूआरएल को छोटा करने वाली सेवाओं के अस्तित्व की पूरी अवधि के लिए यह तीसरा प्रतीक जोड़ने तक न्यूनतम 20 साल तक चलना चाहिए।


5

सरल शब्दों में, URL शॉर्टनर वर्णों के एक छोटे और धीमे क्रम में चरित्र (मूल, लंबे भद्दा url) का एक मनमाना लंबा अनुक्रम मैप करता है। यह हैशिंग के अलावा और कुछ नहीं है, जिसका उपयोग आमतौर पर लुकअप टेबल, हैशपैप, md5 हैश के लिए क्रिप्टोग्राफ़िक सामग्री आदि बनाने के लिए किया जाता है।

URL-Shortening प्रक्रिया को समझने के लिए मैंने GitHub पर एक डेमो प्रोजेक्ट बनाया है और एक ब्लॉग पोस्ट भी। इसका संदर्भ लें और मुझे बताएं कि क्या यह मददगार था।

ब्लॉग पोस्ट: URL छोटा करना

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.