Что такое URN

computer networkЕдинообразное название (имя) ресурса или URN (англ. Uniform Resource Name) это постоянная последовательность символов, идентифицирующая абстрактный или физический ресурс.

Идея URN родилась из недостатков URL (англ. Uniform Resource Locator) — единообразного определителя местонахождения ресурсов. Время от времени ресурсы в сети Интернет перемещаются, но ссылки на них в виде URL остаются неизменными. Старые URL также становятся бесполезными при реструктуризации ресурсов, переименовании, удалении, перемещении в другой домен DNS. В качестве решения проблемы была предложена концепция URN, создатели которой видят в ней замену URL.

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

Попробуем провести аналогию с реальным миром. Допустим, некто Иван Иванов живёт в Смоленске на улице Герцена, дом 3. Если кто-то спросит его: «Вы кто?», он, разумеется, ответит «Я — Иван Иванов». Вряд ли при этом он будет сообщать свой адрес.

Вернёмся к URN и URL. Идентифицировать человека из нашей аналогии как «Иван Иванов» нам помог бы URN, а вот URL лишь сообщил бы, что кто-то живёт по адресу г. Смоленск, ул. Герцена, 3. Или там даже никто не живёт, возможно, что там офисы организаций или давно пустырь. Этого URL уже не сообщит.

Но всё таки нам как-то нужно знать, где искать ресурс с определённым именем. Для нахождения ресурсов по URN-имени нужна «система разрешения URN-имён» (англ. URN resolution). Тогда человек (или программа), знающий точный URN ресурса, введёт его в систему разрешения и немедленно получит множество конкретных мест (серверов или, скажем, интернет-магазинов), где этот ресурс можно найти. В 2002 году была предложена система DDDS (англ. Dynamic Delegation Discovery System — система динамического обнаружения ресурсов), которая разрешает имена URN в URL-ссылки на конкретные местонахождения ресурсов. При этом и URN, и URL являются частью одной системы идентификации ресурсов URI.

Синтаксис URN

В общем виде URN выглядят следующим образом:

<URN> ::= «urn:» <NID> «:» <NSS>

NID — идентификатор пространства имён (англ. Namespace Identifier). Представляет собой синтаксическую интерпретацию NSS. Не чувствителен к регистру;

NSS — строка из определённого пространства имён (англ. Namespace Specific String). Если в этой строке содержатся символы не из набора ASCII, то они должны быть закодированы в Юникоде (UTF-8) и предварены (каждый из них) знаком процента «%».

Начальная последовательность символов «urn: » не чувствительна к регистру. А идентификаторы пространства имён «urn» и «URN» запрещены вообще, чтобы не возникло путаницы с этой начальной строкой «urn: «.

Подробнее синтаксис URN изложен в спецификации RFC 2141.

Что такое URN
Пример URN. В данном случае это книга, идентифицируемая номером ISBN.

Самоидентифицирующий URN

Эти URN содержат в NID название хеша, используемого для их создания. NSS содержит значение этого хеша, вычисленного из данных идентифицируемого объекта (файла). Такие URN получают свойства хешей, то есть для данных может быть создано множество различных URN, но каждая URN может идентифицировать только один набор данных (файл). Самоидентифицирующие URN используются в составе magnet-ссылок и в HTTP-заголовке X-Content-URN, предложенном в «HTTP Extensions for a Content-Addressable Web» и нашедшем применение в p2p-сети Gnutella2.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *