Uniform Resource Locator (URL)
URL (Uniform Resource Locator) указывает путь (локацию) объекта и метод получения доступа к нему. Например,
http://en.wikipedia.org/wiki/Main_Page
указывает на главную страницу английской Википедии и в качестве метода доступа предлагает использовать протокол http.
Стандарт URL изложен в документе RFC 1738, доступном по ссылке http://www.ietf.org/rfc/rfc1738. В этом документе указаны описаны различные схемы для протоколов ftp, http, nntp и т.д. Послкольку URL – это частный случай URI, его схема в общем случае выглядит так же, однако для разных протоколов актуальны те или иные ее части. Например, для протокола telnet, схема URL выглядит следующим образом:
telnet://<user>:<password>@<host>:<port>/
Uniform Resource Name (URN)
Унифицированные имена ресурсов (URN) предназначены, чтобы служить постоянными, независимыми от расположения, идентификаторами ресурсов и разработаны для упрощения отображения других пространств имен (которые совместно используют свойства URN) в URN-пространство. Таким образом, синтаксис URN позволяет закодировать символьные данные в форме, которая может быть отправлена посредством существующих протоколов, записана при помощи большинства клавиатур, и т.д. В отличие от URL, который ссылается на какое-то место, где хранится документ, URN ссылается на сам документ, и при перемещении документа в другое место ссылка не изменится.
URN определяется стандартом RFC 1737, доступным по ссылке http://www.ietf.org/rfc/rfc1737, и включает в себя идентификатор (название) пространства имен и имя в этом пространстве. URN состоит из NID (Namespace Identifier, идентификатор пространства имен) и NSS (Namespace-Specific String – имя, уникальное для данного пространства имен). Типичный пример URN – это имя книги в стандарте ISDN. Схематично это выглядит следующим образом:
Таким образом, формально структура URN имеет следующий вид:
"urn:" <NID> ":" <NSS>
«urn:» – схема (обязательная, регистронезависимая часть, с которой начинаются все URN).
NID – Namespace Identifier, идентификатор пространства имен. Данная компонента определяет синтаксическую интерпретацию компоненты NSS. Минимальная длина – 2 символа, максимальная – 32, разрешенные символы: латинские буквы, цифры, символ "-". NID должен начинаться только с буквы или цифры. Отметим, что слово «urn» для NID является зарезервированным, дабы избежать неоднозначности при определении URN в целом.
NSS – Namespace Specific String. Данная компонента служит непосредственно для передачи каких-либо данных.
Типичным примером URN является описание книги в формате ISBN. Схематично это выглядит следующим образом:
URN могут использоваться для описания различных объектов. Рассмотрим пример описания некоторого человека. URN в данном случае будет выглядеть следующим образом:
Паспорт Украины: Иванов Иван Иванович, серия 1234 номер 123456.
Здесь «паспорт Украины» – название идентификатора пространства имен, а «Иванов Иван Иванович, серия 1234 номер 123456» – это уникальное имя в этом пространстве.
С помощью данного URN мы однозначно идентифицируем человека, но не сможем определить его местоположение. Здесь нам поможет URL. Выглядеть это может примерно так:
Машина: город N/улица M/квартира L.
здесь «машина» – это метод получения доступа, а «город N...» – путь.
Таким образом, URN идентифицирует ресурс по имени и отвечает на вопрос «Что?», а URL указывает путь и метод доступа к ресурсу и отвечает на вопросы «Где?» и «Как?». Если URI – общая концепция идентификатора, то URL и URN – конкретные реализации данной концепции. Для URI Википедия приводит следующие примеры:
Https://ru.wikipedia.org/wiki/URI
Ftp://ftp.is.co.za/rfc/rfc1808.txt
file://C:\UserName.HostName\Projects\Wikipedia_Articles\URI.xml
File:///C:/file.wsdl