Описание тега uri
Унифицированный идентификатор ресурса (или URI) - это строка символов, используемая для идентификации имени или ресурса.
Примечание. Текущий стандарт URL по адресу https://url.spec.whatwg.org/#url-representation заменяет RFC 3986 и обходится без использования термина URI, как описано в разделе "Цели":
Стандартизировать термин URL. URI и IRI просто сбивают с толку. На практике один и тот же алгоритм используется для обоих, поэтому их различие не помогает никому. URL также легко побеждает в конкурсе популярности результатов поиска.
Но приведенная ниже информация описывает URI с точки зрения устаревшей спецификации RFC 3986.
Состав
URI может быть унифицированным указателем ресурса url, унифицированным именем ресурса urn или и тем, и другим.
RFC 3986 определяет URI, состоящий из следующих частей:
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
Затем, определяя относительные URI (раздел 5.2), вы можете опустить любой из этих разделов, всегда начиная слева. В псевдокоде это выглядит так:
result = ""
if defined(scheme) then
append scheme to result;
append ":" to result;
endif;
if defined(authority) then
append "//" to result;
append authority to result;
endif;
append path to result;
if defined(query) then
append "?" to result;
append query to result;
endif;
if defined(fragment) then
append "#" to result;
append fragment to result;
endif;
return result;
URI, который вы описываете, является относительным URI без схемы.
Примеры
Например, в следующем URI:
https://stackoverflow.com/questions/tagged/uri?sort=newest&pagesize=50#questions
... компоненты:
-
схема:
https
-
иерархическая часть:
//stackoverflow.com/questions/tagged/uri
-
query:
sort=newest&pagesize=50
-
фрагмент:
questions
Точный синтаксис отдельных компонентов варьируется в зависимости от схемы. Вот некоторые примеры:
-
mailto:[email protected]?subject=Hello&body=Is%20anybody%20home%3F
-
data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=
-
urn:ietf:rfc:3986
URL
URL - это URI, но более конкретный. В дополнение к идентификации веб-ресурса, URL-адрес определяет средства воздействия или получения представления, указывая как его основной механизм доступа, так и местоположение в сети.
Например, URL-адрес http://example.org/wiki/Main_Page относится к ресурсу, идентифицированному как /wiki/Main_Page, представление которого в виде HTML и связанного кода можно получить по протоколу передачи гипертекста (http) с сетевого узла чье доменное имя - example.org.
Ссылка на URI
Ссылка на URI может принимать форму полного URI, или только его части, специфичной для схемы, или даже какого-то ее завершающего компонента - даже пустой строки. Необязательный идентификатор фрагмента, которому предшествует #, может присутствовать в конце ссылки на URI. Часть ссылки перед # косвенно идентифицирует ресурс, а идентификатор фрагмента идентифицирует некоторую часть этого ресурса.
Чтобы извлечь URI из ссылки на URI, программное обеспечение преобразует ссылку на URI в "абсолютную" форму, объединяя ее с абсолютным "базовым" URI в соответствии с фиксированным алгоритмом. Система обрабатывает ссылку на URI относительно базового URI, хотя в случае абсолютной ссылки база не имеет значения. Базовый URI обычно идентифицирует документ, содержащий ссылку на URI, хотя это может быть переопределено декларациями, сделанными в документе или как часть протокола внешней передачи данных. Если базовый URI содержит идентификатор фрагмента, он игнорируется в процессе объединения. Если идентификатор фрагмента присутствует в ссылке URI, он сохраняется во время процесса объединения.
Языки разметки веб-документов часто используют ссылки URI для указания на другие ресурсы, такие как внешние документы или определенные части того же логического документа.
Использование ссылок URI на языках разметки
- В HTML значение атрибута src элемента img предоставляет ссылку на URI, как и значение атрибута href элемента a или link.
- В XML системный идентификатор, появляющийся после ключевого слова SYSTEM в DTD, является ссылкой на фрагмент URI.
- В XSLT значение атрибута href элемента/инструкции xsl: import является ссылкой на URI; аналогично первый аргумент функции document().
Примеры абсолютных URI
- http://example.org/absolute/URI/with/absolute/path/to/resource.txt
- ftp://example.org/resource.txt
- Урна: ISSN: 1535-3613
Примеры ссылок на URI
- https://en.wikipedia.org/wiki/URI#Examples_of_URI_references ("https" задает имя "схемы", "en.wikipedia.org" - "авторитет", "/wiki/URI" - указатель "путь") на эту статью, и "#Examples_of_URI_references" является "фрагментом", указывающим на этот раздел.)
- http://example.org/absolute/URI/with/absolute/path/to/resource.txt
- //example.org/scheme-relative/URI/with/absolute/path/to/resource.txt
- /relative/URI/with/absolute/path/to/resource.txt
- относительная/путь/к /resource.txt
- .. /../../resource.txt
- . /resource.txt#frag01
- resource.txt
- # frag01
- (пустой строки)