Interested Article - URI

URI ( /ˌjuː ɑːr ˈaɪ/ англ. Uniform Resource Identifier ) — унифицированный (единообразный) идентификатор ресурса. URI — последовательность символов, идентифицирующая абстрактный или физический ресурс. Ранее назывался Universal Resource Identifier — универсальный идентификатор ресурса.

Основы

URI — символьная строка , позволяющая идентифицировать какой-либо ресурс: документ , изображение, файл , службу, ящик электронной почты и т. д. Прежде всего, речь идёт о ресурсах сети Интернет и Всемирной паутины . URI предоставляет простой и расширяемый способ идентификации ресурсов . Расширяемость URI означает, что уже существуют несколько схем идентификации внутри URI, и ещё больше будет создано в будущем.

Связь между URI, URL и URN

URI является либо указателем ресурса URL , либо именем ресурса URN , либо одновременно обоими.

URL — это URI, который, помимо идентификации ресурса, предоставляет ещё и информацию о местонахождении этого ресурса. А URN — это URI, который только идентифицирует ресурс в определённом пространстве имён (и, соответственно, в определённом контексте ), но не указывает его местонахождение. Например, URN urn:ISBN:0-395-36341-1 — это URI, который указывает на ресурс (книгу) 0-395-36341-1 в пространстве имён ISBN , но, в отличие от URL, URN не указывает на местонахождение этого ресурса: в нём не сказано, в каком магазине её можно купить или на каком сайте скачать. Впрочем, в последнее время появилась тенденция говорить просто URI о любой строке-идентификаторе, без дальнейших уточнений. Так что, возможно, термины URL и URN скоро уйдут в прошлое.

Поскольку URI не всегда указывает на то, как получить ресурс, в отличие от URL, а только идентифицирует его, это даёт возможность описывать с помощью RDF (Resource Description Framework) ресурсы, которые не могут быть получены через Интернет (например, личность, автомобиль, город и проч.).

История

В 1990 году в Женеве , Швейцария , в стенах Европейского совета по ядерным исследованиям ( фр. Conseil Européen pour la Recherche Nucléaire, CERN ) британским учёным Тимом Бернерсом-Ли был изобретён определитель местонахождения ресурса URL . Так как URL является наиболее используемым подмножеством URI, то этот же 1990 год принято считать годом рождения URI. Но, строго говоря, концепция URI была документально оформлена лишь в июне 1994 года в документе .

Новая версия URI была определена в 1998 году в , тогда же слово Universal в названии было заменено на Uniform . В декабре 1999 года ввёл в спецификацию URI небольшие изменения, обеспечив совместимость с IPv6 . В августе 2002 года анонсировал устаревание термина URL и приоритет URI. Текущая структура и синтаксис URI регулируется стандартом , вышедшим в январе 2005 года . Многие новейшие технологии семантической паутины (например, RDF ) базируются на стандарте URI. Сейчас ведущая роль в развитии URI принадлежит Консорциуму Всемирной паутины .

Недостатки

URL стал фундаментальным нововведением в Интернете , поэтому принципы URI документально закреплялись так, чтобы обеспечить полную совместимость с URL. Отсюда появился и большой недостаток URI, пришедший как наследство от URL. В URI, как и в URL, можно использовать только ограниченный набор латинских символов и знаков препинания (даже меньший, нежели в ASCII ). Иными словами, если мы захотим использовать в URI символы кириллицы , или иероглифы , или, скажем, специфические символы французского языка , то нам придётся кодировать URI таким же образом, каким в Википедии кодируются URL с символами Юникода . Например, строка вида:

https://ru.wikipedia.org/wiki/Кириллица

кодируется в URL как:

https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0

Поскольку такому преобразованию подвергаются буквы всех алфавитов, кроме используемой в английском языке латиницы , то URI со словами на других языках (даже европейских) утрачивают способность восприниматься людьми. А это входит в грубое противоречие с принципом интернационализма , провозглашаемого всеми ведущими организациями Интернета , включая W3C и ISOC . Эту проблему призван решить стандарт IRI ( англ. Internationalized Resource Identifier ) — международных идентификаторов ресурсов, в которых можно было бы без проблем использовать символы Юникода, и которые не ущемляли бы права других языков . Хотя заранее сложно сказать, смогут ли когда-либо идентификаторы IRI заменить URI, имеющие столь широкое употребление.

Ещё одной интересной вариацией URI является расширяемый идентификатор ресурса XRI ( англ. Extensible Resource Identifier ), разработанный организацией OASIS . Этот формат стремится создавать идентификаторы, которые были бы совершенно независимы от контекста, то есть не зависели бы ни от протокола , ни от домена , ни от пути, ни от приложения , ни от платформы — были бы совершенно независимыми.

Также и сам создатель URI, Тим Бернерс-Ли, говорил, что система доменных имён , лежащая в основе URL, — плохое решение, навязывающее ресурсам иерархическую архитектуру, мало подходящую для гипертекстового веба.

Структура URI

В этой записи:

схема
схема обращения к ресурсу (часто указывает на сетевой протокол), например http , ftp , file , ldap , mailto, urn
иерархическая-часть
содержит данные, обычно организованные в иерархической форме, которые, совместно с данными в неиерархическом компоненте запрос , служат для идентификации ресурса в пределах видимости URI-схемы. Обычно иер-часть содержит путь к ресурсу (и, возможно, перед ним, адрес сервера, на котором тот располагается) или идентификатор ресурса (в случае URN).
запрос
этот необязательный компонент URI описан выше.
фрагмент
(тоже необязательный компонент)

:

позволяет косвенно идентифицировать вторичный ресурс посредством ссылки на первичный и указанием дополнительной информации. Вторичный идентифицируемый ресурс может быть некоторой частью или подмножеством первичного, некоторым его представлением или другим ресурсом, определённым или описанным таким ресурсом.

Часть идентификатора URI без схемы обращения к ресурсу часто называется «ссылкой URI» ( англ. URI reference ). Прецеденты применения ссылок URI имеются в HTML , XHTML , XML и XSLT . Процесс превращения ссылки URI в абсолютную форму URI называют «разрешением URI» ( англ. URI resolution ).

Процесс разработки новых схем описан в документе . Новые схемы должны регистрироваться в организации IANA ( англ. Internet Assigned Numbers Authority ), процедура регистрации зафиксирована в . Оба указанных запроса комментариев ( RFC ) сейчас находятся в процессе переработки.

Разбор структуры URI

Для так называемого «па́рсинга» URI ( англ. parsing ), то есть для разложения URI на составные части и их последующей идентификации, удобнее всего использовать систему регулярных выражений , доступную почти во всех современных языках программирования. Для разбора URI в стандарте рекомендуется использовать следующий шаблон:

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
 12            3  4          5       6  7        8 9

Этот шаблон включает в себя 9 обозначенных выше цифрами групп (подробнее о шаблонах и группах см. Регулярные выражения ), которые наиболее полно и точно разбирают типичную структуру URI, где:

  • группа 2 — схема,
  • группа 4 — источник,
  • группа 5 — путь,
  • группа 7 — запрос,
  • группа 9 — фрагмент.

Таким образом, если при помощи данного шаблона разобрать, например, такой типичный идентификатор URI:

http://www.ics.uci.edu/pub/ietf/uri/#Related

то 9 вышеуказанных групп шаблона дадут следующие результаты соответственно:

  1. http:
  2. http
  3. //www.ics.uci.edu
  4. www.ics.uci.edu
  5. /pub/ietf/uri/
  6. нет результата
  7. нет результата
  8. #Related
  9. Related

Примеры URI

Абсолютные 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
  • file:///Users/John/Documents/Projects/Web/MyWebsite/about.html
  • ldap://[2001:db8::7]/c=GB?objectClass?one
  • mailto:[email protected]
  • sip:[email protected]
  • news:comp.infosystems.www.servers.unix
  • data: text/plain;charset=iso-8859-7,%be%be%be
  • tel:+1-816-555-1212
  • telnet://192.0.2.16:80/
  • urn:oasis:names:specification:docbook:dtd:xml:4.1.2
  • urn:oid:1.2.840.113549.1.1.1

Относительные URI

/relative/URI/with/absolute/path/to/resource.txt

//example.org/scheme-relative/URI/with/absolute/path/to/resource.txt

relative/path/to/resource.txt

../../../resource.txt

resource.txt

/resource.txt#frag01

#frag01

[пустая строка]

См. также

Примечания

  1. (англ.) . Copyright (C) The Internet Society (2005). Дата обращения: 8 апреля 2023. 8 апреля 2023 года.

Ссылки

  • / STD 66 (от 2005 года)
  • (от 1998 года) — устаревшая версия синтаксиса
Источник —

Same as URI