URI, URL और URN में क्या अंतर है?


4361

लोग URL s, URI s और URN के बारे में बात करते हैं जैसे कि वे अलग-अलग चीजें हैं, लेकिन वे नग्न आंखों के समान दिखते हैं।

उनके बीच अंतर करने योग्य अंतर क्या हैं?


157
URL URI से अधिक विशिष्ट है।
mk12

30
Tor वेबमास्टर्स इस सवाल पर लेते हैं: URI और URL के बीच क्या अंतर है
hippietrail

161
मिनी वेन आरेख:( URIs ( URLs ) )
icc97

29
URI बनाम URL के बारे में अभी भी बहुत भ्रम है, यहां तक ​​कि उन लोगों द्वारा भी जिन्होंने इस प्रश्न का उत्तर देने का प्रयास किया था। यूआरआई नहीं हैं, जो यूआरआई के उदाहरण हैं, जो यूआरएल नहीं हैं, और जो यूआरएल और यूआरआई हैं, वे उदाहरण हैं ।
डेनिस

30
कैथी: "क्या आपका कुत्ता है?" बॉब: "उसे कैनाइन कहना अधिक सही होगा।" कैथी: "नहीं, वह एक कुत्ता है। आप, सर, एक पेडेंट हैं।"
योजिम्बो

जवाबों:


1745

से RFC 3986 :

एक यूआरआई को एक लोकेटर, एक नाम या दोनों के रूप में वर्गीकृत किया जा सकता है। "यूनिफ़ॉर्म रिसोर्स लोकेटर" (URL) शब्द यूआरआई के सबसेट को संदर्भित करता है, जो एक संसाधन की पहचान करने के अलावा, इसके प्राथमिक एक्सेस तंत्र (जैसे, इसके नेटवर्क "स्थान") का वर्णन करके संसाधन का पता लगाने का साधन प्रदान करता है। "यूनिफ़ॉर्म रिसोर्स नेम" (URN) शब्द का उपयोग "कलश" योजना [RFC2141] के तहत दोनों URI को संदर्भित करने के लिए ऐतिहासिक रूप से किया गया है , जो कि विश्व स्तर पर अद्वितीय और लगातार बने रहने के लिए आवश्यक हैं, जब संसाधन मौजूद नहीं रहता है या अनुपलब्ध हो जाता है, और नाम के गुणों के साथ किसी अन्य URI के लिए।

तो सभी URL URI हैं (वास्तव में काफी नहीं - नीचे देखें), और सभी URN URI हैं - लेकिन URN और URL अलग-अलग हैं, इसलिए आप यह नहीं कह सकते हैं कि सभी URI URL हैं।

संपादित करें: मैंने पहले सोचा था कि सभी URL मान्य URI हैं, लेकिन टिप्पणियों के अनुसार:

नहीं "किए गए सभी URL यूआरआई हैं।" यह RFC की व्याख्या पर निर्भर करता है। उदाहरण के लिए जावा में यूआरआई पार्सर पसंद नहीं करता है [या ]ऐसा इसलिए है क्योंकि कल्पना कहती है "नहीं करना चाहिए" और "नहीं" होगा।

ताकि पानी दुर्भाग्य से आगे बढ़े, दुर्भाग्य से।

यदि आपने रोजर पाटे के उत्तर को पहले से नहीं पढ़ा है , तो मैं आपको ऐसा करने की सलाह दूंगा


15
कलश के साथ केवल यूआरआई: योजना यूआरएन हैं। एक यूआरआई एक क्लासिक यूआरएल, एक यूआरएन, या सिर्फ एक यूआरआई हो सकता है जो "कलश:" से शुरू नहीं होता है और एक संसाधन के स्थान को संदर्भित नहीं करता है।
मार्क सिडेड

18
नहीं " किए गए सभी URL यूआरआई हैं "। यह RFC की व्याख्या पर निर्भर करता है। उदाहरण के लिए जावा में यूआरआई पार्सर पसंद नहीं करता है [या ]ऐसा इसलिए है क्योंकि कल्पना कहती है "नहीं करना चाहिए" और "नहीं" होगा।
एडम जेंट

5
@ एडडमेंट: आरएफसी 3986 1.1.3: "एक यूआरआई को एक लोकेटर, एक नाम या दोनों के रूप में वर्गीकृत किया जा सकता है।" इसलिए, यदि URL एक विशेष प्रकार का URI है, तो इसका अर्थ है कि प्रत्येक URL एक URI है। यह नहीं है?
ह्यूबर्ट

14
@ एडडमेंट: यह एक जावा कार्यान्वयन क्वर्क की तरह लगता है, और आदर्श नहीं है। java.net.URIडॉक ही कहते हैं, "हर यूआरएल यूआरआई है, संक्षेप में बात कर रहा, लेकिन हर यूआरआई एक यूआरएल है।" और java.net.URLआईपी ​​पते पर होस्ट नामों को हल करके यूआरएल की समानता की जाँच करने जैसा अजीब सामान करता है (जो पहले स्थान पर आरएफसी 3986 सेकंड 6 के साथ बाधाओं पर लगता है, और डब्ल्यू वर्चुअल होस्ट्स को तोड़ता है)। मुझे लगता है कि इसका मतलब है कि जावा मानक लाइब्रेरी में कुछ असंगत वर्ग व्यवहार है।
एंड्रयू जंके

3
@JonSkeet शायद मानकों बनाम कार्यान्वयन के बीच अंतर करने की आवश्यकता है? उदाहरण के लिए, "RFCs के अनुसार औपचारिक रूप से, सभी URL URI हैं। (RFC अंश।) लेकिन मौजूदा कार्यान्वयन संभवत: इंटरऑपरेबिलिटी के लिए सटीक रूप से कल्पना से मेल नहीं खा सकते हैं, और उन URL का उपयोग कर सकते हैं जो RFCFC के अनुसार मान्य नहीं हैं। और क्योंकि यह एक जटिल क्षेत्र है। , कुछ लोग और दस्तावेज़ RFC द्वारा निर्दिष्ट चीज़ से कुछ अलग करने के लिए 'URL' का उपयोग कर सकते हैं। " सॉर्ट करें कि अधिकांश ईमेल सत्यापन रूटीन RFC परिभाषाओं से कैसे मेल खाते हैं।
एंड्रयू जांके

3839

URI की पहचान और URL का पता लगाना ; हालाँकि, लोकेटर भी पहचानकर्ता हैं , इसलिए प्रत्येक URL एक URI भी है, लेकिन URI हैं जो URL नहीं हैं।

उदाहरण

  • रोजर पाटे

यह मेरा नाम है, जो एक पहचानकर्ता है। यह एक यूआरआई की तरह है, लेकिन एक यूआरएल नहीं हो सकता है, क्योंकि यह आपको बताता है कि मेरे स्थान के बारे में कुछ नहीं है या मुझसे कैसे संपर्क करें। इस मामले में अकेले यूएसए में कम से कम 5 अन्य लोगों की पहचान करना भी होता है।

  • 4914 वेस्ट बे स्ट्रीट, नासाउ, बहामास

यह एक लोकेटर है, जो उस भौतिक स्थान के लिए एक पहचानकर्ता है। यह एक URL और URI (चूंकि सभी URL URI हैं) दोनों की तरह है, और मुझे अप्रत्यक्ष रूप से "निवासी .." के रूप में भी पहचानता है । इस मामले में यह मुझे विशिष्ट रूप से पहचानता है, लेकिन अगर मुझे एक रूममेट मिलता है तो यह बदल जाएगा।

मैं "जैसे" कहता हूं क्योंकि ये उदाहरण आवश्यक वाक्यविन्यास का पालन नहीं करते हैं।

लोकप्रिय भ्रम

से विकिपीडिया :

कंप्यूटिंग में, एक यूनिफ़ॉर्म रिसोर्स लोकेटर (URL) यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) का एक सबसेट है जो निर्दिष्ट करता है कि कोई चिन्हित संसाधन कहाँ उपलब्ध है और इसे पुनः प्राप्त करने के लिए तंत्र। लोकप्रिय उपयोग और कई तकनीकी दस्तावेजों और मौखिक चर्चाओं में, इसे अक्सर गलत तरीके से यूआरआई के पर्याय के रूप में उपयोग किया जाता है , ... [जोर दें]

इस सामान्य भ्रम के कारण, कई उत्पाद और प्रलेखन गलत तरीके से एक शब्द का उपयोग दूसरे के बजाय करते हैं, अपने स्वयं के भेद को निर्दिष्ट करते हैं, या उन्हें समान रूप से उपयोग करते हैं।

urns

मेरा नाम, रोजर पाट, एक URN (यूनिफ़ॉर्म रिसोर्स नाम) की तरह हो सकता है , सिवाय इसके कि वे बहुत अधिक विनियमित और अंतरिक्ष और समय दोनों में अद्वितीय होने का इरादा रखते हैं ।

क्योंकि मैं वर्तमान में अन्य लोगों के साथ इस नाम को साझा करता हूं, यह विश्व स्तर पर अद्वितीय नहीं है और यूआरएन के रूप में उपयुक्त नहीं होगा। हालाँकि, भले ही किसी अन्य परिवार ने इस नाम का इस्तेमाल नहीं किया हो, मेरा नाम मेरे नाना के नाम पर रखा गया है, इसलिए यह अभी भी समय के साथ अद्वितीय नहीं होगा। और यहां तक कि अगर यह मामला नहीं था, तो मेरे वंशज के नामकरण की संभावना के बाद मुझे यह एक URN के रूप में अनुपयुक्त बना दिया।

यूआरएन इस कठोर विशिष्टता अवरोध में URL से भिन्न होते हैं, भले ही वे दोनों यूआरआई के वाक्यविन्यास को साझा करते हैं।


3
URNs are different from URLs in this rigid uniqueness constraintक्या इसका मतलब यह है कि URL विशिष्ट रूप से किसी स्थान की पहचान नहीं करते हैं?
यूजीन

30
रोजर का जवाब अच्छी व्यावहारिक सलाह देता है। आधिकारिक उत्तर के लिए मैं W3C पर जाता हूं जिसने 2001 में " यूआरआई, URL और URNs: ​​स्पष्टीकरण और सिफारिशें " प्रकाशित कीं । संक्षेप में, W3C का कहना है कि समकालीन दृष्टिकोण यह है कि सब कुछ एक यूआरआई है। URL एक अनौपचारिक अवधारणा है, औपचारिक अवधारणा नहीं। और भ्रम एक "शास्त्रीय दृष्टिकोण" पर वापस आता है, जिसने यूआरआई की श्रेणियों (जिनमें से URL एक श्रेणी थी) के बीच सख्ती से अंतर करने की कोशिश की।
netjeff

5
.. एक समान संसाधन लोकेटर (URL) .. निर्दिष्ट करता है कि एक पहचाना गया संसाधन कहां उपलब्ध है और इसे पुनर्प्राप्त करने के लिए तंत्रतो दूसरे शब्दों में, "रिश्तेदार" URL जैसी कोई चीज नहीं है?
अर्ने

9
क्या "Earth128: एडवर्ड-डी-लीउ / 6000000000569063853" (एकाधिक मल्टीवर्स पर अद्वितीय) एक URN, एक URL या एक URI?
एडेलवाटर सेप

6
@edelwater: मैं एक uri thats लगता है, क्योंकि यह केवल आपकी पहचान करती है, लेकिन कैसे, आप को पाने के लिए कुछ भी नहीं है की जब तक आप मतलब earth128 अंतर-ग्रहीय यात्रा के :) कुछ माध्यम है कहते हैं
user20358

668

URI - यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर

यूआरआई संख्याओं, अक्षरों और प्रतीकों की एक छोटी स्ट्रिंग का उपयोग करके दस्तावेजों की पहचान करने के लिए एक मानक है। वे RFC 3986 द्वारा परिभाषित किए गए हैं - यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI): जेनेरिक सिंटैक्स । URL, URN और URCs सभी प्रकार के URI हैं।

URL - यूनिफ़ॉर्म रिसोर्स लोकेटर

अपने स्थान से एक संसाधन लाने के बारे में जानकारी शामिल है। उदाहरण के लिए:

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:user@example.com
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (एक रिश्तेदार URL, दूसरे URL के संदर्भ में केवल उपयोगी)

URL हमेशा एक प्रोटोकॉल ( http) के साथ शुरू होते हैं और आमतौर पर इसमें नेटवर्क होस्ट नाम ( example.com) और अक्सर दस्तावेज़ पथ ( /foo/mypage.html) जैसी जानकारी होती है । URL में क्वेरी पैरामीटर और टुकड़ा पहचानकर्ता हो सकते हैं।

URN - यूनिफ़ॉर्म रिसोर्स नाम

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

  • urn:isbn:0451450523 अपने ISBN नंबर द्वारा पुस्तक की पहचान करना।
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 विश्व स्तर पर विशिष्ट पहचानकर्ता
  • urn:publishing:book - एक XML नाम स्थान जो दस्तावेज़ को एक प्रकार की पुस्तक के रूप में पहचानता है।

यूआरएन विचारों और अवधारणाओं की पहचान कर सकता है। वे दस्तावेजों की पहचान करने तक ही सीमित नहीं हैं। जब कोई URN किसी दस्तावेज़ का प्रतिनिधित्व करता है, तो उसे "रिज़ॉल्वर" द्वारा URL में अनुवादित किया जा सकता है। फिर दस्तावेज़ को URL से डाउनलोड किया जा सकता है।

यूआरसी - वर्दी संसाधन प्रशस्ति पत्र

किसी दस्तावेज़ के बारे में मेटा डेटा को इंगित करता है बजाय दस्तावेज़ को ही। URC का एक उदाहरण वह है जो किसी पृष्ठ के HTML स्रोत कोड की तरह इंगित करता है:view-source:http://example.com/

डेटा यूआरआई

इंटरनेट पर इसका पता लगाने या इसका नामकरण करने के बजाय, डेटा को सीधे यूआरआई में रखा जा सकता है। एक उदाहरण होगा data:,Hello%20World


बार बार पूछे जाने वाले प्रश्न

मैंने सुना है कि मुझे अब URL नहीं कहना चाहिए, क्यों?

HTML के लिए W3 कल्पना कहती है कि hrefएक एंकर टैग में केवल URL ही नहीं बल्कि URI भी हो सकता है। आपको एक URN में सक्षम होना चाहिए जैसे कि <a href="urn:isbn:0451450523">। आपका ब्राउज़र तब उस URN को एक URL पर हल करेगा और आपके लिए पुस्तक डाउनलोड करेगा।

क्या कोई ब्राउज़र वास्तव में जानता है कि URN द्वारा दस्तावेज़ कैसे लाए जाएं?

ऐसा नहीं है कि मुझे पता है, लेकिन आधुनिक वेब ब्राउज़र डेटा यूआरआई योजना को लागू करते हैं।

क्या URL और URI के बीच कोई अंतर है या नहीं, यह सापेक्ष है या निरपेक्ष है?

नहीं। रिश्तेदार और पूर्ण URL दोनों URL (और URI) हैं।

क्या URL और URI के बीच कोई अंतर है या नहीं, इससे क्वेरी पैरामीटर हैं?

नहीं, क्वेरी पैरामीटर के साथ और बिना दोनों URL URL (और URI) हैं।

क्या URL और URI के बीच कोई अंतर है, क्या इसका कोई खंड पहचानकर्ता है?

सं। दोनों खंडों के साथ और बिना खंड पहचानकर्ता यूआरएल (और यूआरआई) हैं।

क्या URL और URI के बीच कोई अंतर है कि पात्रों की अनुमति क्या है?

URL को URI का एक सबसे बड़ा उपसमूह माना जाता है। यदि कोई पार्सर URL में वर्ण की अनुमति देता है, लेकिन URI में नहीं, तो पार्सर में एक बग है। चश्मा बहुत विस्तार में जाते हैं कि कौन से वर्ण URL और URI के कुछ हिस्सों में अनुमत हैं। कुछ वर्णों को केवल URL के कुछ हिस्सों में अनुमति दी जा सकती है, लेकिन अकेले वर्ण URL और URI के बीच अंतर नहीं हैं।

लेकिन क्या W3C अब यह नहीं कहता है कि URL और URI समान हैं?

हाँ। W3C ने महसूस किया कि इस बारे में एक टन भ्रम है। उन्होंने एक यूआरआई स्पष्टीकरण दस्तावेज जारी किया, जिसमें कहा गया है कि अब यूआरआई और यूआरआई का एक दूसरे का उपयोग करना ठीक है (मतलब एनआरआई)। यह URI को URL, URN और URC जैसे विभिन्न प्रकारों में सख्ती से सेगमेंट करने के लिए उपयोगी नहीं है।

क्या एक URI एक URL और एक URN दोनों हो सकता है?

URN की परिभाषा अब मेरे द्वारा बताए गए की तुलना में शिथिल है। यूआरआई पर नवीनतम आरएफसी का कहना है कि किसी भी यूआरआई अब एक URN (चाहे वह साथ शुरू होता है की परवाह किए बिना किया जा सकता है urn:लंबे समय के रूप के रूप में यह है) "एक नाम के गुणों।" वह है: यह तब भी विश्व स्तर पर अद्वितीय और लगातार है जब संसाधन मौजूद है या अनुपलब्ध है। एक उदाहरण: HTML में प्रयुक्त URIs जैसे कि http://www.w3.org/TR/html4/strict.dtd। यह URI HTML4 संक्रमणकालीन सिद्धांत का नाम देना जारी रखेगा भले ही w3.org वेबसाइट पर पृष्ठ हटा दिया गया हो।


URI / URL Venn आरेख


8
क्या "C: \ myfile" एक URI, URL या URN है? या उनमें से कोई भी नहीं।
bvdb

12
जब तक आप उस file://पर उपसर्ग नहीं लगाते हैं तब तक फ़ाइल पथ URL या URI नहीं होता है। हालांकि ब्राउज़र आमतौर पर गैर-URL स्वरूपित फ़ाइल पथों को संभालते हैं। मोज़िला फ़ाइल URL के लिए अपने परीक्षण मामलों को प्रकाशित करता है
स्टीफन ओस्टरमिलर

2
RFC के अनुभाग 1.1 को देखें - "एकरूपता कई लाभ प्रदान करती है। यह विभिन्न प्रकार के संसाधन पहचानकर्ताओं को एक ही संदर्भ में उपयोग करने की अनुमति देती है, तब भी जब उन संसाधनों तक पहुंचने के लिए उपयोग किए जाने वाले तंत्र भिन्न हो सकते हैं। यह आम सिंटैक्टिक कॉन्वेंट की समान अर्थ संबंधी व्याख्या की अनुमति देता है। विभिन्न प्रकार के संसाधन पहचानकर्ताओं के पार ... "
स्टीफन ओस्टरमिलर

आपने mailto:user@example.comएक URL के रूप में उल्लेख किया है, लेकिन नीचे एक अन्य उत्तर यह एक URN है? कौन सा सही है? क्या यह URN और URL दोनों है?
user31782

4
यह उत्तर समझने में बहुत आसान है। मैं URL और URN के वास्तविक उदाहरण की स्पष्ट तस्वीरें देख सकता हूं। और किसी को भी इस बारे में और अधिक पढ़ने के लिए ... danielmiessler.com/study/url-uri
vee

253

सारांश में: एक यूआरआई पहचानता है, एक URL पहचानता है और उसका पता लगाता है।

शेक्सपियर के नाटक रोमियो और जूलियट के एक विशिष्ट संस्करण पर विचार करें , जिसमें से आपके घर के नेटवर्क पर एक डिजिटल कॉपी है।

आप पाठ की पहचान कर सकते हैं urn:isbn:0-486-27557-4
यह एक URI होगा, लेकिन विशेष रूप से एक URN * क्योंकि यह पाठ का नाम देता है

आप पाठ को भी पहचान सकते हैं file://hostname/sharename/RomeoAndJuliet.pdf
यह भी एक URI होगा, लेकिन विशेष रूप से एक URL क्योंकि यह पाठ का पता लगाता है

* यूनिफ़ॉर्म रिसोर्स नेम

(ध्यान दें कि मेरा उदाहरण विकिपीडिया से लिया गया है )


6
यह वास्तविक URN (यह देखने के लिए कि यह URL की तुलना कैसे करता है) को नोट करने में मददगार है: urn: isbn: 0-486-27557-4
माइकल ब्रूयर-डेविस

2
@ मिचेल - यह मेरी समझ है कि ISBN 0486275574पाठ का नाम भी है और इस प्रकार एक URN के रूप में अर्हता प्राप्त की। मैं एक ऐसा प्रारूप चुनता हूं जिस पर मुझे विश्वास था कि वह पाठकों के लिए अधिक परिचित होगा।
ग्रेग

2
तो क्या यह कहना सही होगा कि किसी फाइल का हैश (जैसे SHA1) उस फाइल के लिए एक URN हो सकता है?
जोहंसिम

@johnsimer ऐसा मत सोचो, क्योंकि आपके पास एक ही कंप्यूटर पर एक फ़ाइल की एक प्रति हो सकती है, जिसके परिणामस्वरूप एक ही हैश होगा और इसलिए यह अद्वितीय नहीं है।
डेनिस98

141

ये कुछ बहुत अच्छी तरह से लिखे गए लेकिन लंबे-लंबे उत्तर हैं। यहाँ तक अंतर है जहाँ तक CodeIgniter का संबंध है :

URL - http://example.com/some/page.html

URI - /some/page.html

सीधे शब्दों में कहें, URL किसी भी संसाधन को कहीं भी इंडेंट करने का पूरा तरीका है और इसमें अलग-अलग प्रोटोकॉल जैसे FTP, HTTP, SCP, आदि हो सकते हैं।

यूआरआई वर्तमान डोमेन पर एक संसाधन है, इसलिए इसे खोजने के लिए कम जानकारी की आवश्यकता है।

प्रत्येक उदाहरण में कि CodeIgniter URL या URI शब्द का उपयोग करता है, यह वह अंतर है जिसके बारे में वे बात कर रहे हैं, हालांकि वेब की भव्य-योजना में, यह 100% सही नहीं है।


10
यह उत्तर अति-सरल हो सकता है लेकिन उसके प्रश्न के संदर्भ को देखें। यह उसके लिए और अधिक उपयोगी होगा जो XML नामस्थान के बारे में प्रतीक्षा करता है!
फिल स्टर्जन

140
यह उत्तर न केवल गलत है बल्कि सक्रिय रूप से भ्रामक है। दोनों उदाहरण URL हैं। और चूंकि प्रत्येक URL एक URI भी है, इसका मतलब है कि दोनों उदाहरण URI हैं। यूआरआई और यूआरएल के बीच अंतर प्रदर्शित करने के उद्देश्य से, यह पूरी तरह से बेकार है।
जॉर्ग डब्ल्यू मित्तग

12
जहां तक ​​CodeIgniter का संबंध है, यह अंतर है। हर उदाहरण में वे URL या URI शब्द का उपयोग करते हैं यही वह अंतर है जिसके बारे में वे बात कर रहे हैं। इसलिए वेब की भव्य-योजना में, यह 100% सही नहीं है, लेकिन ओपी के प्रश्न (कोडइग्निटर में अंतर) के दायरे में, यह उत्तर पूरी तरह से सही है।
फिल स्टर्जन

12
ये गलत है। @ JörgWMittag ज्यादातर पॉइंट पर है। URL URI हैं, और वे "पूरी तरह से योग्य" हैं; तो इस उत्तर में "URL" दोनों है। लेकिन /some/page.htmlयूआरआई नहीं है। यह एक "सापेक्ष-रेफ" है, जो एक प्रकार का "यूआरआई-संदर्भ" है। एक आधार यूआरआई संदर्भ के साथ संयुक्त, यह एक यूआरआई के लिए हल किया जा सकता है, लेकिन स्वयं एक यूआरआई नहीं है। RFC 3986 की धारा 4.1 देखें । CodeIgniter की शायद गलत शब्दों का उपयोग करना और जिसे बाहर बुलाया जाना चाहिए; Q (जैसा कि वर्तमान में संपादित किया गया है) CodeIgniter- विशिष्ट के रूप में तैयार नहीं है।
एंड्रयू जंके

37
भविष्य के लोगों के लिए जो इन टिप्पणियों को पढ़ते हैं और मैं जितना उलझन में हूं: यह जवाब इस प्रश्न के लिए पोस्ट नहीं किया गया था। इस सवाल का CodeIgniter से कभी कोई लेना-देना नहीं था। एक डुप्लिकेट प्रश्न था जिसमें विशेष रूप से कोडइग्निटर का उल्लेख किया गया था जो बंद था और इसके सभी उत्तर इस प्रश्न पर चले गए थे। यह उत्तर उन लोगों में से एक था जिन्हें पुराने बंद प्रश्न से इस संरक्षित प्रश्न में ले जाया गया था। फिर भी, मेरा यह जवाब भ्रामक है। मैंने इसे नीचा दिखाया है - दूसरों को भी ऐसा ही करना चाहिए, अपने नए घर में, यह गलत है। लेखक को इसे हटाना चाहिए या मर्ज पूर्ववत होना चाहिए।
आर्टऑफवर्फ

92

सबसे पहले अपने दिमाग को भ्रम से बाहर निकालें और इसे सरल बनाएं और आप समझ जाएंगे।

URI => यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर, संसाधन का पूरा पता यानी स्थान, नाम या दोनों की पहचान करता है।

URL => यूनिफ़ॉर्म रिसोर्स लोकेटर संसाधन के स्थान की पहचान करता है।

URN => यूनिफ़ॉर्म रिसोर्स नाम संसाधन के नाम की पहचान करता है

उदाहरण

हमारे पास https://www.google.com/folder/page.html पता है , जहां,

URI (यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर) => https://www.google.com/folder/page.html

URL (यूनिफ़ॉर्म रिसोर्स लोकेटर) => https://www.google.com/

URN (यूनिफ़ॉर्म रिसोर्स नाम) => /folder/page.html

URI => (URL + URN) या URL केवल या URN


66

पहले से ही पोस्ट किए गए उत्तरों के लिए एक छोटा सा अतिरिक्त, यहां सिद्धांत को सारांशित करने के लिए वेन का आरेख है (प्रतीक जोशी की सुंदर व्याख्या से ):

यहां छवि विवरण दर्ज करें

और एक उदाहरण (Prateek की वेबसाइट से भी):

यहां छवि विवरण दर्ज करें


20
मेरा मानना ​​है कि दूसरा दृष्टांत गलत है। विनिर्देशन के अनुसार url.spec.whatwg.org/#url-writing एक URL को किसी सापेक्ष URL या निरपेक्ष URL के रूप में लिखा जाना चाहिए, वैकल्पिक रूप से "#" और एक टुकड़ा। इसलिए, #postsटुकड़ा पहचानकर्ता URL का हिस्सा हो सकता है
ruvim

7
दो दृष्टांत एक दूसरे के विपरीत हैं।
patapouf_ai

53

यह सबसे भ्रामक और संभवतः अप्रासंगिक विषयों में से एक है जो मैंने एक वेब पेशेवर के रूप में सामना किया है।

जैसा कि मैं इसे समझता हूं, एक URI किसी स्वीकृत प्रारूप का अनुसरण करते हुए किसी चीज़ का विवरण है, जो किसी चीज़ और उसके स्थान के विशिष्ट नाम (पहचान) दोनों को परिभाषित कर सकता है।

दो मूल उपसमुच्चय हैं - URL, जो स्थान को परिभाषित करते हैं (विशेषकर एक ब्राउज़र जो एक वेबपेज देखने की कोशिश कर रहा है) और URN, जो किसी चीज़ के अनूठे नाम को परिभाषित करते हैं।

मैं URNs को GUID के समान मानता हूं। वे केवल चीजों के लिए अद्वितीय नाम प्रदान करने के लिए एक मानकीकृत पद्धति हैं। जैसा कि कंपनी के नाम का उपयोग करने वाले नामस्थान घोषणा में - ऐसा नहीं है कि पाठ की उस पंक्ति के अनुरूप करने के लिए सर्वर पर कहीं एक संसाधन बैठा है - यह केवल विशिष्ट रूप से कुछ की पहचान करता है।

मैं URI शब्द से पूरी तरह से बचने और केवल URL या URN के संदर्भ में चीजों पर चर्चा करने के लिए उपयुक्त हूं, क्योंकि यह बहुत भ्रम पैदा करता है। जो सवाल हमें लोगों के लिए जवाब देने की कोशिश करनी चाहिए, वह इतना शब्दार्थ नहीं है, लेकिन यह कैसे पहचाना जाए कि शर्तों का सामना करते समय उनमें कोई व्यावहारिक अंतर है या नहीं, जो प्रोग्रामिंग स्थिति के दृष्टिकोण को बदल देगा। उदाहरण के लिए, अगर कोई मुझे बातचीत में सही करता है और कहता है, "ओह, यह एक URL नहीं है यह एक URI है" मुझे पता है कि वे इससे भरे हुए हैं। यदि कोई कहता है कि "हम संसाधन को परिभाषित करने के लिए एक URN का उपयोग कर रहे हैं" तो मुझे यह समझने की अधिक संभावना है कि हम केवल इसे विशिष्ट रूप से नाम दे रहे हैं, इसे सर्वर पर पता लगाने के लिए नहीं।

अगर मैं बेस ऑफ हूं - कृपया मुझे बताएं!


4
नहीं, मुझे लगता है कि तुम सही हो। यूआरआई बनाम यूआरएल बनाम यूआरएल बनाम यूआरआई-रेफ आदि के शब्दार्थ ज्यादातर डेवलपर्स के लिए बेकार हैं, केवल इसलिए कि यह व्यर्थ (गैर-उत्पादक, निर्णय लेने के लिए नगण्य) बहस को ड्राइव करता है। यदि redirect_urlइसके बजाय Google API का उपयोग किया जाता है redirect_uri, तो क्या कोई वास्तव में परवाह करेगा?

53

पहचान = स्थान के साथ नाम

हर यूआरएल ( यू niform आर esource एल ocator) यूआरआई (है यू niform आर esource मैं dentifier), संक्षेप में बात कर रहा है, लेकिन हर यूआरआइ एक URL नहीं है। वहाँ यूआरआई का एक और उपश्रेणी URN (है यू niform आर esource एन ए एम इ) है, जो एक नामित संसाधन है, लेकिन उन्हें पता लगाने के लिए कैसे, इन्हें मेल करें, जैसे समाचार निर्दिष्ट नहीं करते, आईएसबीएन यूआरआई है। स्रोत

यहां छवि विवरण दर्ज करें

URN:

  • URN प्रारूप: urn:[namespace identifier]:[namespace specific string]
  • कलश: और: अपने लिए खड़े हों।
  • उदाहरण :
    • कलश: UUID: 6e8bc430-9c3a-11d9-9669-0800200c9a66
    • कलश: ISSN: 0167-6423
    • कलश: ISBN: 096139210x
    • अमेज़ॅन संसाधन नाम (ARNs) AWS संसाधनों की विशिष्ट पहचान है।
      • ARN प्रारूप: arn:partition:service:region:account-id:resource

यूआरएल:

  • URL प्रारूप: [scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
  • : // ,? और # खुद के लिए खड़े हो जाओ।
  • योजनाएं हैं https, ftp, gopher, mailto, news, telnet, file, man, info, whatis, ldap ...
  • उदाहरण:

सादृश्य:
किसी व्यक्ति तक पहुंचने के लिए: ड्राइविंग (अन्य एसएमएस, ईमेल, फोन) प्रोटोकॉल, पता (होस्टनाम अन्य फोन-नंबर, ईमेलड) और व्यक्ति का नाम (एक रिश्तेदार पथ के साथ ऑब्जेक्ट नाम)।


लघु वक्रोक्ति: [डोमेन] और [पोर्ट] के बीच एक बृहदान्त्र होना चाहिए। आईई: example.com:1234
रेक्स स्डरर

42

URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL, URI (जिसमें URN भी होते हैं) का एक सबसेट है।

मूल रूप से, एक यूआरआई एक सामान्य पहचानकर्ता है, जहां एक URL एक स्थान निर्दिष्ट करता है और एक URN एक नाम निर्दिष्ट करता है।


1
URL URI का सही उपसमूह नहीं है। आप वैद यूआरएल पात्रों के साथ कर सकते हैं [और ]लेकिन एक URI नहीं।
एडम जेंट

4
वर्ग ब्रैकेट URI या URL में मान्य नहीं हैं। इस प्रश्न को देखें, जिसमें ऐनक के कई संदर्भ हैं: क्या वर्गाकार कोष्ठक URL में अनुमत हैं? । जब वर्ग कोष्ठक या तो दिखाई देते हैं, उन्हें एन्कोड किया जाना चाहिए।
स्टीफन ओस्टरमिलर

35

एक अन्य उदाहरण जब मैं यूआरआई के बारे में सोचना पसंद करता हूं, तो यह एक्सएमएल दस्तावेज़ की एक्सएमएलएन विशेषता है:

<rootElement xmlns:myPrefix="com.mycompany.mynode">
    <myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>

इस स्थिति में com.mycompany.mynode एक URI होगा जो विशिष्ट रूप से उन सभी तत्वों के लिए "myPrefix" नामस्थान की पहचान करता है जो इसे मेरे XML दस्तावेज़ में उपयोग करते हैं। यह एक URL नहीं है क्योंकि इसका उपयोग केवल पहचान करने के लिए किया जाता है, प्रति से कुछ का पता लगाने के लिए नहीं।


28

URI और URL के बीच स्पष्ट रूप से अंतर करने में कठिनाइयों के कारण, जहां तक ​​मुझे याद है कि W3C को URI और URL ( http://www.w3.org/Addressing/ ) के बीच कोई अंतर नहीं पड़ता है ।


हो सकता है कि मैं उस हिस्से से चूक गया हो, लेकिन मुझे URL और URI के बीच के अंतर को दूर करने के लिए प्रदान की गई लिंक में कोई संदर्भ नहीं दिखाई दे रहा है, केवल भ्रम को स्वीकार करना और चश्मा जो गलत तरीके से संदर्भित URL को URI के संदर्भ में अद्यतन करने के लिए अद्यतन किया जाना चाहते हैं।
टिम गौटियर

27

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


मैंने सोचा और कोई दुसरा तरिका होगा। एक URL एक ठोस वस्तु को संदर्भित करता है, और एक URI उस या एक अवधारणा या किसी अन्य चीज को संदर्भित कर सकता है।
क्रिस चारबारुक

4
एक URL एक संसाधन का पता लगाता है और एक प्रकार का URI है, जो एक संसाधन की पहचान करता है।
मार्क सिडेड

यह केवल सच है कि वे एक ही चीज हैं क्योंकि समय के साथ URL की परिभाषा बदल गई है। URL एक विशिष्ट प्रकार का URI हुआ करते थे, लेकिन इस भ्रम के कारण, W3C ने URL को NRI से पुनः परिभाषित किया।
स्टीफन ओस्टरमिलर

25

यूआरआई और यूआरएल

यूआरआई, यूआरएल, यूआरएन

जैसा कि ऊपर की छवि इंगित करती है, यहां खेलने के तीन अलग-अलग घटक हैं। जब इन जैसे मामलों पर चर्चा की जाती है, तो आमतौर पर स्रोत पर जाना सबसे अच्छा होता है, इसलिए यहां टिम बर्नर्स-ली, एट से एक अंश है। अल। में RFC 3986: यूनिफ़ॉर्म रिसोर्स पहचानकर्ता (URI): जेनेरिक सिंटेक्स:

यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) वर्णों का एक कॉम्पैक्ट अनुक्रम है जो एक अमूर्त या भौतिक संसाधन की पहचान करता है।

एक यूआरआई को एक लोकेटर, एक नाम या दोनों के रूप में वर्गीकृत किया जा सकता है। "यूनिफ़ॉर्म रिसोर्स लोकेटर" (URL) शब्द यूआरआई के सबसेट को संदर्भित करता है, जो एक संसाधन की पहचान करने के अलावा, इसके प्राथमिक एक्सेस तंत्र (जैसे, इसके नेटवर्क "स्थान") का वर्णन करके संसाधन का पता लगाने का एक साधन प्रदान करता है।



17

विकिपीडिया आपको यहाँ दी गई सभी जानकारी देगा। Http://en.wikipedia.org/wiki/URI से उद्धरण :

एक URL एक यूआरआई है, जो एक संसाधन की पहचान करने के अलावा, अपने प्राथमिक पहुंच तंत्र या नेटवर्क "स्थान" का वर्णन करके संसाधन का प्रतिनिधित्व करने या प्राप्त करने का साधन प्रदान करता है।


16

यूआरएल

एक URL URI का एक विशेषज्ञता है जो एक विशिष्ट संसाधन के नेटवर्क स्थान को परिभाषित करता है। एक URN के विपरीत, URL परिभाषित करता है कि संसाधन कैसे प्राप्त किया जा सकता है। http://example.comआदि के रूप में हम हर दिन URL का उपयोग करते हैं, लेकिन URL में HTTP URL होना आवश्यक नहीं है, यह ftp://example.comआदि भी हो सकता है।

यूआरआई

एक यूआरआई किसी संसाधन की पहचान या तो स्थान या नाम या दोनों से करता है। अधिक बार नहीं, हम में से अधिकांश यूआरआई का उपयोग करते हैं जो एक संसाधन के लिए स्थान को परिभाषित करता है। तथ्य यह है कि एक यूआरआई नाम और स्थान दोनों के आधार पर संसाधनों की पहचान कर सकता है, जिससे मेरी राय में बहुत भ्रम पैदा हो सकता है। एक यूआरआई में दो विशेषज्ञ हैं जिन्हें URL और URN के नाम से जाना जाता है।

URL और URI के बीच अंतर

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


15

RFC 3986 के अनुसार , URI निम्नलिखित टुकड़ों में शामिल हैं:

scheme://authority/path?query

URI एक सर्वर ( प्राधिकरण ) पर एक संसाधन ( पथ ) या एप्लिकेशन ( क्वेरी ) तक पहुंचने के लिए प्रोटोकॉल का वर्णन करता है ।

यहां छवि विवरण दर्ज करें

सभी URL URI हैं, और सभी URN URI हैं, लेकिन सभी URI URL नहीं हैं।

कृपया अधिक जानकारी के लिए देखें:

विकिपीडिया


3
यह मुझे कुछ भी नहीं सिखाता है जो अन्य उत्तरों से कवर नहीं होता है जो कम से कम 6 साल पुराने हैं, और जो बहुत अधिक पूर्ण हैं और वास्तव में समझाने की कोशिश करते हैं कि यूआरआई को URL से कैसे अलग किया जाए।
ccjmne

2
यह ध्यान रखना महत्वपूर्ण है कि छवि एक वेन आरेख है, भले ही यह एक ठेठ की तरह नहीं दिखता है। मैंने देखा है कि लोग इसे "URL के कुछ हिस्सों" के रूप में व्याख्या करने का प्रयास कर रहे हैं। यह आरेख यह नहीं कहता है कि यूआरआई एक URL से शुरू होता है और एक URN के साथ समाप्त होता है।
स्टीफन ओस्टरमिलर

14

एक यूआरआई किसी संसाधन की पहचान या तो स्थान या नाम या दोनों से करता है। अधिक बार नहीं, हम में से अधिकांश यूआरआई का उपयोग करते हैं जो एक संसाधन के लिए स्थान को परिभाषित करता है। तथ्य यह है कि एक यूआरआई नाम और स्थान दोनों के आधार पर संसाधनों की पहचान कर सकता है, जिससे मेरी राय में बहुत भ्रम पैदा हो सकता है। एक यूआरआई में दो विशेषज्ञ हैं जिन्हें URL और URN के नाम से जाना जाता है।

एक URL URI का एक विशेषज्ञता है जो एक विशिष्ट संसाधन के नेटवर्क स्थान को परिभाषित करता है। एक URN के विपरीत, URL परिभाषित करता है कि संसाधन कैसे प्राप्त किया जा सकता है। हम हर दिन के रूप में URL का उपयोग करते हैं http://stackoverflow.com , आदि , लेकिन एक URL के लिए HTTP URL होना आवश्यक नहीं है, यह हो सकता है ftp://example.com, आदि।


11

हालाँकि URI और URL को कड़ाई से परिभाषित किया गया है, लेकिन कई अन्य चीजों के लिए शर्तों का उपयोग करते हैं, क्योंकि वे इसके लिए परिभाषित हैं।

उदाहरण के लिए अपाचे को लेते हैं। यदि Apex सर्वर से http://example.com/foo का अनुरोध किया जाता है, तो आपके पास निम्नलिखित पर्यावरण चर होंगे:

  • REDIRECT_URL: /foo
  • REQUEST_URI: /foo

Mod_rewrite सक्षम होने के साथ, आपके पास ये चर भी होंगे:

  • REDIRECT_SCRIPT_URL: /foo
  • REDIRECT_SCRIPT_URI: http://example.com/foo
  • SCRIPT_URL: /foo
  • SCRIPT_URI: http://example.com/foo

यह कुछ भ्रम का कारण हो सकता है।


10

इस दस्तावेज़ को देखें । विशेष रूप से,

एक URL एक प्रकार का URI है जो अपने प्राथमिक अभिगम तंत्र (जैसे, इसका नेटवर्क "स्थान") के प्रतिनिधित्व के माध्यम से एक संसाधन की पहचान करता है, इसके बजाय कुछ अन्य विशेषताओं के द्वारा हो सकता है।

यह वास्तव में एक अत्यंत स्पष्ट शब्द नहीं है।


10

पदों के माध्यम से पढ़ने के बाद, मुझे कुछ बहुत ही प्रासंगिक टिप्पणियां मिलीं। संक्षेप में, URL और URI परिभाषाओं के बीच का भ्रम उस हिस्से पर आधारित है, जिस पर परिभाषा निर्भर करती है, जिस पर और सॉफ़्टवेयर विकास में URI शब्द का अनौपचारिक उपयोग भी किया जाता है।

परिभाषा के अनुसार URL URI [RFC2396] का सबसेट है। URI में URN और URL होते हैं। URI और URL दोनों के अपने-अपने विशिष्ट सिंटैक्स होते हैं, जो उन पर URI या URL होने की स्थिति में भिन्न होते हैं। URN एक संसाधन को विशिष्ट रूप से पहचानने के लिए है जबकि URL एक संसाधन का पता लगाने के लिए है। ध्यान दें कि एक संसाधन में एक से अधिक URL हो सकते हैं लेकिन केवल एक ही URN हो सकता है। [RFC2611]

वेब डेवलपर्स और प्रोग्रामर के रूप में हम लगभग हमेशा URL और इसलिए URI से चिंतित रहेंगे। अब एक URL को विशेष रूप से सभी भागों योजना के लिए परिभाषित किया गया है: योजना-विशिष्ट-भाग, उदाहरण के लिए https://stackoverflow.com/questions । यह एक URL है और यह एक URI भी है। अब पृष्ठ में एम्बेडेड रिश्तेदार लिंक पर विचार करें जैसे ../index.html। यह अब परिभाषा के अनुसार URL नहीं है। यह अभी भी एक "URI-संदर्भ" [RFC2396] के रूप में संदर्भित है।

मेरा मानना ​​है कि जब यूआरआई शब्द का उपयोग रिश्तेदार पथों को संदर्भित करने के लिए किया जाता है, तो "यूआरआई-संदर्भ" वास्तव में वही है जो सोचा जा रहा है। इसलिए अनौपचारिक रूप से, सॉफ्टवेयर सिस्टम यूआरआई का इस्तेमाल करते हैं ताकि संबंधित पता और URL को पूर्ण पते के लिए संदर्भित किया जा सके। तो इस अर्थ में, एक सापेक्ष पथ अब URL नहीं है, लेकिन फिर भी URI है।


10

यहाँ मेरा सरलीकरण है:

URN: अद्वितीय संसाधन नाम, अर्थात "क्या" (जैसे कलश: isnn: 1234-5678)। यह अद्वितीय होने के लिए है .. क्योंकि दो अलग-अलग डॉक्स में एक ही कलश नहीं हो सकता है। थोड़ा सा "uuid"

URL: "जहां" इसे खोजने के लिए (जैसे https://google.com/pub?issnid=1234-5678 .. या ftp://somesite.com/doc8.pdf )

URI: एक URN या एक URL हो सकता है। यह फज़ी परिभाषा W3C और IETF द्वारा निर्मित RFC 3986 के लिए धन्यवाद है।

यूआरआई की परिभाषा वर्षों में बदल गई है, इसलिए यह अधिकांश लोगों को भ्रमित होने के लिए समझ में आता है। हालाँकि, अब आप इस तथ्य में सांत्वना ले सकते हैं कि आप http://somesite.com/something या तो URL या URI के रूप में संदर्भित कर सकते हैं ... आप किसी भी तरह से सही होंगे (कम से कम वैसे भी समय कम करें) ।)


9

मैं उसी चीज के बारे में सोच रहा था और मैंने यह पाया है: http://docs.kohanaphp.com/helpers/url

आप url::current()विधि का उपयोग करके एक स्पष्ट उदाहरण देख सकते हैं । यदि आपके पास यह URL है : http://example.com/kohana/index.php/welcome/home.html?query=stringतो उपयोग करने url:current()से आपको URI मिलता है , जो प्रलेखन के अनुसार है: स्वागत है / घर


1
यह उत्तर गलत है। एक यूआरआई URL का हिस्सा नहीं है। बल्कि URL एक प्रकार का URI है। इसके अलावा, इस उत्तर में लिंक टूटा हुआ है (और मुझे एक उपयुक्त प्रतिस्थापन नहीं मिल सकता है।)
स्टीफन ओस्टेर्मिलर

8

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

कुछ यूआरआई एक संसाधन का पता लगाने के लिए जानकारी प्रदान करते हैं (जैसे कि डीएनएस होस्ट नाम और उस मशीन पर एक पथ), जबकि कुछ का उपयोग अन्य संसाधन नामों के रूप में किया जाता है। यूआरएल पहचानकर्ताओं के लिए आरक्षित है रिसोर्स लोकेटर हैं , जैसे 'http' यूआरएल सहित http://stackoverflow.com जो मेजबान पर दिए गए पथ पर वेब पेज को दिखाता है,। एक अन्य उदाहरण 'mailto' URL है, जैसे mailto: fred@mail.org , जो दिए गए पते पर मेलबॉक्स की पहचान करता है।

यूआरएन यूआरआई होते हैं जिन्हें स्थानीय लोगों के बजाय शुद्ध संसाधन नामों के रूप में उपयोग किया जाता है । उदाहरण के लिए, URI: mid: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com एक URN है जो अपने 'संदेश-आईडी' क्षेत्र में इस ईमेल संदेश की पहचान करता है। URI उस संदेश को किसी अन्य ईमेल संदेश से अलग करने का कार्य करता है। लेकिन यह स्वयं किसी भी स्टोर में संदेश का पता प्रदान नहीं करता है।


7

इसका उत्तर देने के लिए मैं एक उत्तर पर झुकूंगा जिसे मैंने दूसरे प्रश्न में संशोधित किया है । URI का एक अच्छा उदाहरण है कि आप अमेजन S3 संसाधन की पहचान कैसे करते हैं। चलो ले लो:

s3://www-example-com/index.html [अंजीर। 1]

जिसे मैंने एक कैश्ड कॉपी के रूप में बनाया

http://www.example.com/index.html [अंजीर। 2]

अमेज़ॅन के एस 3-यूएस-वेस्ट -2 डेटासेंटर में।

यहां तक ​​कि अगर StackOverflow मुझे s3:// प्रोटोकॉल योजना के लिए हाइपरलिंक करने की अनुमति देगा , तो यह आपको संसाधन का पता लगाने में कोई भी अच्छा नहीं करेगा । क्योंकि यह एक संसाधन की पहचान करता है , अंजीर। 1 एक वैध यूआरआई है। यह एक वैध यूआरएन भी है, क्योंकि अमेज़ॅन को यह आवश्यक है कि बकेट ( यूआरआई के हिस्से के लिए उनका शब्द ) डेटासिटर पर अद्वितीय हो। यह इसे पता लगाने में मददगार है, लेकिन यह डाटासेंटर को इंगित नहीं करता है। इसलिए यह URL के रूप में काम नहीं करता है।authority

तो, इस मामले में URI, URL और URN कैसे भिन्न हैं?

नोट: RFC 3986 URIs को परिभाषित करता हैscheme://authority/path?query#fragment


6

समझाने में आसान:

निम्नलिखित मान लेते हैं

URI आपका नाम है

आपके साथ संवाद करने के लिए URL आपके नाम के साथ आपका पता है।

  • मेरा नाम लोयोला है

    लोयोला यूआरआई है

  • मेरा पता TN, चेन्नई 600001 है।

TN, चेन्नई 600 001, लोयोला URL है

उम्मीद है आप समझ गए होंगे,

अब एक सटीक उदाहरण देखते हैं

http://www.google.com/fistpage.html

ऊपर आप http://www.google.com/fistpage.html ( URL ) का उपयोग करके firstpage.html ( URI ) नामक पृष्ठ के साथ संवाद कर सकते हैं ।

इसलिए URI URL का सबसेट है लेकिन इसके विपरीत नहीं है।


4
यह उत्तर भ्रामक है। विकिपीडिया के उद्धरण "एक समान संसाधन नाम (URN) एक व्यक्ति के नाम की तरह कार्य करता है, जबकि एक यूनिफ़ॉर्म रिसोर्स लोकेटर (URL) उस व्यक्ति के सड़क पते से मिलता-जुलता है। दूसरे शब्दों में: URN एक आइटम की पहचान को परिभाषित करता है, जबकि URL खोजने के लिए एक विधि प्रदान करता है। यह। " इसके अलावा URN और URL दोनों URI हैं।
वगन Sv

4

एक यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) एक ऐसा अक्षर है जो इंटरनेट रिसोर्स की पहचान करता है।

सबसे आम यूआरआई यूनिफ़ॉर्म रिसोर्स लोकेटर (URL) है जो इंटरनेट डोमेन पते की पहचान करता है। एक और, यूआरआई का इतना सामान्य प्रकार यूनिवर्सल रिसोर्स नेम (यूआरएन) नहीं है।


4

मुझे मिला:


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


2

सबसे अच्छा (तकनीकी) सारांश imo यह एक है

IRI, URI, URL, URN और जन मार्टिन कील से उनके मतभेद :

IRI, URI, URL, URN और उनके अंतर

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

यूआरआई

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

URN

एक यूनिफ़ॉर्म रिसोर्स नाम योजना कलश में URI लगातार, अलग-अलग स्थानों, संसाधन पहचानकर्ता के रूप में काम करने का इरादा है। ऐतिहासिक रूप से, यह शब्द किसी भी यूआरआई के लिए भी संदर्भित है। [RFC3986] एक URN में एक Namespace Identifier (NID) और एक Namespace Specific String (NSS) होते हैं: urn :: NSS का वाक्यविन्यास और शब्दार्थ प्रत्येक AID के लिए विशिष्ट है। पंजीकृत एनआईडी के अलावा, कई और एनआईडी मौजूद हैं, जो आधिकारिक पंजीकरण प्रक्रिया से नहीं गुजरे। [RFC2141]

यूआरएल

एक यूनिफ़ॉर्म रिसोर्स लोकेटर एक यूआरआई है, जो एक संसाधन की पहचान करने के अलावा, अपने प्राथमिक अभिगम तंत्र [RFC3986] का वर्णन करके संसाधन का पता लगाने का एक साधन प्रदान करता है। चूंकि योजनाओं के एक सेट के माध्यम से URL की कोई सटीक परिभाषा नहीं है, "URL एक उपयोगी लेकिन अनौपचारिक अवधारणा है", आमतौर पर यूआरआई के एक उपसमूह का उल्लेख होता है जिसमें URNs [RFC3305] शामिल नहीं होते हैं।

IRI

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

संक्षेप में हम कह सकते हैं:

IRI is a superset of URI (IRI ⊃ URI)
URI is a superset of URL (URI ⊃ URL)
URI is a superset of URN (URI ⊃ URN)
URL and URN are disjoint (URL ∩ URN = ∅)

सिमेंटिक वेब मुद्दों के लिए निष्कर्ष

RDF स्पष्ट रूप से IRI को संस्थाओं के नाम [RFC3987] का उपयोग करने की अनुमति देता है। इसका मतलब है कि हम इकाई नामों में लगभग हर चरित्र का उपयोग कर सकते हैं। दूसरी ओर, हमें अक्सर शुरुआती राज्य सॉफ्टवेयर से निपटना पड़ता है। इस प्रकार, गैर ASCII वर्णों का उपयोग करके समस्याओं में भाग लेने की संभावना नहीं है। इसलिए, मैं संस्थाओं के लिए गैर URI नामों से बचने और http URIs [लिंक्ड-डेटा] का उपयोग करने की सिफारिश करने का सुझाव देता हूं। इसे संक्षेप में रखने के लिए: केवल अपनी संस्थाओं के नाम के लिए URL का उपयोग करें। बेशक, हम एक URN द्वारा नामित मौजूदा संस्थाओं का उल्लेख कर सकते हैं। हालाँकि, हमें इस तरह के पहचानकर्ताओं को नया बनाने से बचना चाहिए।

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