Простыми словами о URI, URL и URN
- URI – Uniform Resource Identifier / Идентификатор ресурса
- URN – Uniform Resource Name / Имя ресурса
- URN – подтип URI.
- URN обозначает идентификатор ресурса по его имени.
- Пример URN:
urn:isbn:978-0-13-713526-6
.
- URL – Uniform Resource Locator / Локатор (местоположение) ресурса
URN и URL являются конкретными типами URI. URN указывает на ресурс по его имени, а URL – по его местоположению. URI – общий термин, включающий в себя URN и URL.
Стандарты, регулирующие URI, URL и URN
- URI (Uniform Resource Identifier):
- URL (Uniform Resource Locator):
- URN (Uniform Resource Name):
- Общие стандарты для 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
- http://www.example.com/index.html
- https://api.example.com/v1/users?id=12345
- ftp://ftp.example.com/files/archive.zip
- mailto:info@example.com
- 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
- urn:isbn:978-3-16-148410-0 – URN для идентификации книги по ISBN.
- 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 в реальных сценариях
URI | URL | URN |
---|---|---|
“http://www.example.com/example-page“ | “http://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.com“ | “http://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, разработчики смогут эффективно работать с идентификаторами ресурсов в своих проектах.