Что такое URI, URL, URN и чем они различаются
Пост из серии «Ликбез». Всегда хотел это понять, но значимость его была настолько мала, что всегда находился повод этого не делать.
А вы задавались вопросом: URL — что это?
Всегда с таким сталкиваюсь, но до сих пор не желал понять в чем различие между терминами 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. Да простят меня собеседники, но, чтобы не вводить в заблуждение читателей, мной была удалена часть спорных комментариев.
Интересно, всегда думал, URL он и в африке URL
Когда в первый раз увидел URI, подумал, что третья буква таки L, но опечатка, и она маленькая :)
К сожалению, повсеместно бытует термин URL. URI используется редко, хотя URL объявлен как «deprecated».
Спасибо, теперь мне гораздо легче … серьезно :)
Какая у вас дискуссия тут…
и так:
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
Спасибо!