Что такое URI, URL и URN: чем отличаются?

Простыми словами о URI, URL и URN

  1. URIUniform Resource Identifier / Идентификатор ресурса
    • Общий термин, который включает в себя как URL, так и URN.
    • URI – общее понятие для идентификации ресурсов в интернете.
  2. URN – Uniform Resource Name / Имя ресурса
    • URN – подтип URI.
    • URN обозначает идентификатор ресурса по его имени.
    • Пример URN: urn:isbn:978-0-13-713526-6.
  3. URLUniform Resource Locator / Локатор (местоположение) ресурса
    • URL – еще один подтип URI.
    • URL обозначает идентификатор ресурса по его местоположению.
    • Пример URL: https://www.examplelibrary.com/books/978-0-13-713526-6.

URN и URL являются конкретными типами URI. URN указывает на ресурс по его имени, а URL – по его местоположению. URI – общий термин, включающий в себя URN и URL.

Стандарты, регулирующие URI, URL и URN

  1. URI (Uniform Resource Identifier):
    • RFC 3986 – “Uniform Resource Identifier (URI): Generic Syntax” – описывает общий синтаксис URI.
  2. URL (Uniform Resource Locator):
    • RFC 1738 – “Uniform Resource Locators (URL)” – изначальный стандарт для URL, определяющий формат URL и некоторые базовые схемы, такие как http и ftp.
    • RFC 1808 – “Relative Uniform Resource Locators” – расширяет стандарт URL, добавляя поддержку относительных ссылок.
  3. URN (Uniform Resource Name):
    • RFC 2141 – “URN Syntax” – устанавливает общий синтаксис для URN.
    • RFC 3406 – “Uniform Resource Names (URN) Namespace Definition Mechanisms” – определяет механизмы определения пространств имен URN.
  4. Общие стандарты для URI:
    • RFC 3987 – “Internationalized Resource Identifiers (IRIs)” – расширяет стандарт URI для поддержки международных символов.
  5. Примечание относительно терминов URL и URN:
    • RFC 3305 – “Report from the Joint W3C/IETF URI Planning Interest Group: Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations” – предоставляет рекомендации по использованию терминов URI, URL и URN для избежания путаницы.

Введение в URI

Определение URI

URI (Uniform Resource Identifier) – компактная строка символов, которая служит для идентификации ресурса или группы ресурсов в Интернете. URI состоит из двух основных компонентов: идентификатора ресурса и схемы идентификации. Он позволяет уникально определить и обращаться к ресурсам, таким как веб-страницы, изображения, видео, документы и другие типы файлов.

Cтандарт RFC 3986

Uniform Resource Identifier (URI): Generic Syntax: https://datatracker.ietf.org/doc/html/rfc3986

Стандарт URI формально определен в документе RFC 3986, изданном Internet Engineering Task Force (IETF). RFC 3986, под названием “Uniform Resource Identifier (URI): Generic Syntax”, является ключевым документом, который устанавливает общие правила для синтаксиса и представления URI.

Структура URI

URI: scheme, authority, path, query, fragment.
URI: схема, авторитет, путь, запрос, фрагмент.

  • Схемы идентификации (например, “http”, “https”, “ftp”) – определяют протокол или схему, с помощью которой будет осуществляться доступ к ресурсу.
  • Авторитетный компонент (например, доменное имя или IP-адрес) – указывает на конкретное местоположение ресурса в сети.
  • Путь – указывает на конкретное место в иерархии ресурсов.
  • Запрос (опционально) – содержит дополнительные параметры, передаваемые при обращении к ресурсу.
  • Фрагмент (опционально) – идентифицирует фрагмент внутри ресурса.

Комбинация всех этих компонентов создает полный URI. Компоненты разделяются специальными символами, такими как “:”, “/”, “?”, “&”, “=”, “#” и другими.

URL: Определение и структура

Что такое URL?

URL (Uniform Resource Locator) – подтип URI, который определяет местоположение ресурса и способ доступа к нему. URL являются наиболее распространенным типом URI и широко используются в веб-разработке.

Структура URL

URL (Uniform Resource Locator) имеет следующую структуру:

схема://авторитетный_компонент/путь?запрос#фрагмент

  • Схема (scheme): Определяет протокол, который будет использоваться для доступа к ресурсу. Например, “http” для доступа по протоколу HTTP или “https” для доступа по защищенному протоколу HTTPS.
  • Авторитетный компонент (authority): Содержит информацию о местоположении ресурса. Включает доменное имя (например, www.example.com) или IP-адрес (например, 192.168.0.1). Иногда может также включать порт (например, :8080) после авторитетного компонента.
  • Путь (path): Указывает на конкретный путь к ресурсу на сервере. Может включать каталоги и имена файлов. Например, /images/photo.jpg.
  • Запрос (query): Опциональный компонент, который содержит дополнительные параметры запроса. Запрос начинается с символа “?” и состоит из пар ключ-значение, разделенных символом “&”. Например, ?id=12345&category=books.
  • Фрагмент (fragment): Опциональный компонент, который идентифицирует фрагмент внутри ресурса. Обычно используется на веб-страницах для указания конкретного раздела на странице. Фрагмент начинается с символа “#”, за которым следует имя фрагмента. Например, #section-2.

Компоненты URL

Рассмотрим каждый компонент URL подробнее:

  • Схема идентификации: Примеры схем включают “http”, “https”, “ftp”, “mailto” и т. д. Схема определяет протокол, используемый для доступа к ресурсу.
  • Авторитетный компонент: Включает доменное имя (например, example.com) или IP-адрес (например, 192.168.0.1). Он указывает на конкретное местоположение ресурса в сети.
  • Путь: Путь указывает на конкретное место в иерархии ресурсов на сервере. Например, /articles/index.html указывает на файл index.html в папке articles.
  • Запрос: Параметры запроса передаются после вопросительного знака (?). Они используются для передачи дополнительной информации серверу.
  • Фрагмент: Фрагмент идентифицирует фрагмент внутри ресурса, часто используется на веб-страницах для прокрутки к определенному разделу.

Примеры URL

  1. http://www.example.com/index.html
  2. https://api.example.com/v1/users?id=12345
  3. ftp://ftp.example.com/files/archive.zip
  4. mailto:info@example.com
  5. tel:+1234567890

URN: Определение и особенности

Что такое URN?

URN (Uniform Resource Name) – представляет собой постоянное, уникальное имя ресурса без привязки к его местоположению или способу доступа. URN используются для идентификации ресурсов, которые могут быть перемещены или доступны в различных местах.

Унифицированные имена ресурсов (URN) предназначены для использования в качестве постоянных, идентификаторов ресурсов, не зависящих от местоположения.

Стандарт RFC 2141

URN Syntax: https://datatracker.ietf.org/doc/html/rfc2141

Структура URN

URN (Uniform Resource Name) имеет следующую структуру:

urn:имя_пространства_имен:уникальное_имя
  • URN-префикс (urn:): Обозначает, что строка является URN и использует этот префикс для идентификации.
  • Имя пространства имен (namespace): Определяет набор правил и соглашений для создания уникальных имен ресурсов. Например, “isbn” для идентификации книг по номеру ISBN или “ietf” для идентификации документов IETF.
  • Уникальное имя (unique name): Представляет собой уникальное имя ресурса в рамках указанного пространства имен. Фактическое уникальное имя зависит от выбранного пространства имен и может содержать буквы, цифры и другие допустимые символы.

Примеры URN

  1. urn:isbn:978-3-16-148410-0 – URN для идентификации книги по ISBN.
  2. urn:ietf:rfc:3986 – URN для идентификации определенного RFC документа.

Различия между URI, URL и URN

Общие черты и отличия

URI – общий термин, который включает в себя URL и URN. URL и URN являются подтипами URI, каждый со своими уникальными особенностями:

  • URL предоставляет информацию о местоположении ресурса и способе доступа к нему.
  • URN предоставляет уникальное имя ресурса, не привязанное к его местоположению.

Сравнение синтаксиса и использования

  • URI (Uniform Resource Identifier) – универсальный идентификатор ресурса, может быть использован для идентификации ресурсов в различных сетях и медиа. URI общий для всех типов идентификаторов ресурсов и имеет определенную структуру.
  • URL (Uniform Resource Locator) – специфический тип URI, который описывает адрес ресурса в Интернете и как его найти. URL включает схему и авторитетный компонент, позволяя непосредственно обратиться к ресурсу.
  • URN (Uniform Resource Name) – специфический тип URI, который идентифицирует ресурс по его имени, и не зависит от его местоположения. URN состоит из URN-префикса и уникального имени ресурса.

Примеры URI, URL и URN в реальных сценариях

URIURLURN
http://www.example.com/example-pagehttp://www.example.com/example-page“urn:isbn:978-3-16-148410-0”
“ftp://ftp.example.com/example-file”“ftp://ftp.example.com/example-file”“urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6”
“mailto:user@example.comhttp://maps.google.com/maps?q=New+York“urn:oid:2.16.840.1.113883.3.26.1.1.1”

Кодирование и декодирование URI

Резервированные и запрещенные символы

При работе с URI необходимо учитывать резервированные и запрещенные символы, которые должны быть правильно закодированы, чтобы избежать конфликтов и ошибок при передаче данных.

Процесс кодирования и декодирования

Кодирование URI осуществляется путем замены неразрешенных символов на последовательности символов в формате “%XY”, где XY – шестнадцатеричное представление символа. Декодирование происходит в обратном порядке.

Библиотеки и инструменты для работы с URI

Существует множество библиотек и инструментов, которые упрощают работу с URI, включая кодирование и декодирование. Некоторые популярные инструменты включают urllib в Python, URLDecoder/URLEncoder в Java и encodeURIComponent/decodeURIComponent в JavaScript.

Разработка и использование веб-ссылок

Создание корректных и надежных URL

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

Работа с относительными и абсолютными ссылками

URL могут быть относительными или абсолютными. Относительные ссылки опираются на текущий контекст, в то время как абсолютные ссылки указывают полный путь к ресурсу.

Работа с параметрами и фрагментами URL

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

Заключение

URI, URL и URN – важные понятия в веб-разработке, позволяющие идентифицировать и обращаться к ресурсам в Интернете. URI является общим термином, включающим URL и URN. URL предоставляет информацию о местоположении ресурса, в то время как URN предоставляет уникальное имя ресурса. Разработчики должны правильно использовать и кодировать URI, создавать надежные URL и эффективно работать с параметрами и фрагментами. С пониманием различий и технических особенностей URI, URL и URN, разработчики смогут эффективно работать с идентификаторами ресурсов в своих проектах.


Опубликовано

в

от

JavaScript

Локальное хранилище и куки в JavaScript

Узнайте, как использовать локальное хранилище и куки в JavaScript для сохранения данных на клиентской стороне.

React

Разработка игр на React

Узнайте, как использовать React для разработки интерактивных игровых приложений с использованием графики, анимаций и обработки пользовательского ввода.

React Native - переиспользование кода в мобильных приложениях

React Native – IOS и Android

React Native для разработки кросс-платформенных мобильных приложений и переиспользования кода между iOS и Android.

React

Создание и публикация React-компонентов в npm: Разработка для повторного использования

Изучите процесс создания и публикации React-компонентов в npm для повторного использования и облегчения разработки ваших проектов.

React

Управление зависимостями в React с npm

Изучите процесс установки, обновления и управления зависимостями в React-проектах с использованием npm.

СSS 3

Cоздание горизонтального меню навигации в CSS

Изучите способы создания горизонтального меню навигации на веб-странице с использованием CSS, чтобы улучшить навигацию пользователей.

Пример использования условного оператора switch в JavaScript

Условный оператор switch в JavaScript

Познайте секреты использования условного оператора switch в JavaScript для элегантного управления ветвлением кода.

HTML 5

Атрибуты HTML

Познакомьтесь с атрибутами HTML, которые предоставляют дополнительную информацию о элементах. Распространенные атрибуты и их использование.