Назад к вопросам

Ответ от нейросети

sobes.tech AI

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

Структура URI:

URI обычно состоит из следующих компонентов:

  • Схема: Определяет протокол или механизм доступа к ресурсу (например, http, https, ftp, file).
  • Полномочия (Authority): Содержит информацию об источнике авторизации, обычно в формате [userinfo@]host[:port].
  • Путь (Path): Определяет конкретный ресурс внутри полномочий.
  • Запрос (Query): Содержит дополнительные данные для запроса, представленные в виде пар ключ-значение, разделенных символом &.
  • Фрагмент (Fragment): Идентифицирует вторичный ресурс.

Отличия между URI, URL и URN:

Тип Описание Пример
URI Идентификатор ресурса (локатор ИЛИ имя) urn:isbn:0-486-27557-4
URL Локатор ресурса https://www.example.com/page.html
URN Имя ресурса urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
  • URL указывает на способ доступа к ресурсу и его местоположение.
  • URN предоставляет уникальное имя ресурса, которое остается постоянным независимо от его местоположения.
  • URI является обобщением как URL, так и URN.

В Python для работы с URI/URL часто используется модуль urllib.parse.

# Пример парсинга URL-строки
from urllib.parse import urlparse

uri_string = "https://user:pass@www.example.com:8080/path/to/resource?query=value#fragment"
parsed_uri = urlparse(uri_string)

# Доступ к компонентам
print(parsed_uri.scheme)     # Вывод: https
print(parsed_uri.netloc)     # Вывод: user:pass@www.example.com:8080
print(parsed_uri.path)       # Вывод: /path/to/resource
print(parsed_uri.query)      # Вывод: query=value
print(parsed_uri.fragment)   # Вывод: fragment