लोग URL s, URI s और URN के बारे में बात करते हैं जैसे कि वे अलग-अलग चीजें हैं, लेकिन वे नग्न आंखों के समान दिखते हैं।
उनके बीच अंतर करने योग्य अंतर क्या हैं?
( URIs ( URLs ) )
लोग URL s, URI s और URN के बारे में बात करते हैं जैसे कि वे अलग-अलग चीजें हैं, लेकिन वे नग्न आंखों के समान दिखते हैं।
उनके बीच अंतर करने योग्य अंतर क्या हैं?
( URIs ( URLs ) )
जवाबों:
से RFC 3986 :
एक यूआरआई को एक लोकेटर, एक नाम या दोनों के रूप में वर्गीकृत किया जा सकता है। "यूनिफ़ॉर्म रिसोर्स लोकेटर" (URL) शब्द यूआरआई के सबसेट को संदर्भित करता है, जो एक संसाधन की पहचान करने के अलावा, इसके प्राथमिक एक्सेस तंत्र (जैसे, इसके नेटवर्क "स्थान") का वर्णन करके संसाधन का पता लगाने का साधन प्रदान करता है। "यूनिफ़ॉर्म रिसोर्स नेम" (URN) शब्द का उपयोग "कलश" योजना [RFC2141] के तहत दोनों URI को संदर्भित करने के लिए ऐतिहासिक रूप से किया गया है , जो कि विश्व स्तर पर अद्वितीय और लगातार बने रहने के लिए आवश्यक हैं, जब संसाधन मौजूद नहीं रहता है या अनुपलब्ध हो जाता है, और नाम के गुणों के साथ किसी अन्य URI के लिए।
तो सभी URL URI हैं (वास्तव में काफी नहीं - नीचे देखें), और सभी URN URI हैं - लेकिन URN और URL अलग-अलग हैं, इसलिए आप यह नहीं कह सकते हैं कि सभी URI URL हैं।
संपादित करें: मैंने पहले सोचा था कि सभी URL मान्य URI हैं, लेकिन टिप्पणियों के अनुसार:
नहीं "किए गए सभी URL यूआरआई हैं।" यह RFC की व्याख्या पर निर्भर करता है। उदाहरण के लिए जावा में यूआरआई पार्सर पसंद नहीं करता है
[
या]
ऐसा इसलिए है क्योंकि कल्पना कहती है "नहीं करना चाहिए" और "नहीं" होगा।
ताकि पानी दुर्भाग्य से आगे बढ़े, दुर्भाग्य से।
यदि आपने रोजर पाटे के उत्तर को पहले से नहीं पढ़ा है , तो मैं आपको ऐसा करने की सलाह दूंगा ।
[
या ]
ऐसा इसलिए है क्योंकि कल्पना कहती है "नहीं करना चाहिए" और "नहीं" होगा।
java.net.URI
डॉक ही कहते हैं, "हर यूआरएल यूआरआई है, संक्षेप में बात कर रहा, लेकिन हर यूआरआई एक यूआरएल है।" और java.net.URL
आईपी पते पर होस्ट नामों को हल करके यूआरएल की समानता की जाँच करने जैसा अजीब सामान करता है (जो पहले स्थान पर आरएफसी 3986 सेकंड 6 के साथ बाधाओं पर लगता है, और डब्ल्यू वर्चुअल होस्ट्स को तोड़ता है)। मुझे लगता है कि इसका मतलब है कि जावा मानक लाइब्रेरी में कुछ असंगत वर्ग व्यवहार है।
URI की पहचान और URL का पता लगाना ; हालाँकि, लोकेटर भी पहचानकर्ता हैं , इसलिए प्रत्येक URL एक URI भी है, लेकिन URI हैं जो URL नहीं हैं।
यह मेरा नाम है, जो एक पहचानकर्ता है। यह एक यूआरआई की तरह है, लेकिन एक यूआरएल नहीं हो सकता है, क्योंकि यह आपको बताता है कि मेरे स्थान के बारे में कुछ नहीं है या मुझसे कैसे संपर्क करें। इस मामले में अकेले यूएसए में कम से कम 5 अन्य लोगों की पहचान करना भी होता है।
यह एक लोकेटर है, जो उस भौतिक स्थान के लिए एक पहचानकर्ता है। यह एक URL और URI (चूंकि सभी URL URI हैं) दोनों की तरह है, और मुझे अप्रत्यक्ष रूप से "निवासी .." के रूप में भी पहचानता है । इस मामले में यह मुझे विशिष्ट रूप से पहचानता है, लेकिन अगर मुझे एक रूममेट मिलता है तो यह बदल जाएगा।
मैं "जैसे" कहता हूं क्योंकि ये उदाहरण आवश्यक वाक्यविन्यास का पालन नहीं करते हैं।
से विकिपीडिया :
कंप्यूटिंग में, एक यूनिफ़ॉर्म रिसोर्स लोकेटर (URL) यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) का एक सबसेट है जो निर्दिष्ट करता है कि कोई चिन्हित संसाधन कहाँ उपलब्ध है और इसे पुनः प्राप्त करने के लिए तंत्र। लोकप्रिय उपयोग और कई तकनीकी दस्तावेजों और मौखिक चर्चाओं में, इसे अक्सर गलत तरीके से यूआरआई के पर्याय के रूप में उपयोग किया जाता है , ... [जोर दें]
इस सामान्य भ्रम के कारण, कई उत्पाद और प्रलेखन गलत तरीके से एक शब्द का उपयोग दूसरे के बजाय करते हैं, अपने स्वयं के भेद को निर्दिष्ट करते हैं, या उन्हें समान रूप से उपयोग करते हैं।
मेरा नाम, रोजर पाट, एक URN (यूनिफ़ॉर्म रिसोर्स नाम) की तरह हो सकता है , सिवाय इसके कि वे बहुत अधिक विनियमित और अंतरिक्ष और समय दोनों में अद्वितीय होने का इरादा रखते हैं ।
क्योंकि मैं वर्तमान में अन्य लोगों के साथ इस नाम को साझा करता हूं, यह विश्व स्तर पर अद्वितीय नहीं है और यूआरएन के रूप में उपयुक्त नहीं होगा। हालाँकि, भले ही किसी अन्य परिवार ने इस नाम का इस्तेमाल नहीं किया हो, मेरा नाम मेरे नाना के नाम पर रखा गया है, इसलिए यह अभी भी समय के साथ अद्वितीय नहीं होगा। और यहां तक कि अगर यह मामला नहीं था, तो मेरे वंशज के नामकरण की संभावना के बाद मुझे यह एक URN के रूप में अनुपयुक्त बना दिया।
यूआरएन इस कठोर विशिष्टता अवरोध में URL से भिन्न होते हैं, भले ही वे दोनों यूआरआई के वाक्यविन्यास को साझा करते हैं।
URNs are different from URLs in this rigid uniqueness constraint
क्या इसका मतलब यह है कि URL विशिष्ट रूप से किसी स्थान की पहचान नहीं करते हैं?
यूआरआई संख्याओं, अक्षरों और प्रतीकों की एक छोटी स्ट्रिंग का उपयोग करके दस्तावेजों की पहचान करने के लिए एक मानक है। वे RFC 3986 द्वारा परिभाषित किए गए हैं - यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI): जेनेरिक सिंटैक्स । URL, URN और URCs सभी प्रकार के URI हैं।
अपने स्थान से एक संसाधन लाने के बारे में जानकारी शामिल है। उदाहरण के लिए:
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: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
।
HTML के लिए W3 कल्पना कहती है कि href
एक एंकर टैग में केवल URL ही नहीं बल्कि URI भी हो सकता है। आपको एक URN में सक्षम होना चाहिए जैसे कि <a href="urn:isbn:0451450523">
। आपका ब्राउज़र तब उस URN को एक URL पर हल करेगा और आपके लिए पुस्तक डाउनलोड करेगा।
ऐसा नहीं है कि मुझे पता है, लेकिन आधुनिक वेब ब्राउज़र डेटा यूआरआई योजना को लागू करते हैं।
नहीं। रिश्तेदार और पूर्ण URL दोनों URL (और URI) हैं।
नहीं, क्वेरी पैरामीटर के साथ और बिना दोनों URL URL (और URI) हैं।
सं। दोनों खंडों के साथ और बिना खंड पहचानकर्ता यूआरएल (और यूआरआई) हैं।
URL को URI का एक सबसे बड़ा उपसमूह माना जाता है। यदि कोई पार्सर URL में वर्ण की अनुमति देता है, लेकिन URI में नहीं, तो पार्सर में एक बग है। चश्मा बहुत विस्तार में जाते हैं कि कौन से वर्ण URL और URI के कुछ हिस्सों में अनुमत हैं। कुछ वर्णों को केवल URL के कुछ हिस्सों में अनुमति दी जा सकती है, लेकिन अकेले वर्ण URL और URI के बीच अंतर नहीं हैं।
हाँ। W3C ने महसूस किया कि इस बारे में एक टन भ्रम है। उन्होंने एक यूआरआई स्पष्टीकरण दस्तावेज जारी किया, जिसमें कहा गया है कि अब यूआरआई और यूआरआई का एक दूसरे का उपयोग करना ठीक है (मतलब एनआरआई)। यह URI को URL, URN और URC जैसे विभिन्न प्रकारों में सख्ती से सेगमेंट करने के लिए उपयोगी नहीं है।
URN की परिभाषा अब मेरे द्वारा बताए गए की तुलना में शिथिल है। यूआरआई पर नवीनतम आरएफसी का कहना है कि किसी भी यूआरआई अब एक URN (चाहे वह साथ शुरू होता है की परवाह किए बिना किया जा सकता है urn:
लंबे समय के रूप के रूप में यह है) "एक नाम के गुणों।" वह है: यह तब भी विश्व स्तर पर अद्वितीय और लगातार है जब संसाधन मौजूद है या अनुपलब्ध है। एक उदाहरण: HTML में प्रयुक्त URIs जैसे कि http://www.w3.org/TR/html4/strict.dtd
। यह URI HTML4 संक्रमणकालीन सिद्धांत का नाम देना जारी रखेगा भले ही w3.org वेबसाइट पर पृष्ठ हटा दिया गया हो।
file://
पर उपसर्ग नहीं लगाते हैं तब तक फ़ाइल पथ URL या URI नहीं होता है। हालांकि ब्राउज़र आमतौर पर गैर-URL स्वरूपित फ़ाइल पथों को संभालते हैं। मोज़िला फ़ाइल URL के लिए अपने परीक्षण मामलों को प्रकाशित करता है ।
mailto:user@example.com
एक URL के रूप में उल्लेख किया है, लेकिन नीचे एक अन्य उत्तर यह एक URN है? कौन सा सही है? क्या यह URN और URL दोनों है?
सारांश में: एक यूआरआई पहचानता है, एक URL पहचानता है और उसका पता लगाता है।
शेक्सपियर के नाटक रोमियो और जूलियट के एक विशिष्ट संस्करण पर विचार करें , जिसमें से आपके घर के नेटवर्क पर एक डिजिटल कॉपी है।
आप पाठ की पहचान कर सकते हैं urn:isbn:0-486-27557-4
।
यह एक URI होगा, लेकिन विशेष रूप से एक URN * क्योंकि यह पाठ का नाम देता है ।
आप पाठ को भी पहचान सकते हैं file://hostname/sharename/RomeoAndJuliet.pdf
।
यह भी एक URI होगा, लेकिन विशेष रूप से एक URL क्योंकि यह पाठ का पता लगाता है ।
* यूनिफ़ॉर्म रिसोर्स नेम
(ध्यान दें कि मेरा उदाहरण विकिपीडिया से लिया गया है )
ISBN 0486275574
पाठ का नाम भी है और इस प्रकार एक URN के रूप में अर्हता प्राप्त की। मैं एक ऐसा प्रारूप चुनता हूं जिस पर मुझे विश्वास था कि वह पाठकों के लिए अधिक परिचित होगा।
ये कुछ बहुत अच्छी तरह से लिखे गए लेकिन लंबे-लंबे उत्तर हैं। यहाँ तक अंतर है जहाँ तक CodeIgniter का संबंध है :
URL - http://example.com/some/page.html
URI - /some/page.html
सीधे शब्दों में कहें, URL किसी भी संसाधन को कहीं भी इंडेंट करने का पूरा तरीका है और इसमें अलग-अलग प्रोटोकॉल जैसे FTP, HTTP, SCP, आदि हो सकते हैं।
यूआरआई वर्तमान डोमेन पर एक संसाधन है, इसलिए इसे खोजने के लिए कम जानकारी की आवश्यकता है।
प्रत्येक उदाहरण में कि CodeIgniter URL या URI शब्द का उपयोग करता है, यह वह अंतर है जिसके बारे में वे बात कर रहे हैं, हालांकि वेब की भव्य-योजना में, यह 100% सही नहीं है।
/some/page.html
यूआरआई नहीं है। यह एक "सापेक्ष-रेफ" है, जो एक प्रकार का "यूआरआई-संदर्भ" है। एक आधार यूआरआई संदर्भ के साथ संयुक्त, यह एक यूआरआई के लिए हल किया जा सकता है, लेकिन स्वयं एक यूआरआई नहीं है। RFC 3986 की धारा 4.1 देखें । CodeIgniter की शायद गलत शब्दों का उपयोग करना और जिसे बाहर बुलाया जाना चाहिए; Q (जैसा कि वर्तमान में संपादित किया गया है) CodeIgniter- विशिष्ट के रूप में तैयार नहीं है।
सबसे पहले अपने दिमाग को भ्रम से बाहर निकालें और इसे सरल बनाएं और आप समझ जाएंगे।
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
पहले से ही पोस्ट किए गए उत्तरों के लिए एक छोटा सा अतिरिक्त, यहां सिद्धांत को सारांशित करने के लिए वेन का आरेख है (प्रतीक जोशी की सुंदर व्याख्या से ):
और एक उदाहरण (Prateek की वेबसाइट से भी):
#posts
टुकड़ा पहचानकर्ता URL का हिस्सा हो सकता है
यह सबसे भ्रामक और संभवतः अप्रासंगिक विषयों में से एक है जो मैंने एक वेब पेशेवर के रूप में सामना किया है।
जैसा कि मैं इसे समझता हूं, एक URI किसी स्वीकृत प्रारूप का अनुसरण करते हुए किसी चीज़ का विवरण है, जो किसी चीज़ और उसके स्थान के विशिष्ट नाम (पहचान) दोनों को परिभाषित कर सकता है।
दो मूल उपसमुच्चय हैं - URL, जो स्थान को परिभाषित करते हैं (विशेषकर एक ब्राउज़र जो एक वेबपेज देखने की कोशिश कर रहा है) और URN, जो किसी चीज़ के अनूठे नाम को परिभाषित करते हैं।
मैं URNs को GUID के समान मानता हूं। वे केवल चीजों के लिए अद्वितीय नाम प्रदान करने के लिए एक मानकीकृत पद्धति हैं। जैसा कि कंपनी के नाम का उपयोग करने वाले नामस्थान घोषणा में - ऐसा नहीं है कि पाठ की उस पंक्ति के अनुरूप करने के लिए सर्वर पर कहीं एक संसाधन बैठा है - यह केवल विशिष्ट रूप से कुछ की पहचान करता है।
मैं URI शब्द से पूरी तरह से बचने और केवल URL या URN के संदर्भ में चीजों पर चर्चा करने के लिए उपयुक्त हूं, क्योंकि यह बहुत भ्रम पैदा करता है। जो सवाल हमें लोगों के लिए जवाब देने की कोशिश करनी चाहिए, वह इतना शब्दार्थ नहीं है, लेकिन यह कैसे पहचाना जाए कि शर्तों का सामना करते समय उनमें कोई व्यावहारिक अंतर है या नहीं, जो प्रोग्रामिंग स्थिति के दृष्टिकोण को बदल देगा। उदाहरण के लिए, अगर कोई मुझे बातचीत में सही करता है और कहता है, "ओह, यह एक URL नहीं है यह एक URI है" मुझे पता है कि वे इससे भरे हुए हैं। यदि कोई कहता है कि "हम संसाधन को परिभाषित करने के लिए एक URN का उपयोग कर रहे हैं" तो मुझे यह समझने की अधिक संभावना है कि हम केवल इसे विशिष्ट रूप से नाम दे रहे हैं, इसे सर्वर पर पता लगाने के लिए नहीं।
अगर मैं बेस ऑफ हूं - कृपया मुझे बताएं!
redirect_url
इसके बजाय Google API का उपयोग किया जाता है redirect_uri
, तो क्या कोई वास्तव में परवाह करेगा?
पहचान = स्थान के साथ नाम
हर यूआरएल ( यू niform आर esource एल ocator) यूआरआई (है यू niform आर esource मैं dentifier), संक्षेप में बात कर रहा है, लेकिन हर यूआरआइ एक URL नहीं है। वहाँ यूआरआई का एक और उपश्रेणी URN (है यू niform आर esource एन ए एम इ) है, जो एक नामित संसाधन है, लेकिन उन्हें पता लगाने के लिए कैसे, इन्हें मेल करें, जैसे समाचार निर्दिष्ट नहीं करते, आईएसबीएन यूआरआई है। स्रोत
URN:
urn:[namespace identifier]:[namespace specific string]
arn:partition:service:region:account-id:resource
यूआरएल:
[scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
सादृश्य:
किसी व्यक्ति तक पहुंचने के लिए: ड्राइविंग (अन्य एसएमएस, ईमेल, फोन) प्रोटोकॉल, पता (होस्टनाम अन्य फोन-नंबर, ईमेलड) और व्यक्ति का नाम (एक रिश्तेदार पथ के साथ ऑब्जेक्ट नाम)।
URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
URL, URI (जिसमें URN भी होते हैं) का एक सबसेट है।
मूल रूप से, एक यूआरआई एक सामान्य पहचानकर्ता है, जहां एक URL एक स्थान निर्दिष्ट करता है और एक URN एक नाम निर्दिष्ट करता है।
[
और ]
लेकिन एक URI नहीं।
एक अन्य उदाहरण जब मैं यूआरआई के बारे में सोचना पसंद करता हूं, तो यह एक्सएमएल दस्तावेज़ की एक्सएमएलएन विशेषता है:
<rootElement xmlns:myPrefix="com.mycompany.mynode">
<myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>
इस स्थिति में com.mycompany.mynode एक URI होगा जो विशिष्ट रूप से उन सभी तत्वों के लिए "myPrefix" नामस्थान की पहचान करता है जो इसे मेरे XML दस्तावेज़ में उपयोग करते हैं। यह एक URL नहीं है क्योंकि इसका उपयोग केवल पहचान करने के लिए किया जाता है, प्रति से कुछ का पता लगाने के लिए नहीं।
URI और URL के बीच स्पष्ट रूप से अंतर करने में कठिनाइयों के कारण, जहां तक मुझे याद है कि W3C को URI और URL ( http://www.w3.org/Addressing/ ) के बीच कोई अंतर नहीं पड़ता है ।
वे एक ही बात कर रहे हैं । एक यूआरआई एक यूआरएल का सामान्यीकरण है। मूल रूप से, यूआरआई को यूआरएल (पते) और यूआरएन (नाम) में विभाजित करने की योजना बनाई गई थी, लेकिन तब एक यूआरएल और यूआरआई के बीच बहुत कम अंतर था और एचटीआरआई और यूआरआई को नामस्थान के रूप में उपयोग किया जाता था, हालांकि वे वास्तव में किसी भी संसाधन का पता नहीं लगाते थे।
यूआरआई, यूआरएल, यूआरएन
जैसा कि ऊपर की छवि इंगित करती है, यहां खेलने के तीन अलग-अलग घटक हैं। जब इन जैसे मामलों पर चर्चा की जाती है, तो आमतौर पर स्रोत पर जाना सबसे अच्छा होता है, इसलिए यहां टिम बर्नर्स-ली, एट से एक अंश है। अल। में RFC 3986: यूनिफ़ॉर्म रिसोर्स पहचानकर्ता (URI): जेनेरिक सिंटेक्स:
यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) वर्णों का एक कॉम्पैक्ट अनुक्रम है जो एक अमूर्त या भौतिक संसाधन की पहचान करता है।
एक यूआरआई को एक लोकेटर, एक नाम या दोनों के रूप में वर्गीकृत किया जा सकता है। "यूनिफ़ॉर्म रिसोर्स लोकेटर" (URL) शब्द यूआरआई के सबसेट को संदर्भित करता है, जो एक संसाधन की पहचान करने के अलावा, इसके प्राथमिक एक्सेस तंत्र (जैसे, इसके नेटवर्क "स्थान") का वर्णन करके संसाधन का पता लगाने का एक साधन प्रदान करता है।
URI URL और URN के सुपर क्लास की तरह है। विकिपीडिया में RFC के सही सेट के लिंक के साथ उनके बारे में एक अच्छा लेख है ।
विकिपीडिया आपको यहाँ दी गई सभी जानकारी देगा। Http://en.wikipedia.org/wiki/URI से उद्धरण :
एक URL एक यूआरआई है, जो एक संसाधन की पहचान करने के अलावा, अपने प्राथमिक पहुंच तंत्र या नेटवर्क "स्थान" का वर्णन करके संसाधन का प्रतिनिधित्व करने या प्राप्त करने का साधन प्रदान करता है।
यूआरएल
एक URL URI का एक विशेषज्ञता है जो एक विशिष्ट संसाधन के नेटवर्क स्थान को परिभाषित करता है। एक URN के विपरीत, URL परिभाषित करता है कि संसाधन कैसे प्राप्त किया जा सकता है। http://example.com
आदि के रूप में हम हर दिन URL का उपयोग करते हैं, लेकिन URL में HTTP URL होना आवश्यक नहीं है, यह ftp://example.com
आदि भी हो सकता है।
यूआरआई
एक यूआरआई किसी संसाधन की पहचान या तो स्थान या नाम या दोनों से करता है। अधिक बार नहीं, हम में से अधिकांश यूआरआई का उपयोग करते हैं जो एक संसाधन के लिए स्थान को परिभाषित करता है। तथ्य यह है कि एक यूआरआई नाम और स्थान दोनों के आधार पर संसाधनों की पहचान कर सकता है, जिससे मेरी राय में बहुत भ्रम पैदा हो सकता है। एक यूआरआई में दो विशेषज्ञ हैं जिन्हें URL और URN के नाम से जाना जाता है।
URL और URI के बीच अंतर
एक यूआरआई कुछ संसाधन के लिए एक पहचानकर्ता है, लेकिन एक URL आपको उस संसाधन को प्राप्त करने के लिए विशिष्ट जानकारी देता है। URI एक URL है और जैसा कि एक टिप्पणीकार ने बताया है, अब अनुप्रयोगों का वर्णन करते समय URL का उपयोग करना गलत माना जाता है। आमतौर पर, यदि URL किसी संसाधन के स्थान और नाम दोनों का वर्णन करता है, तो उपयोग करने के लिए शब्द URI है। चूंकि यह आम तौर पर हम में से ज्यादातर का सामना होता है, इसलिए यूआरआई सही शब्द है।
RFC 3986 के अनुसार , URI निम्नलिखित टुकड़ों में शामिल हैं:
scheme://authority/path?query
URI एक सर्वर ( प्राधिकरण ) पर एक संसाधन ( पथ ) या एप्लिकेशन ( क्वेरी ) तक पहुंचने के लिए प्रोटोकॉल का वर्णन करता है ।
सभी URL URI हैं, और सभी URN URI हैं, लेकिन सभी URI URL नहीं हैं।
कृपया अधिक जानकारी के लिए देखें:
एक यूआरआई किसी संसाधन की पहचान या तो स्थान या नाम या दोनों से करता है। अधिक बार नहीं, हम में से अधिकांश यूआरआई का उपयोग करते हैं जो एक संसाधन के लिए स्थान को परिभाषित करता है। तथ्य यह है कि एक यूआरआई नाम और स्थान दोनों के आधार पर संसाधनों की पहचान कर सकता है, जिससे मेरी राय में बहुत भ्रम पैदा हो सकता है। एक यूआरआई में दो विशेषज्ञ हैं जिन्हें URL और URN के नाम से जाना जाता है।
एक URL URI का एक विशेषज्ञता है जो एक विशिष्ट संसाधन के नेटवर्क स्थान को परिभाषित करता है। एक URN के विपरीत, URL परिभाषित करता है कि संसाधन कैसे प्राप्त किया जा सकता है। हम हर दिन के रूप में URL का उपयोग करते हैं http://stackoverflow.com , आदि , लेकिन एक URL के लिए HTTP URL होना आवश्यक नहीं है, यह हो सकता है ftp://example.com
, आदि।
हालाँकि 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
यह कुछ भ्रम का कारण हो सकता है।
इस दस्तावेज़ को देखें । विशेष रूप से,
एक URL एक प्रकार का URI है जो अपने प्राथमिक अभिगम तंत्र (जैसे, इसका नेटवर्क "स्थान") के प्रतिनिधित्व के माध्यम से एक संसाधन की पहचान करता है, इसके बजाय कुछ अन्य विशेषताओं के द्वारा हो सकता है।
यह वास्तव में एक अत्यंत स्पष्ट शब्द नहीं है।
पदों के माध्यम से पढ़ने के बाद, मुझे कुछ बहुत ही प्रासंगिक टिप्पणियां मिलीं। संक्षेप में, 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 है।
यहाँ मेरा सरलीकरण है:
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 के रूप में संदर्भित कर सकते हैं ... आप किसी भी तरह से सही होंगे (कम से कम वैसे भी समय कम करें) ।)
मैं उसी चीज के बारे में सोच रहा था और मैंने यह पाया है: http://docs.kohanaphp.com/helpers/url ।
आप url::current()
विधि का उपयोग करके एक स्पष्ट उदाहरण देख सकते हैं । यदि आपके पास यह URL है : http://example.com/kohana/index.php/welcome/home.html?query=string
तो उपयोग करने url:current()
से आपको URI मिलता है , जो प्रलेखन के अनुसार है: स्वागत है / घर
यूआरआई वेब पर संसाधनों की पहचान करने की आवश्यकता के बारे में, और अन्य इंटरनेट संसाधनों जैसे इलेक्ट्रॉनिक मेलबॉक्स एक समान और सुसंगत तरीके से आए । तो, एक नए प्रकार के विजेट को पेश कर सकता है : विजेट संसाधनों की पहचान करने के लिए यूआरआई या टेली का उपयोग करें : यूआरआई के पास वेब लिंक होने के कारण टेलीफोन कॉल करने का कारण बनता है।
कुछ यूआरआई एक संसाधन का पता लगाने के लिए जानकारी प्रदान करते हैं (जैसे कि डीएनएस होस्ट नाम और उस मशीन पर एक पथ), जबकि कुछ का उपयोग अन्य संसाधन नामों के रूप में किया जाता है। यूआरएल पहचानकर्ताओं के लिए आरक्षित है रिसोर्स लोकेटर हैं , जैसे 'http' यूआरएल सहित http://stackoverflow.com जो मेजबान पर दिए गए पथ पर वेब पेज को दिखाता है,। एक अन्य उदाहरण 'mailto' URL है, जैसे mailto: fred@mail.org , जो दिए गए पते पर मेलबॉक्स की पहचान करता है।
यूआरएन यूआरआई होते हैं जिन्हें स्थानीय लोगों के बजाय शुद्ध संसाधन नामों के रूप में उपयोग किया जाता है । उदाहरण के लिए, URI: mid: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com एक URN है जो अपने 'संदेश-आईडी' क्षेत्र में इस ईमेल संदेश की पहचान करता है। URI उस संदेश को किसी अन्य ईमेल संदेश से अलग करने का कार्य करता है। लेकिन यह स्वयं किसी भी स्टोर में संदेश का पता प्रदान नहीं करता है।
इसका उत्तर देने के लिए मैं एक उत्तर पर झुकूंगा जिसे मैंने दूसरे प्रश्न में संशोधित किया है । 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
समझाने में आसान:
निम्नलिखित मान लेते हैं
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 का सबसेट है लेकिन इसके विपरीत नहीं है।
एक यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर (URI) एक ऐसा अक्षर है जो इंटरनेट रिसोर्स की पहचान करता है।
सबसे आम यूआरआई यूनिफ़ॉर्म रिसोर्स लोकेटर (URL) है जो इंटरनेट डोमेन पते की पहचान करता है। एक और, यूआरआई का इतना सामान्य प्रकार यूनिवर्सल रिसोर्स नेम (यूआरएन) नहीं है।
मुझे मिला:
एक समान संसाधन पहचानकर्ता (URI) एक बड़ी तस्वीर का प्रतिनिधित्व करता है। आप यूआरआई को विभाजित कर सकते हैं / यूआरआई को लोकेटर के रूप में वर्गीकृत किया जा सकता है (यूनिफॉर्म रिसोर्स लोकेटर- यूआरएल), या नाम (यूनिफॉर्म रिसोर्स नेम-यूआरएन), या दोनों के रूप में। इसलिए मूल रूप से, एक URN एक व्यक्ति के नाम की तरह कार्य करता है और URL उस व्यक्ति के पते को दर्शाता है। इतनी लंबी कहानी संक्षेप में, एक यूआरएन एक आइटम की पहचान को परिभाषित करता है, जबकि URL इसे खोजने के लिए विधि प्रदान करता है, अंत में इन दोनों अवधारणाओं को इनकैप्सुलेट करना है URI
सबसे अच्छा (तकनीकी) सारांश imo यह एक है
IRI, URI, URL, URN और जन मार्टिन कील से उनके मतभेद :
सिमेंटिक वेब से निपटने वाला हर व्यक्ति आईआरआई , यूआरआई , यूआरएल और यूआरएन के संदर्भ में बार-बार आता है । फिर भी, मैं अक्सर देखता हूं कि उनके सटीक अर्थ के बारे में कुछ भ्रम है। और, निश्चित रूप से, अन्य लोगों ने ध्यान दिया कि (जैसे RFC3305 देखें या Google पर खोजें)। सच कहूं तो, मैं भी खुद को शुरुआत में उलझन में था। लेकिन वास्तव में यह मुद्दा उतना जटिल नहीं है। आइए उल्लेखित शब्दों की परिभाषाओं पर एक नज़र डालें कि अंतर क्या हैं:
एक समान संसाधन पहचानकर्ता , एक अमूर्त या भौतिक संसाधन की पहचान करने वाले पात्रों का एक कॉम्पैक्ट अनुक्रम है। कुछ आरक्षित वर्णों को छोड़कर वर्णों का समूह US-ASCII तक सीमित है। अनुमत वर्णों के सेट के बाहर वर्णों को प्रतिशत-एन्कोडिंग का उपयोग करके दर्शाया जा सकता है। एक यूआरआई को लोकेटर, नाम या दोनों के रूप में इस्तेमाल किया जा सकता है। यदि एक यूआरआई एक लोकेटर है, तो यह एक संसाधन की प्राथमिक पहुंच तंत्र का वर्णन करता है। यदि कोई यूआरआई एक नाम है, तो यह एक अद्वितीय नाम देकर एक संसाधन की पहचान करता है। यूआरआई के वाक्यविन्यास और शब्दार्थ के सटीक विनिर्देश उस उपयोग की गई योजना पर निर्भर करते हैं जो पहले बृहदान्त्र से पहले वर्णों द्वारा परिभाषित होती है। [RFC3986]
एक यूनिफ़ॉर्म रिसोर्स नाम योजना कलश में URI लगातार, अलग-अलग स्थानों, संसाधन पहचानकर्ता के रूप में काम करने का इरादा है। ऐतिहासिक रूप से, यह शब्द किसी भी यूआरआई के लिए भी संदर्भित है। [RFC3986] एक URN में एक Namespace Identifier (NID) और एक Namespace Specific String (NSS) होते हैं: urn :: NSS का वाक्यविन्यास और शब्दार्थ प्रत्येक AID के लिए विशिष्ट है। पंजीकृत एनआईडी के अलावा, कई और एनआईडी मौजूद हैं, जो आधिकारिक पंजीकरण प्रक्रिया से नहीं गुजरे। [RFC2141]
एक यूनिफ़ॉर्म रिसोर्स लोकेटर एक यूआरआई है, जो एक संसाधन की पहचान करने के अलावा, अपने प्राथमिक अभिगम तंत्र [RFC3986] का वर्णन करके संसाधन का पता लगाने का एक साधन प्रदान करता है। चूंकि योजनाओं के एक सेट के माध्यम से URL की कोई सटीक परिभाषा नहीं है, "URL एक उपयोगी लेकिन अनौपचारिक अवधारणा है", आमतौर पर यूआरआई के एक उपसमूह का उल्लेख होता है जिसमें URNs [RFC3305] शामिल नहीं होते हैं।
एक अंतर्राष्ट्रीयकृत संसाधन पहचानकर्ता को 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 द्वारा नामित मौजूदा संस्थाओं का उल्लेख कर सकते हैं। हालाँकि, हमें इस तरह के पहचानकर्ताओं को नया बनाने से बचना चाहिए।