URI - это стандарт идентификации документов с использованием короткой строки из цифр, букв и символов. Они определены в RFC 3986 - Унифицированный идентификатор ресурса (URI): общий синтаксис . Все URL, URN и URC типов URI.
Содержит информацию о том, как извлечь ресурс из его местоположения. Например:
URL-адреса всегда начинаются с протокола (http
) и обычно содержат такую информацию, как имя сетевого узла (example.com
) и часто путь к документу (/foo/mypage.html
). URL могут иметь параметры запроса и идентификаторы фрагментов.
Идентифицирует ресурс по уникальному и постоянному имени, но не обязательно говорит вам, как найти его в Интернете. Обычно начинается с префикса 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. Примером будет data:,Hello%20World
.
Часто задаваемые вопросы
Я слышал, что больше не должен произносить URL, почему?
Спецификация W3 для HTML гласит, что href
тега привязки может содержать URI, а не только URL. Вы должны иметь возможность ввести URN, например, <a href="urn:isbn:0451450523">
. Ваш браузер затем разрешит этот URN в URL и загрузит книгу для вас.
Знают ли какие-либо браузеры, как получать документы по URN?
Не то, что я знаю, но современный веб-браузер реализует схему URI данных.
Разница между URL и URI связана с тем, является ли она относительной или абсолютной?
Нет. Как относительные, так и абсолютные URL-адреса являются URL-адресами (и URI).
Различие между 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 была удалена.