Jaka jest różnica między URI, URL i urna?

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

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

Author: Peter Mortensen, 2008-10-07

30 answers

Z RFC 3986:

URI może być dalej klasyfikowany jako lokalizator, nazwa lub jedno i drugie. Na termin "Uniform Resource Locator" (URL) odnosi się do podzbioru Uri które, oprócz identyfikacji zasobu, zapewniają środki zlokalizowanie zasobu poprzez opisanie jego głównego mechanizmu dostępu (np. jego sieć "lokalizacja"). Termin " Uniform Resource Name" (URN) był używany historycznie w odniesieniu do obu Uri pod program "urna" [RFC2141], które muszą pozostać unikalne globalnie i trwałe nawet wtedy, gdy zasób przestaje istnieć lub staje się niedostępne, oraz na wszelkie inne URI o właściwościach nazwy.

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

EDIT: wcześniej myślałem, że wszystkie adresy URL są poprawnymi Uri, ale jak na komentarze:

Nie " wszystkie Adresy URL to Uri". To zależy od interpretacji RFC. Na przykład w Javie parser URI nie lubi [ lub ], A to dlatego, że specyfikacja mówi "should not", a nie "shall not".

[[2]} tak, że błoto wody dalej, niestety.

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

 1536
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:39

URI S identyfikuje i URL S locate ; jednak lokalizatory są również identyfikatorami, więc każdy URL jest również URI, ale istnieją URI, które nie są adresami URL.

Przykłady

  • Roger Pate

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

  • 4914 West Bay Street, Nassau, Bahamy

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

Mówię "lubię", ponieważ te przykłady nie są zgodne z wymaganą składnią.

Popularne zamieszanie

Od Wikipedia :

Url (ang. Uniform Resource Locator) - podzbiór Uniform Resource Identifier (URI), który określa, gdzie zidentyfikowany zasób jest dostępny oraz mechanizm jego pobierania. w powszechnym użyciu oraz w wielu dokumentach technicznych i dyskusjach słownych jest często błędnie używany jako synonim URI ,...

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

Urny

Moje imię, Roger Pate, może być jak urna (Uniform Resource Name), z tym, że są one o wiele bardziej regulowane i mają być unikalne w zarówno w przestrzeni, jak i w czasie.

Ponieważ obecnie dzielę się tym nazwiskiem z innymi ludźmi, nie jest unikalne globalnie i nie byłoby odpowiednie jako urna. Jednak, nawet jeśli żadna inna rodzina nie używała tego nazwiska, jestem nazwany po moim dziadek ze strony ojca, więc nadal nie byłoby to wyjątkowe w czasie. I nawet jeśli tak nie było, możliwość nazwania moich Potomków moim imieniem sprawia, że nie nadaje się to jako urna.

Urny różnią się od Urli w tym sztywnym ograniczeniu unikalności, mimo że obie mają wspólną składnię Uri.

 3552
Author: Community,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:45

URI -- Uniform Resource Identifier

URI są standardem identyfikacji dokumentów za pomocą krótkiego ciągu cyfr, liter i symboli. Są one zdefiniowane przez RFC 3986-Uniform Resource Identifier (URI): Generic Syntax. Adresy URL, urny i URCs są typami 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:[email protected]
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • W związku z tym, że nie jest to możliwe, nie jest to możliwe.]}

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 -- Uniform Resource Nazwa

Identyfikuje zasób za pomocą unikalnej i trwałej nazwy, ale niekoniecznie mówi, jak go zlokalizować w Internecie. Zazwyczaj zaczyna się od przedrostka urn:, na przykład:

  • Aby zidentyfikować książkę po numerze ISBN.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 globalny niepowtarzalny identyfikator
  • urn:publishing:book - przestrzeń nazw XML, która identyfikuje dokument jako typ książki.
Urny mogą identyfikować idee i koncepcje. Nie są one ograniczone do dokumenty identyfikacyjne. Kiedy URN reprezentuje dokument, może być przetłumaczony na adres URL za pomocą "resolvera". Dokument można następnie pobrać z adresu URL.

URC -- Uniform Resource Citation

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

Data URI

Zamiast lokalizowania go w Internecie lub nazywania, dane mogą być umieszczone bezpośrednio w URI. Przykładem może być data:,Hello%20World.


Najczęściej Zadawane Pytania

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

W3 spec dla HTML mówi, że href tag anchor może zawierać URI, a nie tylko adres URL. Powinieneś umieść w urnie taką jak <a href="urn:isbn:0451450523">. Twoja przeglądarka rozwiązałaby tę urnę na adres URL i pobrałaby książkę dla Ciebie.

Czy któraś z przeglądarek wie jak pobierać dokumenty przez Urna?

Nic mi o tym nie wiadomo, ale nowoczesna przeglądarka internetowa implementuje schemat Uri danych.

Czy różnica między URL i URI ma coś wspólnego z tym, czy jest względny czy absolutny?

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

Czy różnica między URL i 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 URL i URI ma coś wspólnego z tym, czy ma identyfikator fragmentu?

Nie. Oba adresy URL z identyfikatorami fragmentów i bez nich są adresami URL (i Uri.)

Czy różnica między URL i URI ma coś wspólnego z tym, jakie znaki są dozwolone?

Nie. Adresy URL są zdefiniowane jako ścisły podzbiór Uri. Jeśli parser zezwala na znak w adresie URL, ale nie w URI, w parserze występuje błąd. Specyfikacja szczegółowo opisuje, o czym dozwolone są znaki, 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 stanowią różnicy między adresami URL a URI.

Ale czy W3C nie mówi teraz, że adresy URL i Uri to to samo?

Tak. W3C zdało sobie sprawę, że jest mnóstwo zamieszania na ten temat. Wydali dokument objaśniający URI , który mówi, że teraz Można używać terminów URL i URI zamiennie (aby oznaczać URI). To nie dłuższy przydatny do ścisłego segmentowania Uri na różne typy, takie jak URL, URN i URC.

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

Definicja urny jest teraz luźniejsza niż to, co podałem powyżej. Najnowsze RFC na Uri mówi, że każdy URI może być teraz urną (niezależnie od tego, czy zaczyna się od urn:), o ile ma " właściwości nazwy."Oznacza to, że jest unikalny na całym świecie 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. Że URI będzie nadal nazywać HTML4 transitional doctype, nawet jeśli strona na w3.org strona została usunięta.


URI / URL

 492
Author: Stephen Ostermiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-12 11:43:13

W podsumowaniu: Uri identyfikuje, URL identyfikuje i lokalizuje.

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

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

Można również określić tekst jako file://hostname/sharename/RomeoAndJuliet.pdf.
To też byłby URI, ale dokładniej URL Ponieważ lokalizuje tekst .

*Uniform Resource Name

(zauważ, że mój przykład jest zaadaptowany z Wikipedii)

 236
Author: Greg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-17 11:53:50

Są to bardzo dobrze napisane, ale długie 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 jest zasobem w bieżącej domenie, więc potrzebuje mniej informacji, aby znaleźć.

W każdym przykład, że CodeIgniter używa słowa URL lub URI to jest różnica, o której mówią, choć w wielkim schemacie sieci, nie jest to w 100% poprawne.

 124
Author: Phil Sturgeon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-30 23:53:15

Mały dodatek do już zamieszczonych odpowiedzi, oto diagram Venna do podsumowania teorii (z pięknego wyjaśnienia Prateek Joshi):

Tutaj wpisz opis obrazka

I przykład (również ze strony Prateka):

Tutaj wpisz opis obrazka

 63
Author: Gustavo Mori,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-16 17:46:51

Przede wszystkim wyciągnij swój umysł z zamieszania i zrób to prosto, a zrozumiesz.

URI = > Uniform Resource Identifier Identyfikuje pełny adres zasobu i-e lokalizacji, nazwy lub obu.

URL = > Uniform Resource Locator Identyfikuje lokalizację zasobu.

URN = > Uniform Resource Name Określa nazwę zasobu

Przykład

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) or URL only or URN only

 57
Author: Eugen Konkov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-24 09:40:44

Jest to jeden z najbardziej mylących i prawdopodobnie nieistotnych tematów, z którymi spotkałem się jako profesjonalista internetowy.

Jak rozumiem, URI jest opisem czegoś, po zaakceptowanym formacie, który może zdefiniować zarówno unikalną nazwę (identyfikację) czegoś i jego lokalizację.

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

I tend myśleć, że urny są podobne do Guidów. Są one po prostu znormalizowaną metodologią dostarczania unikalnych nazw rzeczy. Podobnie jak w przestrzeni nazw deklaratywnej, która używa nazwy firmy - to nie jest tak, że gdzieś na serwerze znajduje się zasób odpowiadający tej linii tekstu - po prostu jednoznacznie identyfikuje coś.

Mam również tendencję do całkowitego unikania terminu URI i omawiania rzeczy tylko w kategoriach URL lub URN, ponieważ powoduje to tyle zamieszania. Na pytaniem, na które naprawdę powinniśmy próbować odpowiedzieć ludziom, jest nie tyle semantyka, co to, jak rozpoznać po zetknięciu się z pojęciami, czy istnieje w nich jakaś praktyczna różnica, która zmieni podejście do sytuacji programistycznej. Na przykład, jeśli ktoś poprawi mnie w rozmowie i powie: "Och, to nie jest URL, to jest URI", wiem, że jest tego pełno. Jeśli ktoś powie "używamy urny do zdefiniowania zasobu", to raczej zrozumiem, że nazwaliśmy go tylko jednoznacznie, a nie zlokalizowanie go na serwerze.

Jeśli jestem daleko od bazy-proszę dać mi znać!

 52
Author: Kevin Lowe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-01 13:35:08

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

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

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

 42
Author: Craig Wilson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-06 21:30:16

Innym przykładem, którego lubię używać myśląc 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 będzie URI, który jednoznacznie identyfikuje przestrzeń nazw "myPrefix" dla wszystkich elementów, które go używają w moim dokumencie XML. Nie jest to adres URL, ponieważ jest on używany tylko do identyfikacji, a nie do zlokalizowania czegoś samego.

 35
Author: D.C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-16 23:16:38

Identyfikator = Nazwa + Lokalizacja

Every URL (U niform R esource L ocator) is a URI (U niform R esource I dentifier), mówiąc abstrakcyjnie, ale każdy URI nie jest adresem URL. Istnieje inna Podkategoria URI to URN (U niform R esource N ame), która jest nazwanym zasobem, ale nie określa, jak je zlokalizować, np. mailto, news, ISBN to Uri. źródło

Tutaj wpisz opis obrazka

URN:

  • URN Format: urn:[namespace identifier]:[namespace specific string]
  • urn : and: stand for themselves.
  • przykłady :
    • urn:uuid: 6e8bc430-9c3a-11d9-9669-0800200c9a66
    • urn: ISSN: 0167-6423
    • urn:isbn: 096139210x
    • Amazon Resource Names (ARNs) to unikalnie identyfikujące zasoby AWS.
      • Format ARN : arn:partition:service:region:account-id:resource

URL:

  • URL Format: [scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
  • :,//,? i # stand for themselves.
  • Schematy to https,ftp,gopher,mailto,news,telnet,file,man,info,whatis,ldap...
  • przykłady:

Analogia:
Aby dotrzeć do osoby: jazdy (protokół inne SMS, e-mail, Telefon), Adres(Nazwa hosta inny numer telefonu, emailid) i nazwa osoby (obiekt Nazwa ze ścieżką względną).

 35
Author: Premraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-29 02:34:31

Ze względu na trudności w wyraźnym rozróżnieniu URI i URL, o ile pamiętam, W3C nie robi już różnicy między URI a URL ( http://www.w3.org/Addressing/).

 28
Author: manuel aldana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-08 19:57:29

To to samo . URI jest uogólnieniem adresu URL. Początkowo Uri planowano podzielić na adresy URL (adresy) i urny (nazwy), ale potem była niewielka różnica między URL i URI, a URI http były używane jako przestrzenie nazw, mimo że w rzeczywistości nie zlokalizowano żadnych zasobów.

 24
Author: Mark Cidade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-06 21:45:31

URI i URL

URI, URL, URN

Jak wskazuje obrazek powyżej, w grę wchodzą trzy różne elementy. Zazwyczaj najlepiej jest udać się do źródła podczas omawiania takich spraw, więc oto wyciąg z Tim Berners-Lee, et. al. w RFC 3986: Uniform Resource Identifier (URI): Generic składnia:

Uniform Resource Identifier (URI) to zwarta Sekwencja znaki identyfikujące abstrakcję lub fizykę zasoby.

URI może być dalej klasyfikowany jako lokalizator, nazwa lub oba. Na termin "Uniform Resource Locator" (URL) odnosi się do podzbioru Uri które, oprócz identyfikacji zasobu, zapewniają środki zlokalizowanie zasobu poprzez opisanie jego głównego mechanizmu dostępu (np. jego sieć "lokalizacja").

 21
Author: Adiii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-02 11:16:26

URI to rodzaj super klasy adresów URL i URN. Wikipedia ma piękny Artykuł o nich z linkami do prawego zestawu RFC.

 20
Author: André,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-06 21:30:40

URL

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

URI

URI identyfikuje zasób według lokalizacji, nazwy lub obu. Częściej niż nie, większość z nas używa URI, które określa lokalizację zasobu. Fakt to, że URI może zidentyfikować zasoby zarówno po nazwie, jak i lokalizacji, doprowadziło do wielu nieporozumień w mojej opinii. URI ma dwie specjalizacje znane jako URL i URN.

Różnica między URL i URI

URI jest identyfikatorem jakiegoś zasobu, ale URL daje konkretne informacje, aby uzyskać ten zasób. URI jest adresem URL i jak zauważył jeden z komentatorów, używanie adresu URL podczas opisywania aplikacji jest obecnie uważane za nieprawidłowe. Ogólnie, jeśli adres URL opisuje zarówno lokalizacja i nazwa zasobu, termin używany jest URI. Ponieważ jest to zazwyczaj przypadek, że większość z nas spotyka się codziennie, URI jest poprawnym terminem.

 15
Author: Sujit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-17 19:06:04

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

Adres URL to URI, który oprócz identyfikacji zasobu zapewnia środki działania lub uzyskiwania reprezentacji zasobu poprzez opisanie jego głównego mechanizmu dostępu lub "lokalizacji" sieci.

 15
Author: Peter Boughton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-17 19:09:35

Zgodnie z RFC 3986 , Uri składają się z następujących części:

scheme://authority/path?query

URI opisuje protokół dostępu do zasobu (path ) lub aplikacji (query) na serwerze ( authority ).

Tutaj wpisz opis obrazka

Wszystkie adresy URL są Uri, a wszystkie urny są Uri, ale wszystkie URI nie są adresami URL.

Proszę zapoznać się z więcej szczegółów:

Wikipedia

 14
Author: Prashanth Sams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-09 17:46:26

URI identyfikuje zasób według lokalizacji, nazwy lub obu. Częściej niż nie, większość z nas używa URI, które określa lokalizację zasobu. Fakt, że URI może zidentyfikować zasoby zarówno po nazwie, jak i lokalizacji, doprowadził do wielu zamieszania moim zdaniem. URI ma dwie specjalizacje znane jako URL i URN.

Adres URL jest specjalizacją URI, która określa lokalizację sieciową określonego zasobu. W przeciwieństwie do URN, adres URL określa, w jaki sposób można uzyskać zasób. My używaj adresów URL każdego dnia w formie http://stackoverflow.com , itd. Ale adres URL nie musi być adresem HTTP, może to być ftp://example.com, itp.

 13
Author: Swapnil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-04 21:03:21

Chociaż terminy URI i URL są ściśle zdefiniowane, wielu używa tych terminów dla innych rzeczy niż są zdefiniowane.

Weźmy na przykład Apache. If http://example.com/foo jest wymagane z serwera Apache, będziesz miał ustawione następujące zmienne środowiskowe:

  • REDIRECT_URL: /foo
  • REQUEST_URI: /foo

Z włączoną 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 zamieszania.
 11
Author: Gumbo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-31 09:57:27

Zobacz ten dokument . W szczególności

URL to rodzaj URI, który identyfikuje zasób poprzez reprezentację jego głównego mechanizmu dostępu (np. jego "lokalizacji" sieciowej), a nie przez niektóre inne atrybuty, które może mieć.

To niezbyt jasne określenie.

 10
Author: avpx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-31 06:33:44

Po przeczytaniu postów znajduję kilka bardzo istotnych komentarzy. Krótko mówiąc, nieporozumienie między definicjami URL i URI opiera się częściowo na tym, od której definicji zależy, a także nieformalnym użyciu słowa URI w tworzeniu oprogramowania.

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

Jako web developerzy i Programiści prawie zawsze będziemy zajmować się URL i tym samym URI. Teraz adres URL jest zdefiniowany tak, aby miał wszystkie schematy części:scheme-specific-part, jak na przykład https://stackoverflow.com/questions . jest to adres URL i jest to również URI. Teraz rozważ względny link osadzony na stronie, taki jak ../ align = "left" / html. To nie dłuższy adres URL z definicji. Jest to nadal to, co jest określane jako " Uri-reference "[RFC2396].

Wierzę, że kiedy słowo URI jest używane w odniesieniu do ścieżek względnych, "Uri-reference" jest w rzeczywistości tym, o czym się myśli. Tak więc nieformalnie, systemy programowe używają URI do odwoływania się do ścieżki względnej I URL dla adresu bezwzględnego. W tym sensie ścieżka względna nie jest już adresem URL, ale nadal URI.

 9
Author: paul r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:34

Oto moje uproszczenie:

URN: unikalna nazwa zasobu, tzn. " co " (np. urn: issn: 1234-5678). To ma być wyjątkowe .. jak w przypadku dwóch różnych dokumentów nie może mieć tej samej urny. Trochę jak "uuid"

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

URI: może być urna lub URL. Ta fuzzy definicja jest dzięki RFC 3986 produkowane przez W3C i IETF.

Definicja URI zmieniła się na przestrzeni lat, więc dla większości ludzi ma to sens. Jednak teraz możesz pocieszyć się faktem, że możesz odwołać się do http://somesite.com/something jako adres URL lub URI ... i tak będziesz miał rację (przynajmniej na razie...)

 9
Author: jjolla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-09 14:26:51

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

Możesz zobaczyć przejrzysty przykład używając metody url::current(). Jeśli masz ten adres URL : http://example.com/kohana/index.php/welcome/home.html?query=string następnie użycie url:current() daje URI które, zgodnie z dokumentacją, jest: welcome / home

 9
Author: dierre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-17 10:08:39

Uri powstało z potrzeby identyfikacji zasobów w sieci, oraz innych zasobów internetowych, takich jak elektroniczne skrzynki pocztowe, w jednolity i spójny sposób. Można więc wprowadzić nowy typ Uri widget: do identyfikacji zasobów widget lub użyć uri tel: aby mieć odnośniki do stron internetowych, które wywołują połączenia telefoniczne.

Niektóre Uri dostarczają informacji umożliwiających zlokalizowanie zasobu (np. nazwa hosta DNS i ścieżka na tym komputerze), podczas gdy niektóre są używane jako czyste nazwy zasobów. Adres URL jest zarezerwowany dla identyfikatorów, które są lokalizatorami zasobów , w tym adresów URL 'http', takich jak http://stackoverflow.com , która identyfikuje stronę WWW przy podanej ścieżce na hoście. Innym przykładem są adresy URL 'mailto', takie jak mailto:[email protected] , która identyfikuje skrzynkę pocztową pod podanym adresem.

Urny to URI, które są używane jako czyste nazwy zasobów, a nie lokalizatory. Na przykład URI: mid:[email protected] jest urną identyfikującą wiadomość e-mail zawierającą ją w polu 'Message-Id'. URI służy do odróżnienia tej wiadomości od każdej innej wiadomości e-mail. Ale sam nie podaje adresu wiadomości w żadnym sklepie.

 7
Author: dpant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-10 17:30:22

Łatwe do wyjaśnienia:

Przyjmijmy następujące

URI to Twoje imię

URL to twój adres z Twoim imieniem i nazwiskiem w celu komunikacji z Tobą.

  • Nazywam się Loyola

    Loyola to URI

  • Mój adres to TN, Chennai 600001.

TN, Chennai 600 001, Loyola is URL

Hope you understand,

Teraz pozwala zobaczyć dokładne przykład

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

W powyższym można komunikować się ze stroną o nazwie firstpage.html (URI ) używając następujących http://www.google.com/fistpage.html(URL).

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

 6
Author: loyola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-18 09:08:17

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

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

Który utworzyłem jako buforowaną kopię

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

W centrum danych Amazona S3-US-West-2 .

Nawet jeśli StackOverflow pozwoliłby mi na hiperłącze do s3:// protokół schemat, it nie przydałoby ci się zlokalizowanie zasobu. Ponieważ identyfikuje A zasób, rys. 1 jest prawidłowym URI. Jest to również prawidłowa urna, ponieważ Amazon wymaga, aby wiadro (ich nazwa dla authority części URI) było unikalne w centrach danych. To jest pomocne w zlokalizowaniu go, ale nie wskazuje centrum danych. Dlatego nie działa jako URL.

Więc, jak URI, URL i URN różnią się w tym case?

Uwaga: RFC 3986 definiuje Uri jako scheme://authority/path?query#fragment

 6
Author: Bruno Bronosky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-02 03:16:59

Uniform Resource Identifier (URI) - ciąg znaków identyfikujący zasób internetowy.

Najczęstszym URI jest Uniform Resource Locator (URL), który identyfikuje adres domeny internetowej. Innym, nie tak powszechnym typem URI jest uniwersalna nazwa zasobu (urn).

 4
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-03 06:19:05

Znalazłem:


Uniform resource identifier (URI) reprezentuje coś z dużego obrazu. Można podzielić Uri / Uri mogą być klasyfikowane jako lokalizatory (uniform resource locators-URL), lub jako nazwy (uniform resource name-URN), lub albo oba. Tak więc zasadniczo urna działa jak imię i nazwisko osoby, a adres URL przedstawia adres tej osoby. Tak w skrócie, urna definiuje tożsamość elementu, podczas gdy adres URL określa metodę jego znalezienia, ostatecznie zamykając te dwa pojęcia to URI

 4
Author: Rakeeb Rajbhandari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-09 17:46:47

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

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

Na serwerze internetowym można znaleźć informacje o tym, jakie dokumenty są przechowywane na serwerze internetowym.]}

In Java servlets, URI często odnosi się do dokumentu bez kontekstu aplikacji webowej.

 0
Author: Freeman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:45