31 Pytanie: Jaka jest różnica między identyfikatorem URI, adresem URL i numerem URN?

pytanie utworzone w Sat, Jul 9, 2016 12:00 AM

Ludzie mówią o URL s, URI i URN s, jakby to były różne rzeczy, ale wyglądają tak samo jak gołym okiem.

Jakie są różnice między nimi?

    
4112
  1. URL jest bardziej specyficzny niż URI.
    2009-12-31 07: 09: 09Z
  2. 2012-12-21 10: 14: 48Z
  3. Mini diagram Venna: ( URIs ( URLs ) )
    2014-11-13 15: 20: 31Z
  4. Nadal wydaje się być wiele zamieszania co do URI a URL, nawet przez tych, którzy próbowali odpowiedzieć na pytanie. Byłoby korzystne dla wszystkich, gdyby zobaczyli praktyczne przykłady adresów URL, które nie są identyfikatorami URI, przykłady identyfikatorów URI, które nie są adresami URL, oraz przykłady, które są adresami URL i URI.
    2015-02-08 18: 43: 00Z
  5. Kathy: "Czy to twój pies?" Bob: „Byłoby lepiej nazywać go psim”. Kathy: „Nie, on jest psem. Ty, panie, jesteś pedantem.”
    2015-07-20 18: 49: 26Z
30 odpowiedzi                              30                         

Z RFC 3986 :

  

Identyfikator URI może być dalej klasyfikowany jako lokalizator, nazwa lub oba. The      termin „Uniform Resource Locator” (URL) odnosi się do podzbioru URI      które, oprócz identyfikacji zasobu, zapewniają środki      lokalizowanie zasobu poprzez opisanie jego podstawowego mechanizmu dostępu      (np. jego „lokalizacja” sieciowa). Termin „Jednolita nazwa zasobu”      (URN) był używany historycznie w odniesieniu do obu URI pod      schemat „urn” [RFC2141] , które muszą pozostać globalnie unikalne      i uporczywe nawet wtedy, gdy zasób przestaje istnieć lub staje się      niedostępne i do każdego innego URI o właściwościach nazwy.

Więc wszystkie adresy URL są URI (właściwie nie całkiem - patrz poniżej), a wszystkie URN są URI - ale URN i adresy URL są różne, więc nie można powiedzieć, że wszystkie URI są adresami URL.

EDYCJA: Wcześniej myślałem, że wszystkie adresy URL są poprawnymi identyfikatorami URI, ale według komentarzy:

  

Nie „wszystkie adresy URL są identyfikatorami URI”. To zależy od interpretacji RFC. Na przykład w Javie parser URI nie lubi [ lub ], a to dlatego, że specyfikacja mówi „nie powinno się”, a nie „nie będzie”.

Więc, niestety, jeszcze bardziej zamazuje wody.

Jeśli nie przeczytałeś jeszcze odpowiedzi Rogera Pate'a , radzę to zrobić.

    
1656
2018-12-28 07: 59: 07Z
  1. Tylko URI z schematem urn: są URN. URI może być klasycznym adresem URL, URN lub po prostu URI, który nie zaczyna się od „urn:” i nie odnosi się do lokalizacji zasobu.
    2008-10-06 21: 38: 57Z
  2. Zauważ, że RFC 2396 już dawno został przestarzały przez RFC 3986 (ale to nie zmienia faktów ...)
    2010-03-11 12: 20: 46Z
  3. Nie " wszystkie adresy URL są URI ". To zależy od interpretacji RFC. Na przykład w Javie parser URI nie lubi [ lub ], a to dlatego, że specyfikacja mówi „nie powinno się”, a nie „nie będzie”.
    2013-05-16 00: 47: 40Z
  4. @ AdamGent: RFC 3986 1.1.3: "URI może być dalej klasyfikowany jako lokalizator, nazwa lub oba." Jeśli więc URL jest specjalnym rodzajem URI, oznacza to, że każdy URL jest URI. Czyż nie?
    2013-06-16 23: 32: 09Z
  5. @ AdamGent: To brzmi jak dziwactwo implementacji Javy, a nie normatywne. Dokument java.net.URI sam mówi „każdy adres URL jest URI, mówiąc abstrakcyjnie, ale nie każdy URI jest adresem URL ”. A java.net.URL robi dziwne rzeczy, takie jak sprawdzanie równości adresów URL przez rozróżnianie nazw hostów na adresy IP (co wydaje się kolidować z RFC 3986 s 6 w pierwszej kolejności i łamie wirtualne hosty). Myślę, że to oznacza, że ​​standardowa biblioteka Java ma pewne niespójne zachowanie klas.
    2014-03-11 05: 00: 37Z

identyfikator URI s i URL s zlokalizowane ; jednak lokalizatory są również identyfikatorami , więc każdy adres URL jest również identyfikatorem URI, ale istnieją URI, które nie są adresami URL.

Przykłady

  • Roger Pate

To jest moje imię, które jest identyfikatorem. Jest jak URI, ale nie może być adresem URL, ponieważ nic nie mówi o mojej lokalizacji ani o tym, jak się ze mną skontaktować. W tym przypadku zdarza się również zidentyfikować co najmniej 5 innych osób w samych Stanach Zjednoczonych.

  • 4914 West Bay Street, Nassau, Bahamy

To jest lokalizator, który jest identyfikatorem dla tej fizycznej lokalizacji. Jest to zarówno adres URL, jak i identyfikator URI (ponieważ wszystkie adresy URL są identyfikatorami URI), a także identyfikuje mnie pośrednio jako „mieszkaniec ..”. W tym przypadku jednoznacznie mnie identyfikuje, ale to się zmieni, jeśli dostanę współlokatora.

Mówię „jak”, ponieważ te przykłady nie spełniają wymaganej składni.

Popularne zamieszanie

Z Wikipedii :

  

W komputerach Uniform Resource Locator (URL) jest podzbiorem Uniform Resource Identifier (URI), który określa, gdzie zidentyfikowany zasób jest dostępny i mechanizm jego pobierania. W popularnym użyciu oraz w wielu dokumentach technicznych i dyskusjach słownych często jest on nieprawidłowo używany jako synonim URI , ... [podkreślenie moje]

Z powodu tego powszechnego zamieszania wiele produktów i dokumentacji nieprawidłowo używa jednego terminu zamiast drugiego, przypisuje własne rozróżnienie lub używa ich synonimicznie.

URN

Moje imię, Roger Pate, może wyglądać jak URN (Jednolita nazwa zasobu), z wyjątkiem te są 3725

2017-05-23 12: 10: 45Z
  1. URNs are different from URLs in this rigid uniqueness constraint Czy to oznacza, że ​​adresy URL nie identyfikują jednoznacznie lokalizacji?
    2013-07-11 19: 30: 36Z
  2. Odpowiedź Rogera zapewnia dobre pragmatyczne porady. Aby uzyskać oficjalną odpowiedź, odwiedzam W3C, który opublikował „ URI, adresy URL i URN: wyjaśnienia i Rekomendacje ”w 2001 roku. W skrócie W3C twierdzi, że współczesny pogląd jest takina wszystkim jest URI. URL jest pojęciem nieformalnym, a nie formalnym. I zamieszanie sięga „klasycznego widoku”, który próbował sztywno rozróżniać kategorie URI (którego URL był jedną kategorią).
    2013-07-26 23: 23: 24Z
  3. .. Uniform Resource Locator (URL) .. określa, gdzie jest dostępny zidentyfikowany zasób i mechanizm pobierania go . Innymi słowy, nie ma czegoś takiego jak „względny” adres URL?
    2014-04-28 07: 51: 38Z
  4. Czy "earth128: Edward-de-Leau /6000000000569063853" (unikatowy dla mnie nad wieloma multiwersami) URN, URL lub URI?
    2014-09-20 03: 06: 25Z
  5. @ edelwater: Przypuszczam, że to uri, ponieważ tylko identyfikuje cię, ale nie mówi nic o tym, jak do ciebie dotrzeć, chyba że masz na myśli, że earth128 jest jakimś medium podróży międzyplanetarnej :)
    2015-04-27 10: 57: 23Z

URI - Jednolity identyfikator zasobów

URI są standardem identyfikacji dokumentów za pomocą krótkiego ciągu liczb, liter i symboli. Są one zdefiniowane przez RFC 3986 - Uniform Resource Identifier (URI): ogólna składnia . Adresy URL, URN i URC to typy URI.

URL - Uniform Resource Locator

Zawiera informacje o tym, jak pobrać zasób z jego lokalizacji. Na przykład:

  • 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 (Względny adres URL, przydatny tylko w kontekście innego adresu URL)

Adresy URL zawsze zaczynają się od protokołu (http) i zazwyczaj zawierają informacje, takie jak nazwa hosta sieciowego (example.com) i często ścieżka dokumentu (/foo/mypage.html). Adresy URL mogą mieć parametry zapytania i identyfikatory fragmentów.

URN - Jednolita nazwa zasobu

Identyfikuje zasób według unikalnej i trwałej nazwy, ale niekoniecznie mówi, jak go znaleźć w Internecie. Zwykle zaczyna się od przedrostka urn: Na przykład:

  •  urn:isbn:0451450523, aby zidentyfikować książkę według numeru ISBN.
  •  urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 globalnie unikalny identyfikator
  •  urn:publishing:book - Przestrzeń nazw XML, która identyfikuje dokument jako typ książki.

URN mogą identyfikować pomysły i koncepcje. Nie są one ograniczone do dokumentów identyfikujących. Gdy URN reprezentuje dokument, można go przetłumaczyć na adres URL za pomocą „resolvera”. Dokument można następnie pobrać z adresu URL.

URC - Uniform Resource Citation

Wskazuje metadane dotyczące dokumentu, a nie samego dokumentu. Przykładem URC jest taki, który wskazuje kod źródłowy HTML strony: view-source:http://example.com/

URI danych

Zamiast lokalizować je w Internecie lub nazywać je, dane można umieścić bezpośrednio w URI. Przykładem może być data:,Hello%20World.


Często zadawane pytania

Słyszałem, że nie powinienem już mówić URL, dlaczego?

Specyfikacja W3 dla HTML mówi, że href kotwicy tag może zawierać URI, a nie tylko URL. Powinieneś być w stanie umieścić URN, taki jak <a href="urn:isbn:0451450523">. Twoja przeglądarka następnie rozwiąże ten URN na adres URL i pobierze książkę dla Ciebie.

Czy jakieś przeglądarki faktycznie wiedzą, jak pobierać dokumenty przez URN?

Nie wiem o tym, ale nowoczesna przeglądarka internetowa implementuje schemat URI danych.

Czy różnica między adresem URL a URI ma coś wspólnego z tym, czy jest względna czy bezwzględna?

Nie. Zarówno względne, jak i bezwzględne adresy URL są adresami URL (i URI).

Czy różnica między adresem URL a URI ma coś wspólnego z tym, czy ma parametry zapytania?

Nie. Oba adresy URL z parametrami zapytania i bez nich są adresami URL (i URI).

Czy różnica między adresem URL a URI ma coś wspólnego z tym, czy ma on identyfikator fragmentu?

Nie. Zarówno adresy URL z identyfikatorami fragmentów, jak i bez nich, są adresami URL (i URI).

Zakłada różnicęWeen URL i URI mają coś wspólnego z dozwolonymi znakami?

Nie. Adresy URL są zdefiniowane jako ścisły podzbiór identyfikatorów URI. Jeśli parser zezwala na znak w adresie URL, ale nie w identyfikatorze URI, w parserze występuje błąd. Specyfikacje szczegółowo opisują, które znaki są dozwolone, w których częściach adresów URL i URI. Niektóre znaki mogą być dozwolone tylko w niektórych częściach adresu URL, ale same znaki nie różnią się między adresami URL a adresami URI.

Ale czy W3C nie mówi teraz, że adresy URL i URI są tym samym?

Tak. W3C zdał sobie sprawę, że jest w tym mnóstwo zamieszania. Wydali dokument wyjaśniający URI , który mówi, że można teraz użyć adresu URL i zamiennie URI (oznaczać URI). Nie jest już użyteczne ścisłe dzielenie identyfikatorów URI na różne typy, takie jak URL, URN i URC.

Czy identyfikator URI może być zarówno adresem URL, jak i URN?

Definicja URN jest teraz luźniejsza niż to, co stwierdziłem powyżej. najnowsze RFC na URI mówi, że każdy URI może teraz być URN (niezależnie od tego, czy jest to zaczyna się od urn:), o ile ma „właściwości nazwy”. To znaczy: Jest globalnie unikalny i trwały nawet wtedy, gdy zasób przestaje istnieć lub staje się niedostępny. Przykład: URI używane w dokumentach HTML, takich jak http://www.w3.org/TR/html4/strict.dtd. Ten identyfikator URI nadal nazywałby dokumentację przejściową HTML4, nawet gdyby strona na stronie w3.org została usunięta.


Diagram Venna URI /URL

    
584
2019-02-15 17: 51: 59Z
  1. to „C: myfile” URI, URL lub URN? lub żaden z nich.
    2015-05-18 07: 36: 09Z
  2. Ścieżka do pliku nie jest adresem URL ani URI, chyba że umieścisz na nim prefiks file://. Chociaż przeglądarki zazwyczaj obsługują ścieżki plików w formacie innym niż URL. Mozilla publikuje swoje przypadki testowe dla adresów URL plików .
    2015-06-08 16: 19: 43Z
  3. Dlaczego są one „jednolite”?
    2015-07-05 01: 30: 56Z
  4. 2015-07-05 02: 11: 57Z
  5. Ta odpowiedź jest o wiele łatwiejsza do zrozumienia. Mogę zobaczyć wyraźne zdjęcia prawdziwego przykładu adresów URL i URNA. A każdy może przeczytać więcej na ten temat ... danielmiessler.com/study/url-uri
    2017-05-22 07: 41: 58Z

Podsumowując: identyfikator URI identyfikuje i identyfikuje adres URL.

Zastanów się nad konkretną edycją sztuki Szekspira Romeo i Julia , z której masz cyfrową kopię w sieci domowej.

Możesz zidentyfikować tekst jako urn:isbn:0-486-27557-4.
To byłby URI, ale dokładniej URN *, ponieważ nazywa tekst .

Można również zidentyfikować tekst jako file://hostname/sharename/RomeoAndJuliet.pdf.
Byłby to również identyfikator URI, a dokładniej URL , ponieważ lokalizuje tekst .

* Jednolita nazwa zasobu

(Zauważ, że mój przykład jest dostosowany z Wikipedii )     

246
2016-04-17 11: 53: 50Z
    Przydatne jest zanotowanie rzeczywistego numeru URN (aby zobaczyć, jak porównuje się z adresem URL): urn: isbn: 0-486-27557-4
    2009-12-31 18: 15: 35Z
  1. @ Michael - Rozumiem, że ISBN 0486275574 również nazywa ten tekst i dlatego kwalifikuje się jako URN. Wybieram format, który moim zdaniem byłby bardziej znany czytelnikom.
    2009-12-31 18: 47: 09Z
  2. Czy miałoby sens stwierdzenie, że skrót (np. SHA1) pliku może być URN dla tego pliku?
    2016-06-06 14: 01: 14Z
  3. @ johnsimer Nie myśl tak, ponieważ możesz mieć kopię jednego pliku na tym samym komputerze, co skutkowałoby tym samym hashem i dlatego nie jest unikalne.
    2018-02-06 19: 34: 30Z

Oto kilka bardzo dobrze napisanych, ale długich odpowiedzi. Oto różnica jeśli chodzi o CodeIgniter :

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

URI - /some/page.html

Mówiąc prościej, URL jest pełnym sposobem na identyfikację dowolnego zasobu w dowolnym miejscu i może mieć różne protokoły, takie jak FTP, HTTP, SCP itp.

URI to zasób w bieżącej domenie, więc potrzebuje mniej informacji, aby go znaleźć.

W każdym przypadku, gdy CodeIgniter używa słowa URL lub URI, jest to różnica, o której mówią, chociaż w wielkim schemacie sieci nie jest w 100% poprawny.

    
135
2015-03-30 23: 53: 15Z
  1. Ta odpowiedź może być zbyt uproszczona, ale spójrz na kontekst jego pytania. Bardziej pomocne będzie dla niego wymyślenie przestrzeni nazw XML!
    2009-12-31 12: 18: 19Z
  2. Ta odpowiedź jest nie tylko błędna, ale i myląca. Oba przykłady to adresy URL. A ponieważ każdy URL jest również URI, oznacza to, że oba przykłady to URI. W celu wykazania różnicy między identyfikatorami URI a adresami URL jest to całkowicie bezużyteczne.
    2009-12-31 12: 40: 57Z
  3. To jest różnica w odniesieniu do CodeIgniter. W każdym przypadku używają słowa URL lub URI, o czym mówią. Dlatego w wielkim schemacie sieci nie jest to w 100% poprawne, ale w zakresie pytania PO (różnica w CodeIgniter), ta odpowiedź jest całkowicie poprawna.
    2010-01-11 11: 13: 00Z
  4. To jest złe. @ JörgWMittag jest głównie na miejscu. Adresy URL są identyfikatorami URI i są „w pełni kwalifikowane”; więc „URL” w tej odpowiedzi to oba. Ale /some/page.html nie jest identyfikatorem URI. Jest to „względny ref”, który jest rodzajem „odniesienia do URI”. W połączeniu z kontekstem bazowego URI, może być rozwiązany do URI, ale sam nie jest URI. Zobacz Sekcja 4.1 RFC 3986 . CodeIgniter prawdopodobnie używa błędnych określeń, które należy wywołać; Q (obecnie edytowane) nie jest określone jako specyficzne dla CodeIgniter.
    2014-03-11 05: 33: 19Z
  5. Dla przyszłych ludzi, którzy czytają te komentarze i są tak samo zagubieni jak ja: Ta odpowiedź nie została opublikowana dla tego pytania. To pytanie nigdy nie miało nic wspólnego z CodeIgniter. Pojawiło się zduplikowane pytanie, które konkretnie dotyczyło CodeIgniter, który został zamknięty i wszystkie jego odpowiedzi zostały przeniesione na to pytanie. Ta odpowiedź była jedną z tych, które zostały przeniesione ze starego zamkniętego pytania do tego chronionego pytania. Mimo to ta odpowiedź jest myląca. Przegrałem go - inni powinni zrobić to samo, ponieważ w nowym domu jest źle. Autor powinien go usunąć lub scalić niezrobione.
    2014-10-06 17: 33: 08Z

Przede wszystkim pozbądź się zamieszania i nie przejmuj się, a zrozumiesz.

URI = > Jednolity identyfikator zasobów Identyfikuje pełny adres lokalizacji i-e zasobu, nazwy lub obu.

URL = > Uniform Resource Locator Identyfikuje lokalizację zasobu.

URN = > Jednolita nazwa zasobu Identyfikuje nazwę zasobu

Przyklad

Mamy adres https://www.google.com/folder/page. html gdzie,

URI (Uniform Resource Identifier) ​​= > https://www.google.com/folder/page.html

URL (Uniform Resource Locator) = > https://www.google.com/

URN (Uniform Resource Name) = > /folder/page.html

URI = > (URL + URN) lub tylko URL lub tylko URN

    
78
2018-02-24 09: 40: 44Z

Mały dodatek do już opublikowanych odpowiedzi, oto diagram Venna podsumowujący teorię (z pięknej Prateek Joshi wyjaśnienie ):

wprowadź opis obrazu tutaj>> </p>

<p> I przykład (także ze strony Prateek): </p>

<p> <img src = 63

2014-10-16 17: 46: 51Z
  1. Uważam, że druga ilustracja jest niepoprawna. Według specyfikacji url.spec.whatwg.org/#url-writing URL musi być zapisany jako względny adres URL lub bezwzględny adres URL, po którym opcjonalnie następuje znak „#” i fragment. Tak więc identyfikator fragmentu #posts może być częścią adresu URL
    2014-12-04 14: 57: 40Z
  2. To jest po prostu błędne
    2015-02-03 11: 10: 53Z
  3. Obie ilustracje są ze sobą sprzeczne.
    2015-06-28 00: 22: 00Z

Jest to jeden z najbardziej mylących i prawdopodobnie nieistotnych tematów, które spotkałem jako profesjonalista w sieci.

Jak rozumiem, URI jest opisem czegoś, zgodnym z przyjętym formatem, który może zdefiniować zarówno albo unikalną nazwę (identyfikację) czegoś i jego lokalizację.

Istnieją dwa podstawowe podzbiory - adresy URL, które definiują lokalizację (szczególnie przeglądarkę próbującą wyszukać stronę) i URN, które definiują unikalną nazwę czegoś.

Uważam, że URN są podobne do identyfikatorów GUID. Są po prostu znormalizowaną metodologią dostarczania unikalnych nazw rzeczy. Podobnie jak w deklaratywnej przestrzeni nazw, która używa nazwy firmy - nie jest tak, że na serwerze znajduje się zasób odpowiadający tej linii tekstu - po prostu jednoznacznie identyfikuje coś.

Ja również mam tendencję do całkowitego unikania terminu URI i omawiania rzeczy tylko w kategoriach URL lub URN, jeśli to właściwe, ponieważ powoduje to tyle zamieszania. Pytanie, które powinniśmy naprawdę spróbować odpowiedzieć ludziom, to nie tyle semantyka, ile rozpoznanie, kiedy napotykamy pojęcia, czy istnieje w nich jakakolwiek praktyczna różnica, która zmieni podejście do sytuacji programowania. Na przykład, jeśli ktoś poprawi mnie w rozmowie i powie: „och, to nie jest adres URL, to jest to URI”. Wiem, że są one pełne. Jeśli ktoś powie „używamy URN do zdefiniowania zasobu”, to jestem bardziej skłonny do zrozumienia, że ​​nazywamy go wyłącznie jednoznacznie, nie lokalizując go na serwerze.

Jeśli odejdębase - daj mi znać!

    
53
2011-12-01 13: 35: 08Z
  1. Nie, myślę, że masz rację. Semantyka URI vs URL vs URL vs URI-ref itp. Jest bezużyteczna dla większości programistów, tylko dlatego, że prowadzi bezcelową (nieproduktywną, nieistotną do podejmowania decyzji) debatę. Gdyby Google API użył redirect_url zamiast redirect_uri, czy ktoś naprawdę by się tym przejmował?
    2015-04-06 14: 33: 12Z
  

Identyfikator = nazwa + lokalizacja

Każdy adres URL ( U niform R esource L ocator) to URI ( U niform R esource I dentysty, mówiąc abstrakcyjnie, ale każdy URI nie jest adresem URL. Istnieje jeszcze jedna podkategoria URI: URN ( U niform R esource N ame), która jest nazwanym zasobem, ale nie określa sposobu lokalizacji one, jak mailto, newsy, ISBN to URI. Źródło

 wprowadź opis obrazu tutaj>> </a> </p>

<p> <strong> URN: </strong> </p>

<ul>
<li> Format URN: <code>urn:[namespace identifier]:[namespace specific string]</code> </li>
<li> urn: i: wyróżnij się. </li>
<li>
<a href= Przykłady :

URL:

  • Format URL: [scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
  • :, //,? i # wyróżnij się.
  • Schematy
  • to https, ftp, gopher, mailto, news, telnet, plik, man, info, whatis, ldap ...
  • Przykłady:

Analogia:
Aby dotrzeć do osoby: Prowadzenie pojazdu (protokół inne SMS, e-mail, telefon), Adres (nazwa hosta inny numer telefonu, e-mail) i nazwisko osoby (nazwa obiektu ze ścieżką względną).

    
44
2018-09-29 02: 34: 31Z
  1. Drobne pytanie: Powinien być dwukropek między [domain] i [port]. IE: example.com:1234
    2019-03-01 17: 03: 43Z

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

Adresy URL są podzbiorem identyfikatorów URI (które zawierają również URN).

Zasadniczo URI jest ogólnym identyfikatorem, w którym URL określa lokalizację, a URN określa nazwę.

    
42
2008-10-06 21: 30: 16Z
  1. Adresy URL nie są prawdziwym podzbiorem URI. Możesz tworzyć vaid URL ze znakami [ i ], ale nie z URI.
    2013-05-16 00: 43: 14Z
  2. Nawiasy kwadratowe nie są poprawne ani w identyfikatorach URI, ani w adresach URL. Zobacz to pytanie, które ma wiele odniesień do specyfikacji: Czy w adresach URL dozwolone są nawiasy kwadratowe? a>. Kiedy pojawiają się nawiasy kwadratowe, powinnybyć zakodowanym.
    2015-07-25 10: 44: 12Z

Innym przykładem, którego lubię używać, gdy myślę o URI, jest atrybut xmlns dokumentu XML:

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

W tym przypadku com.mycompany.mynode byłby identyfikatorem URI, który jednoznacznie identyfikuje przestrzeń nazw „myPrefix” dla wszystkich elementów, które go używają w moim dokumencie XML. To NIE jest adres URL, ponieważ jest używany tylko do identyfikacji, a nie do zlokalizowania czegoś jako takiego.

    
35
2014-04-16 23: 16: 38Z

Z powodu trudności z wyraźnym rozróżnieniem między URI a URL, o ile pamiętam, W3C nie robi już różnicy między URI a URL ( http://www.w3.org/Addressing/).

    
28
2013-08-08 19: 57: 29Z
  1. Być może tęskniłem za tą częścią, ale nie widzę żadnych odniesień w podanym linku do nich, usuwając rozróżnienie między URL i URI, uznając tylko zamieszanie i brakujące specyfikacje które niepoprawnie odwołują się do adresu URL, aby go zaktualizować do referencyjnego identyfikatora URI.
    2018-01-10 17: 28: 45Z

To ta sama rzecz . Identyfikator URI jest uogólnieniem adresu URL. Pierwotnie identyfikatory URI miały być podzielone na adresy URL (adresy) i URN (nazwy), ale wtedy nie było dużej różnicy między adresem URL a URI, a identyfikatory URI http były używane jako przestrzenie nazw, mimo że nie znajdowały żadnych zasobów. >     

26
2008-10-06 21: 45: 31Z
  1. Myślałem, że to na odwrót. Adres URL odnosi się do konkretnego obiektu, a identyfikator URI może odwoływać się do tego lub do pojęcia lub czegokolwiek innego.
    2008-10-06 21: 30: 00Z
  2. URL lokalizuje zasób i jest rodzajem URI, który identyfikuje zasób.
    2008-10-06 21: 33: 40Z
  3. Prawdą jest, że są one tym samym, ponieważ definicja adresu URL zmieniła się w czasie. Adresy URL były kiedyś określonym typem URI, ale z powodu zamieszania, które spowodowało, W3C przedefiniował URL, aby oznaczyć URI.
    2015-04-17 10: 11: 02Z
  4. Tak powiedziałem.
    2015-04-17 18: 59: 29Z

 URI i URL

  

URI, URL, URN

Jak widać na powyższym obrazku, istnieją tutaj trzy różne komponenty. Zazwyczaj najlepiej jest udać się do źródła podczas omawiania takich kwestii, więc oto fragment z Tim Berners-Lee, et. glin. w RFC 3986: Uniform Resource Identifier (URI): ogólna składnia:

  

Uniform Resource Identifier (URI) to zwarta sekwencja   znaki, które identyfikują abstrakcyjne lub fizyczne zasoby.

     

Identyfikator URI może być dalej klasyfikowany jako lokalizator, nazwa lub oba. The   termin „Uniform Resource Locator” (URL) odnosi się do podzbioru URI   które, oprócz identyfikacji zasobu, zapewniają środki   lokalizowanie zasobu poprzez opisanie jego podstawowego mechanizmu dostępu   (mi.g., jego „lokalizacja” w sieci).

    
23
2016-06-02 11: 16: 26Z

URI jest rodzajem super klasy adresów URL i URN. Wikipedia ma świetny artykuł o nich z linkami do odpowiedniego zestawu RFC.

    
20
2008-10-06 21: 30: 40Z

URL

URL to specjalizacja URI, która definiuje lokalizację sieciową określonego zasobu. W przeciwieństwie do URN, URL określa, w jaki sposób można uzyskać zasób. Używamy adresów URL codziennie w postaci http://example.com itd. Ale URL nie musi być URL-em HTTP, może to być również ftp://example.com itd.

URI

Identyfikator URI identyfikuje zasób według lokalizacji lub nazwy albo obu. Najczęściej większość z nas używa identyfikatorów URI, które definiują lokalizację zasobu. Fakt, że URI może zidentyfikować zasoby zarówno przez nazwę, jak i lokalizację, spowodował, moim zdaniem, wiele zamieszania. Identyfikator URI ma dwie specjalizacje znane jako URL i URN.

Różnica między adresem URL a identyfikatorem URI

Identyfikator URI jest identyfikatorem jakiegoś zasobu, ale adres URL podaje konkretne informacje, aby uzyskać ten zasób. Identyfikator URI jest adresem URL i, jak zauważył jeden z komentatorów, używanie adresu URL przy opisywaniu aplikacji jest obecnie uważane za niepoprawne. Ogólnie, jeśli adres URL opisuje zarówno lokalizację, jak i nazwę zasobu, terminem, który należy użyć, jest URI. Ponieważ zazwyczaj tak się dzieje w przypadku większości z nas, URI jest poprawnym terminem.

    
16
2014-06-17 19: 06: 04Z

Wikipedia poda wszystkie potrzebne informacje. Cytowanie z http://en.wikipedia.org/wiki/URI :

  

Adres URL jest identyfikatorem URI, który oprócz identyfikowania zasobu zapewnia środki do działania lub uzyskania reprezentacji zasobu, opisując jego podstawowy mechanizm dostępu lub „lokalizację” sieci.

    
16
2014-06-17 19: 09: 35Z

Zgodnie z RFC 3986 , URI składają się z następujących elementów:

 
scheme://authority/path?query

Identyfikator URI opisuje protokół dostępu do zasobu ( ścieżka ) lub aplikacji ( zapytanie ) na serwerze ( uprawnienie ). p>

Wpisz opis obrazu tutaj>> </p>

<p> Wszystkie adresy URL to URI, a wszystkie URN to URI, ale wszystkie URI nie są adresami URL. </p>

<p> Więcej informacji można znaleźć na stronie: </p>

<blockquote>
  <p> <a href= Wikipedia

    
15
2016-07-09 17: 46: 26Z
  1. To nie uczy mnie niczego, co nie jest objęte innymi odpowiedziami, które mają co najmniej 6 lat, a które są o wiele bardziej kompletne i próbują wyjaśnić, jak rozróżnia identyfikatory URI od adresów URL.
    2014-09-06 11: 06: 06Z
  2. Ważne jest, aby pamiętać, że obraz jest diagramem Venna , nawet jeśli nie wygląda na typowy. Widziałem ludzi próbujących interpretować to jako „części adresu URL”. Ten diagram nie mówi, że identyfikatory URI zaczynają się od adresu URL i kończą się numerem URN.
    2015-04-17 10: 03: 57Z

Identyfikator URI identyfikuje zasób według lokalizacji lub nazwy albo obu. Najczęściej większość z nas używa identyfikatorów URI, które definiują lokalizację zasobu. Fakt, że URI może zidentyfikować zasoby zarówno przez nazwę, jak i lokalizację, spowodował, moim zdaniem, wiele zamieszania. Identyfikator URI ma dwie specjalizacje znane jako URL i URN.

URL to specjalizacja URI, która definiuje lokalizację sieciową określonego zasobu. W przeciwieństwie do URN, URL określa, w jaki sposób można uzyskać zasób. Codziennie używamy adresów URL w postaci http://stackoverflow.com , itd. Ale adres URL nie musi być adresem URL HTTP, może to być ftp://example.com itd.

    
13
2015-03-04 21: 03: 21Z

Chociaż terminy URI i URL są ściśle zdefiniowane, wiele z nich używa terminów dla innych rzeczy, niż są one zdefiniowane.

Weźmy na przykład Apache. Jeśli http://example.com/foo zostanie poproszony przez serwer Apache, będziesz mieć następujące zmienne środowiskowe set:

  •  REDIRECT_URL: /foo
  •  REQUEST_URI: /foo

Po włączeniu mod_rewrite będziesz mieć również następujące zmienne:

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

To może być powodem niektórych zamieszania.

    
11
2009-12-31 09: 57: 27Z

Zobacz ten dokument . W szczególności

  

adres URL to typ identyfikatora URI, który identyfikuje zasób za pośrednictwem reprezentacji jego podstawowego mechanizmu dostępu (np. jego „lokalizacji” w sieci), a nie innych atrybutów, które może mieć.

To naprawdę nie jest bardzo jasne określenie.

    
10
2009-12-31 06: 33: 44Z

Po przeczytaniu postów znajduję bardzo istotne komentarze. Krótko mówiąc, mylenie między definicjami URL i URI opiera się częściowo na tym, która definicja zależy od tego, a także nieformalnego użycia słowa URI w rozwoju oprogramowania.

Z definicji URL jest podzbiorem URI [RFC2396]. URI zawiera URN i URL. Zarówno URI, jak i URL mają własną specyficzną składnię, która nadaje im status URI lub URL. URN służą do jednoznacznego identyfikowania zasobu, podczas gdy adres URL służy do lokalizowania zasobu. Zauważ, że zasób może mieć więcej niż jeden URL, ale tylko jeden URN. [RFC2611]

Jako programiści i programiści prawie zawsze będziemy się zajmować URL-em, a zatem URI. Teraz adres URL jest specjalnie zdefiniowany, aby mieć cały schemat części: część specyficzna dla schematu, na przykład https://stackoverflow.com/questions. To jest adres URL, a także URI. Teraz rozważ względny link osadzony na stronie, taki jak ../index.html. Z definicji nie jest to już adres URL. Nadal jest to tak zwane „odniesienie do URI” [RFC2396].

Uważam, że kiedy słowo URI jest używane w odniesieniu do ścieżek względnych, „odwołanie do URI” jest właściwie tym, o czym się myśli. Tak więc nieformalnie systemy oprogramowania używają URI w odniesieniu do względnego krosowania i adresu URL dla adresu bezwzględnego. W tym sensie ścieżka względna nie jest już adresem URL, ale wciąż URI.

    
10
2017-05-23 11: 47: 34Z

Oto moje uproszczenie:

URN: unikalna nazwa zasobu, tj. „co” (np. urn: issn: 1234-5678). To ma być wyjątkowe .. jak w żadnym innym dokumencie nie może mieć tej samej urny. Trochę jak „uuid”

URL: „gdzie” go znaleźć (np. https://google.com/pub? issnid = 1234-5678 .. lub                               ftp://somesite.com/doc8.pdf )

URI: może być URN lub URL. Ta rozmyta definicja wynika z RFC 3986 produkowanego przez W3C i IETF.

Definicja URI zmieniła się na przestrzeni lat, więc dla większości ludzi jest to sensowne. Jednak możesz teraz skorzystać z faktu, że możesz odwołać się do http://somesite.com/something jako albo adres URL, albo identyfikator URI ... i tak będzie dobrze (przynajmniej jeśli i tak będziesz ...)

    
9
2013-01-09 14: 26: 51Z

Zastanawiałem się nad tym samym i znalazłem to: http: //docs.kohanaphp .com /helpers /url .

Możesz zobaczyć wyraźny przykład używając metody url::current(). Jeśli masz ten URL : http://example.com/kohana/index.php/welcome/home.html?query=string, a następnie za pomocą url:current() otrzymasz URI , który zgodnie z dokumentacją to: witamy /dom

    
9
2015-04-17 10: 08: 39Z
  1. Ta odpowiedź jest błędna. Identyfikator URI nie jest częścią adresu URL. Raczej adresy URL są rodzajem URI. Ponadto link w tej odpowiedzi jest uszkodzony (i nie mogę znaleźć odpowiedniego zamiennika.)
    2015-04-17 10: 07: 50Z

URI powstały z potrzeby identyfikacji zasobów w sieci i innych zasobów internetowych , takich jak elektroniczne skrzynki pocztowe w jednolity i spójny sposób. Można więc wprowadzić nowy typ widgetu : identyfikatory URI identyfikujące zasoby widżet lub użyć tel: URI, aby linki do stron powodowały połączenia telefoniczne być wykonane po wywołaniu.

Niektóre identyfikatory URI dostarczają informacji do zlokalizowania zasobu (takiego jak nazwa hosta DNS i ścieżka na tym komputerze), podczas gdy niektóre są używane jako czyste nazwy zasobów. URL jest zarezerwowany dla identyfikatorów będących lokalizatorami zasobów , w tym adresów URL „http”, takich jak http://stackoverflow.com , które identyfikują strona internetowa pod podaną ścieżką na hoście. Innym przykładem są adresy URL „mailto”, takie jak mailto: fred@mail.org , który identyfikuje skrzynkę pocztową pod podanym adresem.

URN to identyfikatory URI używane jako czyste nazwy zasobów , a nie lokalizatory. Na przykład identyfikator URI: mid: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com to URN, który identyfikuje wiadomość e-mail zawierającą go w polu „Message-Id”. Identyfikator URI służy do odróżnienia tej wiadomości od innych wiadomości e-mail. Ale sam nie podaje adresu wiadomości w żadnym sklepie.

    
7
2012-03-10 17: 30: 22Z

Łatwe do wyjaśnienia:

Załóżmy, co następuje

URI to twoje imię

Adres URL to Twój adres z Twoim nazwiskiem umożliwiającym komunikację z Tobą.

  • Nazywam się Loyola

    Loyola to URI

  • mój adres to TN, Chennai 600001.

TN, Chennai 600 001, Loyola to URL

Mam nadzieję, że zrozumiesz,

Teraz zobaczmy dokładny przykład

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

powyżej możesz komunikować się ze stroną o nazwie firstpage.html ( URI ) za pomocą następującego http://www.google.com/fistpage.html ( URL ).

Stąd URI jest podzbiorem adresu URL, ale nie odwrotnie.

    
6
2015-03-18 09: 08: 17Z
  1. Ta odpowiedź jest myląca. Cytuj z Wikipedii „Funkcje Uniform Resource Name (URN)jak imię osoby, podczas gdy Uniform Resource Locator (URL) przypomina adres tej osoby. Innymi słowy: URN definiuje tożsamość elementu, podczas gdy adres URL zapewnia metodę jego znalezienia. ”Zarówno URN, jak i adresy URL są URI.
    2015-12-28 00: 54: 13Z

Aby odpowiedzieć na to pytanie, opieram się na odpowiedzi, którą zmodyfikowałem na inne pytanie . Dobrym przykładem identyfikatora URI jest sposób identyfikowania zasobu Amazon S3. Weźmy:

s3://www-example-com/index.html [rys. 1]

, który stworzyłem jako buforowaną kopię

http://www.example.com/index.html [rys. 2]

w centrum danych S3-US-West-2 Amazon firmy Amazon.

Nawet jeśli StackOverflow pozwoli mi na hiperłącze do s3:// protokół schemat, nie byłoby dobrze w lokalizowaniu zasobu. Ponieważ Identyfikuje a Zasób , rys. 1 to prawidłowy identyfikator URI. Jest to również poprawny URN, ponieważ Amazon wymaga, aby wiadro (ich termin dla authority części URI) było unikalne w różnych centrach danych. Lokalizowanie go jest pomocne , ale nie wskazuje centrum danych. Dlatego nie działa jako URL.

Jak więc różnią się w tym przypadku URI, URL i URN?

UWAGA: RFC 3986 definiuje URI jako scheme://authority/path?query#fragment

    
6
2017-10-02 03: 16: 59Z

Uniform Resource Identifier (URI) to ciąg znaków identyfikujący zasoby internetowe.

Najpopularniejszym identyfikatorem URI jest Uniform Resource Locator (URL), który identyfikuje adres domeny internetowej. Innym, nie tak popularnym typem URI jest Universal Resource Name (URN).

    
4
2014-12-03 06: 19: 05Z

Znalazłem:


Jednolity identyfikator zasobów (URI) reprezentuje coś w rodzaju dużego obrazu. Możesz dzielić URI /URI można klasyfikować jako lokalizatory (jednolite lokalizatory zasobów - URL), lub jako nazwy (jednolita nazwa zasobu-URN), albo jedno i drugie. Tak więc zasadniczo URN działa jak imię osoby, a adres URL przedstawia adres tej osoby. Krótko mówiąc, URN definiuje tożsamość elementu, podczas gdy adres URL określa metodę jego znalezienia, w końcu enkapsulacja tych dwóch pojęć to URI

    
4
2016-07-09 17: 46: 47Z

Odpowiedź jest niejednoznaczna. W Javie jest często używany w ten sposób:

Uniform Resource Locator (URL) to termin używany do identyfikacji zasobu internetowego, w tym schematu (http, https, ftp, news itp.). Na przykład Jaka jest różnica między identyfikatorem URI, adresem URL i URN?

Jednolity identyfikator zasobów (URI) służy do identyfikacji pojedynczego dokumentu na serwerze sieci Web: Na przykład /pytania /176264 /whats-the-difference-between-a-uri-and-a-url

W serwletach Java identyfikator URI często odnosi się do dokumentu bez kontekstu aplikacji WWW.

    
0
2017-05-23 12: 10: 45Z
  1. Jest to różnica między bezwzględnym a względnym adresem URL. Nie wyjaśnia relacji między URI a URL i URN.
    2012-09-08 08: 43: 22Z
  2. Właściwie są to dokładne przykłady. W sieci to bardzo często różnica.
    2013-11-11 03: 49: 38Z
źródło umieszczone tutaj