Открыть сервис

URI

URI (Uniform Resource Identifier, унифицированный идентификатор ресурса) — это компактная строка символов, однозначно идентифицирующая абстрактный или физический ресурс в сети. URI служит основой для адресации в интернете и веб-технологиях, обеспечивая единообразный способ ссылки на документы, изображения, сервисы, части данных и другие объекты. В отличие от URL (Uniform Resource Locator), URI может не указывать на способ доступа к ресурсу, а только на его имя (URN). Стандарт URI определён в документах RFC 3986 и RFC 2396 (устаревший).

История и развитие

Концепция URI была разработана в начале 1990-х годов как часть архитектуры Всемирной паутины. Первоначально Тим Бернерс-Ли и его коллеги из CERN (Европейская организация по ядерным исследованиям) предложили универсальную схему адресации для гипертекстовых документов. В 1994 году был опубликован RFC 1630, который ввёл термин «Universal Resource Identifier» (универсальный идентификатор ресурса). Позднее, в 1998 году, в RFC 2396 термин был переименован в «Uniform Resource Identifier» (унифицированный идентификатор ресурса), чтобы подчеркнуть его единообразие, а не всеобщность. В 2005 году вышла текущая версия спецификации — RFC 3986, которая уточнила синтаксис и семантику URI.

Структура URI

URI состоит из нескольких обязательных и необязательных компонентов, разделённых определёнными символами. Общая схема выглядит следующим образом:

`` схема:[//[логин:пароль@]хост[:порт]][/путь][?запрос][#фрагмент] ``

Пример полного URI: `` pass@example.com:8080/path/to/resource?key=value&lang=ru#section2" target="_blank" rel="nofollow noopener">https://user:pass@example.com:8080/path/to/resource?key=value&lang=ru#section2 ``

Классификация URI

URL (Uniform Resource Locator)

URL — это подмножество URI, которое не только идентифицирует ресурс, но и указывает на способ его получения (локацию). Большинство URI, используемых в вебе, являются URL. Например, https://ru.wikipedia.org/wiki/URI` — это URL, так как он указывает на протокол (HTTPS) и адрес сервера для доступа к странице.

URN (Uniform Resource Name)

URN — это подмножество URI, которое идентифицирует ресурс по имени в определённом пространстве имён, но не указывает на его местоположение. URN предназначены для постоянной идентификации ресурсов независимо от их местонахождения. Формат URN: urn:namespace:identifier. Примеры:

  • urn:isbn:0-395-36341-1 — идентификация книги по международному стандартному книжному номеру (ISBN).
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 — уникальный идентификатор UUID.

Другие подтипы

Кроме URL и URN, существуют и другие схемы URI, такие как data: (встраивание данных непосредственно в URI), mailto: (адрес электронной почты), tel: (телефонный номер), file: (локальный файл). Все они являются URI, но не обязательно URL, так как не всегда указывают на сетевой ресурс.

Синтаксические правила и кодирование

URI могут содержать только определённый набор символов: буквы латинского алфавита (A-Z, a-z), цифры (0-9), а также специальные символы, такие как дефис (-), точка (.), подчёркивание (_), тильда (~) и некоторые другие. Все остальные символы (включая пробелы, кириллицу, знаки пунктуации) должны быть закодированы в формате процентного кодирования (percent-encoding). Например, пробел кодируется как %20, кириллическая буква «А» — как %D0%90. Кодирование позволяет передавать URI через протоколы, поддерживающие только ASCII.

Нормализация URI

Для обеспечения уникальности и сопоставимости URI применяется нормализация — приведение URI к каноническому виду. Основные правила нормализации:

  • Приведение схемы и хоста к нижнему регистру (например, HTTP://EXAMPLE.COMhttp://example.com`).
  • Удаление избыточных сегментов пути (например, /a/b/../c/a/c).
  • Добавление завершающего слеша в пути, если это подразумевается схемой (например, http://example.comhttp://example.com/).
  • Декодирование символов, которые не обязательно кодировать (например, %41A).

Применение URI

URI используются повсеместно в информационных технологиях:

  • Веб-браузеры: адресная строка браузера содержит URI для загрузки веб-страниц, изображений и других ресурсов.
  • Веб-сервисы и API: RESTful API используют URI для идентификации ресурсов (например, https://api.example.com/users/123`).
  • XML и RDF: URI служат идентификаторами для элементов и атрибутов в XML-документах, а также для ресурсов в семантической паутине (RDF).
  • Системы управления контентом: URI используются для создания постоянных ссылок на статьи, страницы и медиафайлы.
  • Базы данных: URI могут идентифицировать записи или объекты в распределённых системах.
  • Электронная почта: протокол SMTP использует URI схемы mailto: для создания ссылок на адреса.

URI в контексте законодательства РФ

В Российской Федерации использование URI регулируется общими нормами об информации и связи. Согласно Федеральному закону «Об информации, информационных технологиях и о защите информации» (№ 149-ФЗ), URI являются частью сетевых адресов, которые могут быть включены в Единый реестр запрещённой информации (реестр Роскомнадзора). Доступ к URI, содержащим материалы, признанные экстремистскими или террористическими, ограничивается. Например, если URI ведёт на сайт организации, признанной террористической и запрещённой в РФ (например, ИГИЛ — террористическая организация, запрещена в РФ), такой URI блокируется провайдерами. Также URI, содержащие призывы к экстремистской деятельности или дискредитации органов власти, могут быть внесены в реестр и заблокированы.

Интересные факты

  • Максимальная длина URI не ограничена стандартом, но на практике браузеры и серверы имеют ограничения. Например, Internet Explorer поддерживал URI длиной до 2083 символов, а сервер Apache — до 8192 символов.
  • Схема javascript: (например, javascript:void(0)) не является стандартным URI, но используется в HTML для выполнения кода.
  • В 2001 году была предложена схема info: для идентификации информационных ресурсов, не имеющих сетевого адреса, но она не получила широкого распространения.
  • URI могут быть относительными — они указывают на ресурс относительно текущего контекста (например, /images/logo.png в HTML-документе). Относительные URI преобразуются в абсолютные с помощью базового URI.

Источники

  • RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax (2005)
  • RFC 2396 — Uniform Resource Identifiers (URI): Generic Syntax (1998, устаревший)
  • RFC 1630 — Universal Resource Identifiers in WWW (1994)
  • Бернерс-Ли, Т. «Плетя паутину: истоки и будущее Всемирной паутины» (1999)
  • Федеральный закон «Об информации, информационных технологиях и о защите информации» от 27.07.2006 № 149-ФЗ

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →