Miami-art.ru

Создание и развитие сайта

Uri online judge, uri 6 tha, ури лессер, uri qemu:\/\/\/system

01-02-2024

Перейти к: навигация, поиск

URI (англ. Uniform Resource Identifier) — унифицированный (единообразный) идентификатор ресурса. На английский манер произносится как [ю-ар-а́й], по-русски чаще говорят [у́ри]. URI — это последовательность символов, идентифицирующая абстрактный или физический ресурс. Ранее назывался Universal Resource Identifier — универсальный идентификатор ресурса.

Основы

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

Диаграмма Венна, отображающая подмножества схемы URI: URL и URN.

URI = URL or URN.

URL — (англ. Uniform Resource Locator) это часть URI, которая определяет адрес хоста сетевого ресурса (для несетевых ресурсов эта часть может опускаться).

URN — (англ. Uniform Resource Name), это часть URI, которая определяет имя ресурса на хосте в локальном пространстве имён (и, соответственно, в определённом контексте).

Примеры:
1) URI = http://ru.wikipedia.org/w/index.php?title=URI&stable=0#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D1.8B
где:
URL = http://ru.wikipedia.org
URN = /w/index.php?title=URI&stable=0#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D1.8B
2) URI = ftp://ftp.dlink.ru/pub/ADSL/
где:
URL = ftp://ftp.dlink.ru
URN = /pub/ADSL/
3) URI urn:ISBN:0-395-36341-1
это URI состоящий только из URN, который указывает на ресурс (книгу) 0-395-36341-1 в пространстве имён ISBN, предполагается что хост известен по умолчанию

История

В RFC 1630.

Новая версия URI была определена в Консорциуму Всемирной паутины.

Недостатки

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

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

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

http://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 (англ. International Resource Identifier) — международных идентификаторов ресурсов, в которых можно было бы без проблем использовать символы Юникода, и которые не ущемляли бы права других языков. Хотя заранее сложно сказать, смогут ли когда-либо идентификаторы IRI заменить URI, имеющие столь широкое употребление.

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

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

Структура URI

Структура URI очень гибка, синтаксис не сложен. В базовом виде URI представляется как:

URI = URL + URN 
URL = <схема>://<идентификатор-хоста-ресурса-в-зависимости-от-схемы> URN = <имя-ресурса-на-хосте-в-зависимости-от-схемы-и-контекста>

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

схема 
схема обращения к ресурсу (часто указывает на сетевой протокол), например http, ftp, file, mailto, urn
идентификатор-в-зависимости-от-схемы 
непосредственный идентификатор ресурса, вид которого зависит от выбранной схемы обращения к ресурсу

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

Процесс разработки новых схем описан в документе RFC) сейчас находятся в процессе переработки.

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

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

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
 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 от URL

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

Примеры URI

Абсолютные URI

  • http://ru.wikipedia.org/wiki/URI
  • ftp://ftp.is.co.za/rfc/rfc1808.txt
  • file://C:\UserName.HostName\Projects\Wikipedia_Articles\URI.xml
  • ldap://[2001:db8::7]/c=GB?objectClass?one
  • mailto:John.Doe@example.com
  • sip:911@pbx.mycompany.com
  • news:comp.infosystems.www.servers.unix
  • data:text/plain;charset=iso-8859-7,%be%fe%be
  • tel:+1-816-555-1212
  • telnet://192.0.2.16:80/
  • urn:oasis:names:specification:docbook:dtd:xml:4.1.2

Ссылки URI

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

relative/path/to/resource.txt

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

resource.txt

/resource.txt#frag01

#frag01

[пустая строка] — эквивалентно разбору идентификатора парсером с результатом [пустая строка], то есть ссылка идет на объект по умолчанию в схеме по умолчанию[источник не указан 1358 дней]

См. также

Ссылки

  • RFC 3986 / STD 66 (от 2005 года)
  • RFC 2396 (от 1998 года) — устаревшая версия синтаксиса
  • Рабочая группа URI
  • Кириллические URI
  • Деятельность W3C по развитию URI
  • Схемы URI, зарегистрированные в IANA

Примечания

  1. RFC 3986.


Uri online judge, uri 6 tha, ури лессер, uri qemu:\/\/\/system.

Фёдоров, Сергей, Мусаэльян, Владимир Гургенович, Файл:F6U NAN1-48.jpg, Чемпионат мира по плаванию 2001.

© 2018–2023 miami-art.ru, Россия, Смоленск, ул. Загорская 8, офис 99, +7 (4812) 12-23-90