В чем разница между URI, URL и URN?

Люди говорят об URL-адресах, URI- адресах и URN- адресах, как будто это разные вещи, но они выглядят одинаково невооруженным глазом.

Каковы различия между ними?

31 ответ

Решение

Из RFC 3986:

URI может быть далее классифицирован как локатор, имя или оба. Термин "унифицированный указатель ресурса" (URL) относится к подмножеству URI, которые, помимо идентификации ресурса, предоставляют средства для определения местоположения ресурса путем описания его основного механизма доступа (например, его "местоположение" в сети). Термин "Унифицированное имя ресурса" (URN) исторически использовался для ссылки на оба URI в схеме "urn" [RFC2141], которые должны оставаться глобально уникальными и постоянными, даже когда ресурс перестает существовать или становится недоступным, и к любому другому URI со свойствами имени.

Таким образом, все URL являются URI (на самом деле не совсем - см. Ниже), а все URN являются URI, но URN и URL разные, поэтому нельзя сказать, что все URI являются URL.

РЕДАКТИРОВАТЬ: Ранее я думал, что все URL-адреса являются действительными URI, но в соответствии с комментариями:

Не "все URL являются URI". Это зависит от толкования RFC. Например в Java парсер URI не любит [ или же ] и это потому, что спецификация говорит "не должен", а не "не должен".

Так что мутит воду дальше, к сожалению.

Если вы еще не прочитали ответ Роджера Пейта, я бы посоветовал сделать то же самое.

Идентификаторы URI и адреса URL; однако локаторы также являются идентификаторами, поэтому каждый URL-адрес также является URI, но есть URI, которые не являются URL-адресами.

Примеры

  • Роджер Пэйт

Это мое имя, которое является идентификатором. Это похоже на URI, но не может быть URL-адресом, поскольку ничего не говорит о моем местонахождении или о том, как связаться со мной. В этом случае также случается идентифицировать по крайней мере 5 других людей только в США.

  • 4914 West Bay Street, Нассау, Багамские острова

Это локатор, который является идентификатором для этого физического местоположения. Это как URL и URI (так как все URL являются URI), а также косвенно идентифицирует меня как "резидент..". В этом случае он однозначно идентифицирует меня, но это изменится, если я получу соседа по комнате.

Я говорю "нравится", потому что эти примеры не соответствуют требуемому синтаксису.

Народная путаница

Из Википедии:

В вычислениях унифицированный указатель ресурса (URL) является подмножеством унифицированного идентификатора ресурса (URI), который указывает, где идентифицированный ресурс доступен и механизм его получения. В популярном использовании и во многих технических документах и ​​устных обсуждениях это часто неправильно используется как синоним URI,... [выделение мое]

Из-за этой общей путаницы многие продукты и документация неправильно используют один термин вместо другого, присваивают свое собственное различие или используют их как синонимы.

урны

Мое имя, Роджер Пэйт, может быть похоже на URN (Uniform Resource Name), за исключением того, что оно гораздо более регламентировано и должно быть уникальным как в пространстве, так и во времени.

Поскольку в настоящее время я разделяю это имя с другими людьми, оно не является уникальным в глобальном масштабе и не подходит для использования в качестве URN. Однако, даже если никакая другая семья не использовала это имя, меня назвали в честь моего деда по отцовской линии, так что оно не было бы уникальным во времени. И даже если бы это было не так, возможность именования моих потомков после меня делает это неприемлемым в качестве URN.

URN отличаются от URL-адресов в этом жестком ограничении уникальности, даже если они оба имеют общий синтаксис URI.

URI - унифицированный идентификатор ресурса

URI - это стандарт идентификации документов с использованием короткой строки из цифр, букв и символов. Они определены в RFC 3986 - Унифицированный идентификатор ресурса (URI): общий синтаксис. URL, URN и URC - это все типы URI.

URL - унифицированный указатель ресурса

Содержит информацию о том, как извлечь ресурс из его местоположения. Например:

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:user@example.com
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (Относительный URL, полезен только в контексте другого URL)

URL всегда начинаются с протокола (http) и обычно содержат такую ​​информацию, как имя сетевого хоста (example.com) и часто путь к документу (/foo/mypage.html). URL могут иметь параметры запроса и идентификаторы фрагментов.

URN - унифицированное имя ресурса

Идентифицирует ресурс по уникальному и постоянному имени, но не обязательно говорит вам, как найти его в Интернете. Обычно начинается с префикса urn: Например:

  • urn:isbn:0451450523 идентифицировать книгу по номеру ISBN.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 глобально уникальный идентификатор
  • urn:publishing:book - Пространство имен XML, которое идентифицирует документ как тип книги.

URN могут идентифицировать идеи и концепции. Они не ограничиваются идентификацией документов. Когда URN действительно представляет документ, он может быть преобразован в URL "распознавателем". Затем документ можно загрузить с URL-адреса.

URC - Единое цитирование ресурсов

Указывает на метаданные о документе, а не на сам документ. Примером URC является тот, который указывает на исходный код HTML страницы, такой как: view-source:http://example.com/

URI данных

Вместо того, чтобы размещать их в Интернете или называть их, данные могут быть помещены непосредственно в URI. Примером будет data:,Hello%20World,


Часто задаваемые вопросы

Я слышал, что не должен больше говорить URL, почему?

Спецификация W3 для HTML гласит, что href тега привязки может содержать URI, а не только URL. Вы должны быть в состоянии положить в URN, таких как <a href="urn:isbn:0451450523">, Ваш браузер затем разрешит этот URN в URL и загрузит книгу для вас.

Знают ли какие-либо браузеры, как получать документы по URN?

Не то, чтобы я знал, но современный веб-браузер реализует схему URI данных.

Различие между URL и URI имеет какое-либо отношение к тому, является ли оно относительным или абсолютным?

Нет. Как относительные, так и абсолютные URL-адреса являются URL-адресами (и URI).

Разница между URL и URI имеет какое-либо отношение к тому, имеет ли он параметры запроса?

Нет. Оба URL с параметрами запроса и без них являются URL-адресами (и URI).

Разница между URL и URI имеет какое-либо отношение к тому, имеет ли он идентификатор фрагмента?

Нет. Оба URL с идентификаторами фрагментов и без них являются URL (и URI).

Разница между URL и URI связана с тем, какие символы разрешены?

Нет. URL определены как строгое подмножество URI. Если синтаксический анализатор допускает символ в URL, но не в URI, в синтаксическом анализаторе есть ошибка. Спецификации подробно описывают, какие символы разрешены в каких частях URL и URI. Некоторые символы могут быть разрешены только в некоторых частях URL, но одни только символы не являются разницей между URL и URI.

Но разве W3C не говорит, что URL и URI - это одно и то же?

Да. W3C понял, что по этому поводу существует куча путаницы. Они выпустили разъясняющий документ URI, в котором говорится, что теперь можно использовать термины URL и URI взаимозаменяемо (чтобы обозначать URI). Больше не нужно строго сегментировать URI на разные типы, такие как URL, URN и URC.

Может ли URI быть как URL, так и URN?

Определение URN теперь слабее, чем то, что я сказал выше. В последнем RFC для URI говорится, что любой URI теперь может быть URN (независимо от того, начинается ли он с urn:) до тех пор, пока у него есть "свойства имени". То есть: он глобально уникален и постоянен, даже когда ресурс перестает существовать или становится недоступным. Пример: URI, используемые в типах документов HTML, таких как http://www.w3.org/TR/html4/strict.dtd, Этот URI будет по-прежнему называть HTML4 переходным типом документа, даже если страница на веб-сайте w3.org была удалена.


URI / URL Диаграмма Венна

В итоге: URI идентифицирует, URL идентифицирует и находит.

Рассмотрим конкретный выпуск пьесы Шекспира " Ромео и Джульетта", цифровая копия которого у вас есть в домашней сети.

Вы можете идентифицировать текст как urn:isbn:0-486-27557-4,
Это был бы URI, но точнее URN*, потому что он называет текст.

Вы также можете идентифицировать текст как file://hostname/sharename/RomeoAndJuliet.pdf,
Это также будет URI, но более конкретно URL, потому что он находит текст.

* Единое название ресурса

(Обратите внимание, что мой пример адаптирован из Википедии)

Это очень хорошо написанные, но многословные ответы. Вот разница, что касается CodeIgniter:

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

URI - /some/page.html

Проще говоря, URL является полным способом идентификации любого ресурса в любом месте и может иметь различные протоколы, такие как FTP, HTTP, SCP и т. Д.

URI - это ресурс в текущем домене, поэтому для его поиска требуется меньше информации.

В каждом случае, когда CodeIgniter использует слово URL или URI, это различие, о котором они говорят, хотя в грандиозной схеме Интернета это не на 100% правильно.

Прежде всего выведите свой разум из смятения и примите это просто, и вы поймете.

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

Идентификатор = Имя + Местоположение

Каждый URL(универсальный указатель R esource L) представляет собой URI(универсальный указатель R esource I), абстрактно говоря, но каждый URI не является URL. Существует еще одна подкатегория URI - URN (универсальный ресурсный номер), который является именованным ресурсом, но не указывает, как их найти, например mailto, news, ISBN - это URI. Источник

введите описание изображения здесь

URN:

  • Формат URN: urn:[namespace identifier]:[namespace specific string]
  • урна: и: постоять за себя.
  • Примеры:
    • Урна: UUID:6e8bc430-9c3a-11d9-9669-0800200c9a66
    • Урна:ISSN:0167-6423
    • Урна: ISBN: 096139210x
    • Amazon Resource Names (ARNs) - это уникальные идентификаторы ресурсов AWS.
      • ARN формат: arn:partition:service:region:account-id:resource

URL:

  • Формат URL: [scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
  • : //,? и # постоять за себя.
  • схемы https,ftp,gopher,mailto, новости, telnet, файл,man,info,whatis,ldap...
  • Примеры:

Аналогия:
Чтобы связаться с человеком: управление автомобилем (протокол других SMS, электронная почта, телефон), адрес (имя хоста, другой номер телефона, emailid) и имя человека (имя объекта с относительным путем).

Небольшое дополнение к уже опубликованным ответам, вот диаграмма Венна, чтобы подвести итог теории (из красивого объяснения Пратика Джоши):

И пример (также с сайта Prateek):

Это одна из самых запутанных и, возможно, нерелевантных тем, с которыми я сталкивался как веб-профессионал.

Насколько я понимаю, URI - это описание чего-то, следующего за принятым форматом, которое может определять как уникальное имя (идентификацию) чего-либо, так и его местоположение.

Существует два основных подмножества: URL-адреса, которые определяют местоположение (особенно для браузера, пытающегося найти веб-страницу) и URN, которые определяют уникальное имя чего-либо.

Я склонен считать, что URN похожи на GUID. Это просто стандартизированная методология предоставления уникальных названий вещей. Как и в декларативном пространстве имен, в котором используется название компании - не то, чтобы где-то на сервере находился ресурс, соответствующий этой строке текста, - он просто однозначно идентифицирует что-то.

Я также склоняюсь к тому, чтобы полностью избегать термина URI и обсуждать вещи только с точки зрения URL или URN, в зависимости от обстоятельств, потому что это вызывает так много путаницы. Вопрос, на который мы действительно должны попытаться ответить для людей, заключается не столько в семантике, сколько в том, как определить при столкновении с терминами, есть ли в них какое-либо практическое различие, которое изменит подход к ситуации программирования. Например, если кто-то исправляет меня в разговоре и говорит: "О, это не URL, а URI", я знаю, что он полон. Если кто-то скажет "мы используем URN для определения ресурса", я с большей вероятностью пойму, что мы называем его только уникальным образом, а не размещаем его на сервере.

Если я далеко от базы - пожалуйста, дайте мне знать!

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

URL являются подмножеством URI (которые также содержат URN).

По сути, URI - это общий идентификатор, где URL указывает местоположение, а URN - имя.

Другой пример, который мне нравится использовать, когда я думаю о URI, - это атрибут xmlns документа XML:

<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/).

URI и URL

URI, URL, URN

Как показано на рисунке выше, здесь есть три отдельных компонента. Обычно лучше всего обратиться к источнику при обсуждении подобных вопросов, так что вот выдержка из Тим Бернерс-Ли и др. и др. в RFC 3986: унифицированный идентификатор ресурса (URI): общий синтаксис:

Унифицированный идентификатор ресурса (URI) - это компактная последовательность символов, которая идентифицирует абстрактный или физический ресурс.

URI может быть далее классифицирован как локатор, имя или оба. Термин "унифицированный указатель ресурса" (URL) относится к подмножеству URI, которые, помимо идентификации ресурса, предоставляют средства для определения местоположения ресурса путем описания его основного механизма доступа (например, его "местоположение" в сети).

Это одно и то же. URI - это обобщение URL. Первоначально URI планировалось разделить на URL-адреса (адреса) и URN-ы (имена), но тогда между URL-адресом и URI было мало различий, а http-URI использовались в качестве пространств имен, даже если на самом деле они не находили никаких ресурсов.

URI - это своего рода суперкласс URL и URN. В Википедии есть прекрасная статья о них со ссылками на правильный набор RFC.

Википедия предоставит всю необходимую информацию здесь. Цитата из http://en.wikipedia.org/wiki/URI:

URL-адрес - это URI, который, в дополнение к идентификации ресурса, предоставляет средства воздействия или получения представления ресурса путем описания его основного механизма доступа или сетевого "местоположения".

URL

URL - это специализация URI, которая определяет сетевое местоположение определенного ресурса. В отличие от URN, URL-адрес определяет способ получения ресурса. Мы используем URL-адреса каждый день в форме http://example.com и т. д. Но URL-адрес не обязательно должен быть HTTP-адресом, он может быть ftp://example.com и т.д. тоже.

URI

URI идентифицирует ресурс либо по местоположению, либо по имени, либо по обоим. Чаще всего большинство из нас использует URI, которые определяют местоположение ресурса. На мой взгляд, тот факт, что URI может идентифицировать ресурсы как по имени, так и по местоположению, привел к большой путанице. URI имеет две специализации, известные как URL и URN.

Разница между URL и URI

URI - это идентификатор какого-либо ресурса, но URL-адрес дает вам конкретную информацию о том, как получить этот ресурс. URI - это URL, и, как отметил один из комментаторов, теперь считается неправильным использовать URL при описании приложений. Как правило, если URL-адрес описывает местоположение и имя ресурса, используется термин URI. Так как это, как правило, происходит с большинством из нас каждый день, URI является правильным термином.

URI идентифицирует ресурс либо по местоположению, либо по имени, либо по обоим. Чаще всего большинство из нас использует URI, которые определяют местоположение ресурса. На мой взгляд, тот факт, что URI может идентифицировать ресурсы как по имени, так и по местоположению, привел к большой путанице. URI имеет две специализации, известные как URL и URN.

URL - это специализация URI, которая определяет сетевое местоположение определенного ресурса. В отличие от URN, URL-адрес определяет способ получения ресурса. Мы используем URL-адреса каждый день в форме http://stackru.com/ и т. Д. Но URL-адрес не обязательно должен быть HTTP-URL, он может быть ftp://example.com, так далее.

Согласно RFC 3986, URI состоят из следующих частей:

scheme://authority/path?query

URI описывает протокол для доступа к ресурсу (пути) или приложению (запросу) на сервере (полномочия).

Все URL-адреса являются URI, и все URN являются URI, но все URI не являются URL-адресами.

Пожалуйста, обратитесь за более подробной информацией:

Википедия

Хотя термины URI и URL-адреса строго определены, многие используют термины для других целей, для которых они не определены.

Давайте возьмем Apache для примера. Если с сервера Apache запрашивается 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 частично основана на том, какое определение зависит от какого, а также на неформальном использовании слова URI в разработке программного обеспечения.

По определению URL является подмножеством URI [RFC2396]. URI содержат URN и URL. И URI, и URL имеют свой собственный синтаксис, который присваивает им статус URI или URL. URN предназначены для уникальной идентификации ресурса, а URL - для поиска ресурса. Обратите внимание, что ресурс может иметь более одного URL, но только один URN.[RFC2611]

Как веб-разработчики и программисты, мы почти всегда будем интересоваться URL и, следовательно, URI. Теперь URL-адрес специально определен, чтобы иметь всю схему частей: схема-специфическая часть, как, например, https://stackru.com/questions. Это URL, а также URI. Теперь рассмотрим относительную ссылку, встроенную в страницу, например../index.html. Это больше не URL по определению. Это все еще то, что упоминается как "URI-ссылка" [RFC2396].

Я считаю, что когда слово URI используется для обозначения относительных путей, "URI-ссылка" фактически является тем, о чем идет речь. Так, неофициально, программные системы используют URI для ссылки на относительный путь и URL для абсолютного адреса. Таким образом, в этом смысле относительный путь больше не является URL-адресом, а все же URI.

Смотрите этот документ. В частности,

URL-адрес - это тип URI, который идентифицирует ресурс через представление его основного механизма доступа (например, его сетевое "местоположение"), а не по некоторым другим атрибутам, которые он может иметь.

Это не очень понятный термин, правда.

Вот мое упрощение:

URN: уникальное имя ресурса, то есть "что" (например, urn:issn:1234-5678). Это должно быть уникальным... так как ни в одном из двух разных документов не может быть одинаковой урны. Немного как "uuid"

URL: "где" его найти (например, https://google.com/pub?issnid=1234-5678.. или ftp://somesite.com/doc8.pdf)

URI: может быть URN или URL. Это нечеткое определение благодаря RFC 3986, произведенному W3C и IETF.

Определение URI менялось с годами, поэтому для большинства людей имеет смысл путаться. Тем не менее, теперь вы можете утешиться тем фактом, что вы можете ссылаться на http://somesite.com/something как URL-адрес или URI ... и вы будете правы в любом случае (по крайней мере, в настоящее время в любом случае)..)

Лучшее (техническое) резюме imo - это

IRI, URI, URL, URN и их отличия от Яна Мартина Кейла:

IRI, URI, URL, URN и их различия

Каждый, кто имеет дело с Семантической паутиной, постоянно сталкивается с терминами IRI, URI, URL и URN. Тем не менее я часто замечаю некоторую путаницу в их точном значении. И, конечно же, это заметили и другие (см., Например, RFC3305 или поиск в Google). Если честно, я даже сам сначала запутался. Но на самом деле вопрос не такой уж и сложный. Давайте посмотрим на определения упомянутых терминов, чтобы увидеть, в чем различия:

URI

Унифицированный идентификатор ресурса представляет собой компактную последовательность символов, которая определяет абстрактный или физический ресурс. Набор символов ограничен US-ASCII, за исключением некоторых зарезервированных символов. Символы вне набора разрешенных символов могут быть представлены с использованием процентного кодирования. URI может использоваться как указатель, имя или и то, и другое. Если URI является указателем, он описывает основной механизм доступа к ресурсу. Если URI - это имя, он идентифицирует ресурс, давая ему уникальное имя. Точные спецификации синтаксиса и семантики URI зависят от используемой схемы, которая определяется символами перед первым двоеточием. [RFC3986]

URN

Равномерное Имя ресурса является URI, в схеме урны предназначены для использования в качестве постоянного, независимые от расположения, идентификатор ресурса. Исторически этот термин также относился к любому URI. [RFC3986] URN состоит из идентификатора пространства имен (NID) и специальной строки пространства имен (NSS): urn:: Синтаксис и семантика NSS специфичны для каждого NID. Помимо зарегистрированных NID, существует еще несколько NID, которые не прошли официальную регистрацию. [RFC2141]

URL

Унифицированный указатель информационного ресурса является URI, который, в дополнение к идентификации ресурса, обеспечивает средство определения местоположения ресурса путем описания основного механизма доступа [RFC3986]. Поскольку не существует точного определения URL с помощью набора схем, "URL - полезная, но неформальная концепция", обычно относящаяся к подмножеству URI, которые не содержат URN [RFC3305].

IRI

Интернационализированный идентификатор ресурса определяется аналогично с URI, но набор символов распространяется на Character Set Универсальный кодированный. Следовательно, он может содержать любые латинские и нелатинские символы, кроме зарезервированных символов. Вместо расширения определения URI был введен термин IRI, чтобы учесть четкое различие и избежать несовместимости. IRI предназначены для замены URI при идентификации ресурсов в ситуациях, когда поддерживается универсальный набор кодированных символов. По определению каждый URI - это IRI. Кроме того, существует определенное сюръективное сопоставление IRI с URI: каждый IRI может быть сопоставлен точно с одним URI, но разные IRI могут отображаться на один и тот же URI. Следовательно, обратное преобразование из URI в IRI может не создать исходный 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 URI [LINKED-DATA]. Короче говоря: используйте только URL-адреса для именования ваших объектов. Конечно, мы можем ссылаться на существующие сущности, названные URN. Однако нам следует избегать создания новых идентификаторов такого типа.

Чтобы ответить на этот вопрос, я опираюсь на ответ, который я изменил на другой вопрос. Хороший пример URI - это способ определения ресурса Amazon S3. Давайте принимать:

s3://www-example-com/index.html [инжир. 1]

который я создал как кешированную копию

http://www.example.com/index.html [инжир. 2]

в центре обработки данных Amazon S3-US-West-2.

Даже если Stackru позволит мне гиперссылку на s3:// Схема протокола, это не поможет вам найти ресурс. Поскольку он идентифицирует ресурс, рис. 1 является действительным URI. Это также действительный URN, потому что Amazon требует, чтобы ведро (их термин для authority часть URI) должна быть уникальной во всех центрах обработки данных. Это помогает найти его, но не указывает на центр обработки данных. Поэтому он не работает как URL.

Итак, чем же отличаются URI, URL и URN в этом случае?

ПРИМЕЧАНИЕ. RFC 3986 определяет URI как scheme://authority/path?query#fragment

URI возникли из-за необходимости идентифицировать ресурсы в сети и другие интернет-ресурсы, такие как электронные почтовые ящики, единообразно и согласованно. Таким образом, можно ввести новый тип виджета: URI для идентификации ресурсов виджета или использовать tel: URI, чтобы иметь веб-ссылки, вызывающие телефонные звонки при вызове.

Некоторые URI предоставляют информацию для определения местоположения ресурса (например, имя хоста DNS и путь на этом компьютере), а некоторые используются как чистые имена ресурсов. URL зарезервирован для идентификаторов, которые являются локаторами ресурсов, включая URL-адреса "http", такие как http://stackru.com, который идентифицирует веб-страницу по указанному пути на хосте. Другой пример - это URL-адреса mailto, например mailto: fred@mail.org, который идентифицирует почтовый ящик по указанному адресу.

URN - это URI, которые используются как чистые имена ресурсов, а не как локаторы. Например, URI: mid: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackru.com является URN, который идентифицирует сообщение электронной почты, содержащее его, в своем поле "Message-Id". URI служит для того, чтобы отличить это сообщение от любого другого сообщения электронной почты. Но он не предоставляет адрес сообщения в любом магазине.

Мне было интересно об одном и том же, и я нашел это: http://docs.kohanaphp.com/helpers/url.

Вы можете увидеть четкий пример, используя url::current() метод. Если у вас есть этот URL: http://example.com/kohana/index.php/welcome/home.html?query=string затем с помощью url:current() дает вам URI, который, согласно документации, является: welcome / home

Легко объяснить:

Предположим следующее

URI - это ваше имя

URL - это ваш адрес с вашим именем для связи с вами.

  • меня зовут лойола

    Лойола это URI

  • мой адрес TN, Ченнаи 600001.

TN, Chennai 600001, Loyola является URL

Надеюсь, вы понимаете,

Теперь давайте посмотрим на точный пример

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

В приведенном выше примере вы можете общаться со страницей firstpage.html (URI), используя следующий http://www.google.com/fistpage.html (URL).

Следовательно, URI является подмножеством URL, но не наоборот.

Я нашел:


Унифицированный идентификатор ресурса (URI) представляет собой нечто общее. Вы можете разделить URI / URI можно классифицировать как локаторы (унифицированные указатели ресурсов - URL), или как имена (унифицированное имя ресурса -URN), или и то, и другое. Таким образом, в основном, URN функционирует как имя человека, а URL отображает адрес этого человека. Короче говоря, URN определяет идентификатор элемента, в то время как URL-адрес определяет метод его поиска, и, наконец, инкапсуляция этих двух понятий - это URI.

Унифицированный идентификатор ресурса (URI) - это строка символов, которая идентифицирует интернет-ресурс.

Наиболее распространенный URI - это унифицированный указатель ресурса (URL), который идентифицирует адрес интернет-домена. Другой, не очень распространенный тип URI - универсальное имя ресурса (URN).

Другие вопросы по тегам