URI

URI

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

Содержание

Основы

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

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

Диаграмма Венна, отображающая подмножества схемы 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 года в документе RFC 1630.

Новая версия URI была определена в 1998 году в RFC 2396, тогда же слово Universal в названии было заменено на Uniform. В декабре 1999 года RFC 2732 ввёл в спецификацию URI небольшие изменения, обеспечив совместимость с IPv6. В августе 2002 года RFC 3305 анонсировал устаревание термина URL и приоритет URI. Текущая структура и синтаксис URI регулируется стандартом RFC 3986, вышедшим в январе 2005 года. Многие новейшие технологии семантической паутины (например, RDF) базируются на стандарте URI. Сейчас ведущая роль в развитии 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 = [ схема ":" ] иер-часть [ "?" запрос ] [ "#" фрагмент ]

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

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

Цитата из RFC 3986: The fragment identifier component of a URI allows indirect identification of a secondary resource by reference to a primary resource and additional identifying information. The identified secondary resource may be some portion or subset of the primary resource, some view on representations of the primary resource, or some other resource defined or described by those representations.

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

Процесс разработки новых схем описан в документе RFC 2718. Новые схемы должны регистрироваться в организации IANA (англ. Internet Assigned Numbers Authority), процедура регистрации зафиксирована в RFC 2717. Оба указанных запроса комментариев (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

Абсолютные 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

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

См. также

Ссылки

Примечания

  1. Рекомендуется в RFC 3986.



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "URI" в других словарях:

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

  • Uri — may refer to:Geography: * Canton of Uri is a canton (region) of Switzerland * Uri (India), a region and town in Kashmir * Uri (SS), a city in Sardinia, Italy * Úri, a village in Pest county, Hungary * Sumerian URI, the land of AgadeURI, a three… …   Wikipedia

  • urî — URÎ, urăsc, vb. IV. 1. tranz. A avea un puternic sentiment de antipatie, de duşmănie împotriva cuiva sau a ceva; a nu putea suferi pe cineva sau ceva. 2. refl. impers. (Construit cu dativul) A se plictisi, a se sătura de ceva sau de cineva. ♢… …   Dicționar Român

  • uri — urì interj., urỹ NdŽ, Jn, Aln, ùri kartojant 1. nusakomas puolančio šuns(ar šunų) urzgimas: Tik urỹ urỹ ir apipuolo mane šunes K.Būg(Ds). Urì urì šunes kad pradeda loti Šmn. ║ Ds sakoma pjudant šuniu. 2. Vžns nusakomas triukšmingas… …   Dictionary of the Lithuanian Language

  • Uri — Uri; s: Schweizer Kanton. * * * URI   [Abk. für Uniform Resource Identifier, dt. »einheitlicher Kennzeichner von (Internet )Ressourcen«] der oder die, eine Zeichenfolge, die ein Objekt (Ressource) im Internet …   Universal-Lexikon

  • Uri — Uri, einer der drei schweizer. Urkantone, grenzt im O. an Glarus und Graubünden, im S. an Tessin, im W. an Wallis, Bern und Unterwalden, im N. an Schwyz und hat ein Areal von 1076 qkm (19,5 QM.). Das Ländchen besteht aus dem von Hochgebirgen… …   Meyers Großes Konversations-Lexikon

  • Úri — Administration …   Wikipédia en Français

  • Uri Or — Date of birth 22 April 1939 (1939 04 22) (age 72) Place of birth Kfar Haim, Mandate Palestine …   Wikipedia

  • Uri — cant. suisse, au S. du lac des Quatre Cantons, le moins peuplé des cantons et l un des plus accidentés (plus. sommets dépassent 3 000 m); 1 076 km²; 34 170 hab.; ch. l. Altdorf. Le Saint Gothard réunit le cant. au Tessin. En 1291, son… …   Encyclopédie Universelle

  • URI — puede referirse a: Unidad de Reacción Inmediata. En informática, Uniform Resource Identifier, una cadena corta de caracteres que identifica inequívocamente un recurso. Unión Radiotelegráfica Internacional, organismo antecesor de la Unión… …   Wikipedia Español

  • Uri — Uri. Am Fuße steiler Gebirge die in der Geschichte des freundlicher Umgebung Tell s Geburtsort, das Dorf Bürglen, und am vierwaldstädter See seine Kapelle; bei Amsteg die Trümmer der der Sage nach vom Landvoigt Geßler erbauten Burg Zwing Uri; das …   Damen Conversations Lexikon


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»