Расставляй правильно приоритеты и не отвлекайся на мелочи

Что такое URI, URL, URN и чем они различаются

Пост из серии «Ликбез». Всегда хотел это понять, но значимость его была настолько мала, что всегда находился повод этого не делать.

А вы задавались вопросом: URL — что это?

Всегда с таким сталкиваюсь, но до сих пор не желал понять в чем различие между терминами URI, URL, URN.

По началу, данная статья была результатом перевода "в лоб", в результате чего по ней разгорелись довольно нешуточные комментарии.
Позже, я решил переосмыслить чужие доводы и отчасти переписал первоисточник, стараясь внести ясность в повествование.
Диаграмма семейства URI, URL, URN

Вы когда-нибудь обращали внимание на адресную строку в Вашем браузере?
Что это? URI, URL или URN?
Многие из нас не делают различий между URI, URL, URN, а кое-кто даже и не слышал терминов URI и URN, все просто пользуются термином URL.
Давайте вместе попытаемся разобраться в этом.

Расшифровка аббревиатур

URL - Uniform Resource Locator (унифицированный определитель местонахождения ресурса)

URN - Unifrorm Resource Name (унифицированное имя ресурса)

URI - Uniform Resource Identifier (унифицированный идентификатор ресурса)

Внимание! Далее в мелочах кроется истина, и пока ничего не понятно, - какая-то каша, но, едем дальше.

В чем различия

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

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

URI: Это лишь обобщенное понятие (множество) идентификации ресурса, включающее в нашем случае как URL, так и URN, как по отдельности, так и совместно. Т.е. мы можем считать, что: URI = URL или URI = URN или URI = URL + URN

Подведем итоги

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

P.S.
Да простят меня собеседники, но, чтобы не вводить в заблуждение читателей, мной была удалена часть спорных комментариев.
6 комментариев на статью:
  • Vitaly:

    Интересно, всегда думал, URL он и в африке URL

  • crystalbit:

    Когда в первый раз увидел URI, подумал, что третья буква таки L, но опечатка, и она маленькая :)

  • Свиттер:

    К сожалению, повсеместно бытует термин URL. URI используется редко, хотя URL объявлен как «deprecated».

  • admin:

    Спасибо, теперь мне гораздо легче … серьезно :)

  • likileil:

    Какая у вас дискуссия тут…
    и так:
    URI — Uniform Resource Identifier (унифицированный идентификатор ресурса)

    URL — Uniform Resource Locator (унифицированный определитель местонахождения ресурса)

    URN — Unifrorm Resource Name (унифицированное имя ресурса)

    Поиграем с тождествами:
    Так как URL появился в 1990, а URI в 94 и назывались универсальными. Эти 4 года все равно определялся URL как местонахождение файла (Ведь ресурс это не сайт, это может быть любой файл)=> URL=URI

    Унифицированное имя ресурса URN возникло из-за существенных недостатков системы URL, и URL не может быть URN и наоборот.

    И наконец URN это URI, который только идентифицирует ресурс в определённом пространстве имён (и, соответственно, в определённом контексте), но не указывает его местонахождения.
    А так как URI должен идентифицировать и местоположение, то должен быть еще и URL => URI=URN, URI=URL, URI=URL+URN

    URN включает в себя название пространства имен и идентификатора в этом пространстве.

    URI,URL = http://handynotes.ru/2009/09/uri-url-urn.html
    (полная идентификация файла, место(Сайт(сервер)), Каталоги, подкаталоги, имя файла, расширение)
    URL,URI = http://handynotes.ru
    (место(Сайт(сервер))
    URN,URI = /2009/09/uri-url-urn.html
    (Название пространства имен и идентификатора в этом пространстве, иначе можно записать
    %systemroot%/2009/09/uri-url-urn.html

Ответить
Обязательные поля помечены *