31 Вопрос: В чем разница между URI, URL и URN?

вопрос создан в Sat, Jul 9, 2016 12:00 AM

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

В чем различия между ними?

    
4112
  1. URL более конкретен, чем URI.
    2009-12-31 07: 09: 09Z
  2. Для веб-мастеров возникает вопрос: В чем разница между URI и URL
    2012-12-21 10: 14: 48Z
  3. Мини-диаграмма Венна: ( URIs ( URLs ) )
    2014-11-13 15: 20: 31Z
  4. Кажется, что URI и URL все еще сильно путают даже те, кто пытался ответить на вопрос. Всем было бы полезно увидеть практические примеры URL, которые не являются URI, примеры URI, которые не являются URL, и примеры, которые являются URL и URI.
    2015-02-08 18: 43: 00Z
  5. Кэти: "Это ваша собака?" Боб: «Было бы правильнее называть его клыком». Кэти: «Нет, он собака. Вы, сэр, педант».
    2015-07-20 18: 49: 26Z
30 ответов                              30                         

Из 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 не любит [ или ], и это потому, что спецификация говорит «не должен» и не «не должен».

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

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

    
1656
2018-12-28 07: 59: 07Z
  1. URN являются только URI с схемой urn: URI может быть классическим URL, URN или просто URI, который не начинается с «urn:» и не ссылается на местоположение ресурса.
    2008-10-06 21: 38: 57Z
  2. Обратите внимание, что RFC 2396 давно устарел в RFC 3986 (но это не меняет фактов ...)
    2010-03-11 12: 20: 46Z
  3. Not " все URL-адреса являются URI ". Это зависит от толкования RFC. Например, в Java парсер URI не любит [ или ], и это потому, что tон говорит, что «не должен» и не «не должен».
    2013-05-16 00: 47: 40Z
  4. @ AdamGent: RFC 3986 1.1.3: «URI может быть далее классифицирован как локатор, имя или оба». Таким образом, если URL является специальным видом URI, это означает, что каждый URL является URI. Не так ли?
    2013-06-16 23: 32: 09Z
  5. @ AdamGent: Это звучит как странная реализация Java, а не как нормативная. java.net.URI doc сам говорит "каждый URL" является URI, абстрактно говоря, но не каждый URI является URL ". И java.net.URL делает странные вещи, такие как проверка равенства URL-адресов путем преобразования имен хостов в IP-адреса (что, в первую очередь, не соответствует RFC 3986 с 6, и разбивает w виртуальных хостов). Я думаю, это просто означает, что стандартная библиотека Java имеет некоторое противоречивое поведение классов.
    2014-03-11 05: 00: 37Z

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

Примеры

  • Роджер Пэйт

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

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

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

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

Популярная путаница

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

  

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

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

Урны

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

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

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

    
3725
2017-05-23 12: 10: 45Z
  1. URNs are different from URLs in this rigid uniqueness constraint Означает ли это, что URL-адреса не уникально идентифицируют местоположение?
    2013-07-11 19: 30: 36Z
  2. Ответ Роджера дает хороший прагматичный совет. За официальным ответом я обращаюсь к W3C, который опубликовал " URI, URL-адреса и URN: ClariФиксация и рекомендации "в 2001 году. В двух словах, W3C говорит, что современный взгляд заключается в том, что все является URI. URL является неформальной концепцией, а не формальной концепцией. И эта путаница восходит к" классической точке зрения ", которая пытался жестко различать категории URI (из которых URL был одной категорией).
    2013-07-26 23: 23: 24Z
  3. .. универсальный указатель ресурса (URL) .. указывает, где идентифицированный ресурс доступен и механизм его получения . Другими словами, не существует такого понятия, как "относительный" URL?
    2014-04-28 07: 51: 38Z
  4. Является ли "earth128: Edward-de-Leau /6000000000569063853" (уникальным для меня по нескольким мультиверсам) URN, URL или URI?
    2014-09-20 03: 06: 25Z
  5. @ edelwater: Я полагаю, это URI, поскольку он только идентифицирует вас, но ничего не говорит о том, как к вам добраться, если только вы не имеете в виду, что earth128 - это какое-то средство межпланетного путешествия :)
    2015-04-27 10: 57: 23Z

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

Есть ли разница междуeen 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-диаграмма Венна

    
584
2019-02-15 17: 51: 59Z
  1. означает "C: \myfile" URI, URL или URN? или ни один из них.
    2015-05-18 07: 36: 09Z
  2. Путь к файлу не является URL-адресом или URI, если на него не наложен префикс file://. Хотя браузеры обычно обрабатывают пути к файлам без форматирования URL. Mozilla публикует свои контрольные примеры для URL-адресов файлов .
    2015-06-08 16: 19: 43Z
  3. Почему они "единообразны"?
    2015-07-05 01: 30: 56Z
  4. 2015-07-05 02: 11: 57Z
  5. Этот ответ гораздо проще понять. Я могу ясно видеть реальные примеры URL & URN. И чтобы каждый мог больше узнать об этом ... danielmiessler.com/study/url-uri
    2017-05-22 07: 41: 58Z

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

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

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

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

* Унифицированное имя ресурса

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

246
2016-04-17 11: 53: 50Z
  1. Полезно отметить фактический URN (чтобы увидеть, как он сравнивается с URL-адресом): urn: isbn: 0-486-27557-4
    2009-12-31 18: 15: 35Z
  2. @ Michael - Насколько я понимаю, ISBN 0486275574 также называет текст и, следовательно, квалифицируется как URN. Я выбираю формат, который, по моему мнению, был бы более знакомым для читателей.
    2009-12-31 18: 47: 09Z
  3. Поэтому имеет ли смысл говорить, что хеш (например, SHA1) файла может быть URN для этого файла?
    2016-06-06 14: 01: 14Z
  4. @ johnsimer Не думайте так, поскольку у вас может быть копия одного файла на том же компьютере, что приведет к тому же хешу и, следовательно, он не уникален.
    2018-02-06 19: 34: 30Z

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

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

URI - /some/page.html

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

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

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

    
135
2015-03-30 23: 53: 15Z
  1. Этот ответ может быть слишком упрощенным, но посмотрите на контекст его вопроса. Ему будет более полезно, если вы будете болтать о пространствах имен XML!
    2009-12-31 12: 18: 19Z
  2. Этот ответ не только неправильный, но и вводит в заблуждение. Оба примера являются URL-адресами. И поскольку каждый URL также является URI, это означает, что оба примера являются URI. Чтобы продемонстрировать разницу между URI и URL, это абсолютно бесполезно.
    2009-12-31 12: 40: 57Z
  3. Это различие в том, что касается CodeIgniter. В каждом случае они используют слово URL или URI, это различие, о котором они говорят. Следовательно, в грандиозной схеме Интернета это не на 100% правильно, а в рамках вопроса ОП (разница в CodeIgniter), этот ответ совершенно верен.
    2010-01-11 11: 13: 00Z
  4. Это неправильно. @ JörgWMittag в основном на точке. URL - это URI, и они «полностью определены»; так что «URL» в этом ответе - оба. Но /some/page.html не является URI. Это «относительный реф», который является своего рода «URI-ссылкой». В сочетании с базовым контекстом URI он может быть преобразован в URI, но сам по себе не является URI. См. раздел 4.1 RFC 3986 . CodeIgniter, вероятно, использует неправильные термины, и это должно быть вызвано; Q (как отредактировано в настоящее время) не оформлено как специфичное для CodeIgniter.
    2014-03-11 05: 33: 19Z
  5. Для будущих людей, которые читают эти комментарии и так же смущены, как и я: этот ответ не был опубликован для этого вопроса. Этот вопрос neВер был связан с CodeIgniter. Был дублирующий вопрос, в котором конкретно упоминался CodeIgniter, который был закрыт и все его ответы перенесены на этот вопрос. Этот ответ был одним из тех, которые были перенесены из старого закрытого вопроса в этот защищенный вопрос. Несмотря на это, я этот ответ вводит в заблуждение. Я понизил это - другие должны сделать то же самое, потому что в его новом доме это неправильно. Автор должен удалить его, или объединение будет отменено.
    2014-10-06 17: 33: 08Z

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

URI = > Унифицированный идентификатор ресурса Идентифицирует полный адрес ресурса i-e, имя или оба.

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

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

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

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

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

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

    
63
2014-10-16 17: 46: 51Z
  1. Я считаю, что вторая иллюстрация неверна. По спецификации url.spec.whatwg.org/#url-writing URL должен быть записан как относительный URL-адрес или абсолютный URL-адрес, за которым следует «#» и фрагмент. Таким образом, идентификатор фрагмента #posts может быть частью URL
    2014-12-04 14: 57: 40Z
  2. Это просто неверно
    2015-02-03 11: 10: 53Z
  3. Две иллюстрации противоречат друг другу.
    2015-06-28 00: 22: 00Z

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

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

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

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

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

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

    
53
2011-12-01 13: 35: 08Z
  1. Нет, я думаю, что вы правы. Семантика URI против URL против URL против URI-ref и т. Д. Для большинства разработчиков бесполезна только потому, что она ведет к бессмысленным (непродуктивным, незначительным для принятия решений) дебатам. Если бы API Google использовал redirect_url вместо redirect_uri, кого-нибудь это действительно волнует?
    2015-04-06 14: 33: 12Z
  

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

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

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

URN:

URL:

  • Формат URL: [scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
  • : //,? и # постоять за себя.
  • схемы: https, ftp, gopher, mailto, news, telnet, file, man, info, whatis, ldap ...
  • Примеры:
    • http: //ip_server /path? query
    • ftp: //ip_server /path
    • электронной почты: Email-адрес
    • новости: телеконференция имя
    • телнет: //ip_server /
    • file: //ip_server /path_segments
    • LDAP???? //HostPort /дп атрибуты области фильтра расширения

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

    
44
2018-09-29 02: 34: 31Z
  1. Незначительный спор: между [доменом] и [портом] должно быть двоеточие. IE: example.com:1234
    2019-03-01 17: 03: 43Z

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

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

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

    
42
2008-10-06 21: 30: 16Z
  1. URL-адреса не являются истинным подмножеством URI. Ты можешь сделатьнедействительные URL с символами [ и ], но не URI.
    2013-05-16 00: 43: 14Z
  2. Квадратные скобки недопустимы ни в URI, ни в URL. Посмотрите этот вопрос, в котором много ссылок на спецификации: Разрешены ли квадратные скобки в URL-адресах? а>. Когда квадратные скобки появляются в одном из них, они должны быть закодированы.
    2015-07-25 10: 44: 12Z

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

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

В этом случае com.mycompany.mynode будет URI, который уникальным образом идентифицирует пространство имен «myPrefix» для всех элементов, которые используют его в моем XML-документе. Это НЕ URL, потому что он используется только для идентификации, а не для поиска чего-либо как такового.

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

Из-за трудностей четкого различия между URI и URL, насколько я помню, W3C больше не делает различий между URI и URL ( http://www.w3.org/Addressing/). р>     

28
2013-08-08 19: 57: 29Z
  1. Возможно, я пропустил эту часть, но я не вижу ссылки на предоставленную ссылку на них, которая устраняет различие между URL и URI, а только признает путаницу и требует спецификации которые неправильно ссылаются на URL, который будет обновлен для ссылки на URI.
    2018-01-10 17: 28: 45Z

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

    
26
2008-10-06 21: 45: 31Z
  1. Я думал, что это было наоборот. URL-адрес ссылается на конкретный объект, а URI может ссылаться на него, концепцию или что-либо еще.
    2008-10-06 21: 30: 00Z
  2. URL-адрес находит ресурс и является своего рода URI, который идентифицирует ресурс.
    2008-10-06 21: 33: 40Z
  3. Это правда, что это одно и то же, потому что определение URL менялось со временем. Раньше URL-адреса представляли собой определенный тип URI, но из-за возникшей путаницы W3C переопределил URL-адрес для обозначения URI.
    2015-04-17 10: 11: 02Z
  4. Я так и сказал.
    2015-04-17 18: 59: 29Z

 URI и URL

  

URI, URL, URN

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

  

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

     

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

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

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

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

URL

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

URI

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

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

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

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

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

  

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

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

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

scheme://authority/path?query

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

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

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

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

  

Википедия

    
15
2016-07-09 17: 46: 26Z
  1. Это не учит меня ничему, что не охвачено другими ответами, которые по крайней мере 6 лет, и которые являются гораздо более полными и фактически пытаются объяснить, как отличать URI от URL.
    2014-09-06 11: 06: 06Z
  2. Важно отметить, что изображение представляет собой диаграмму Венна , даже если оно не похоже на типичное. Я видел, как люди пытаются интерпретировать это как «части URL». На этой диаграмме not сказано, что URI начинаются с URL и заканчиваются URN.
    2015-04-17 10: 03: 57Z

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

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

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

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

Давайте возьмем Apache для примера. Если http://example.com/foo запрашивается с сервера Apache, у вас будут следующие переменные среды набор:

  • 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

Это может быть причиной некоторой путаницы.

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

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

  

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

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

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

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

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

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

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

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

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

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 ... и вы будете правы в любом случае (по крайней мере, в настоящее время в любом случае ...)

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

Меня интересовало то же самое, и я нашел это: http: //docs.kohanaphp .com /хелперы /URL .

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

    
9
2015-04-17 10: 08: 39Z
  1. Этот ответ неверный. URI не является частью URL. Скорее URL-адреса являются типом URI. Кроме того, ссылка в этом ответе не работает (и я не могу найти подходящую замену.)
    2015-04-17 10: 07: 50Z

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

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

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

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

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

Давайте предположим следующее

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

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

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

    Лойола - это URI

  • мой адрес - TN, Chennai 600001.

TN, Chennai 600 001, URL-адрес Loyola

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

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

http://www.google.com/fistpage.html сильный>

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

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

    

6
2015-03-18 09: 08: 17Z
  1. Этот ответ вводит в заблуждение. Цитата из Википедии "Унифицированное имя ресурса (URN) функционирует как имя человека, в то время как унифицированный указатель ресурса (URL) напоминает уличный адрес этого человека. Другими словами: URN определяет идентификатор элемента, в то время как URL предоставляет метод для поиска Это." Также URN и URL являются URI.
    2015-12-28 00: 54: 13Z

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

s3://www-example-com/index.html [рис. 1] сильный> суб> р>

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

http://www.example.com/index.html [рис. 2] сильный> суб> р>

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

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

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

  • рис. 1
- это URI
  • рис. 1
  • - это URN
  • рис. 2 - это URI
  • рис. 2 - это URL
  • URL-адрес для рис. 1 - это http: //www-example -com.s3-website-us-west-2.amazonaws.com/
  • ПРИМЕЧАНИЕ. RFC 3986 определяет URI как scheme://authority/path?query#fragment

        

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

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

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

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

    Я нашел:

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

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

    Ответ неоднозначен. В Java это часто используется следующим образом:

    Унифицированный указатель ресурса (URL) - это термин, используемый для идентификации интернет-ресурса, включая схему (http, https, ftp, news и т. д.). Например, В чем разница между URI, URL и URN?

    Унифицированный идентификатор ресурса (URI) используется для идентификации одного документа на веб-сервере: например, /questions /176264 /what-the-the-разница-между-a-uri-and-a-url

    В Java-сервлетах URI часто ссылается на документ без контекста веб-приложения.

        
    0
    2017-05-23 12: 10: 45Z
    1. Это разница между абсолютным и относительным URL. Это не объясняет отношения URI к URL и URN.
      2012-09-08 08: 43: 22Z
    2. Собственно, это точные примеры. В Интернете это очень часто.
      2013-11-11 03: 49: 38Z
    источник размещен Вот