URL-адрес — структура и назначение¶
URL-адрес (англ. Uniform Resource Locator, «единый локатор ресурса») — строка текста, указывающая местоположение ресурса в компьютерной сети и механизм его получения. Является основным способом адресации документов и других ресурсов в сети Интернет; применяется в браузерах, серверах, программных интерфейсах и протоколах передачи данных. Термин предложен Тимом Бернерсом-Ли в 1994 году и описан в стандарте RFC 1738.
¶Структура URL
Полный URL состоит из нескольких обязательных и необязательных частей, разделённых специальными символами:
`` scheme://user:password@host:port/path?query#fragment ``
| Часть | Назначение | Пример |
|---|---|---|
| Схема (scheme) | Протокол доступа к ресурсу | https, ftp, mailto |
| Пользователь | Логин для аутентификации | user |
| Пароль | Пароль для аутентификации | password |
| Хост (host) | Доменное имя или IP-адрес сервера | example.ru |
| Порт (port) | Номер порта сервера | 443 |
| Путь (path) | Расположение ресурса на сервере | /docs/page.html |
| Параметры (query) | Дополнительные параметры запроса | ?id=10&lang=ru |
| Фрагмент (fragment) | Якорь внутри документа | #section-2 |
Части user:password@ и port необязательны: если порт не указан, используется порт по умолчанию для выбранной схемы (80 для HTTP, 443 для HTTPS). Фрагмент с # не передаётся на сервер и обрабатывается на стороне клиента.
¶Основные схемы
Схема URL определяет протокол или механизм доступа. Наиболее распространённые:
- http://** — протокол передачи гипертекста, стандартный порт 80;
- https://** — HTTP с шифрованием TLS, стандартный порт 443;
- ftp:// — протокол передачи файлов;
- mailto: — адрес электронной почты для отправки письма;
- file:// — файл на локальной файловой системе;
- tel: — телефонный номер для звонка;
- data: — встроенные данные (например, base64-изображения);
- ws:// и wss:// — WebSocket-соединения.
Список схем поддерживается реестром IANA; нестандартные схемы могут использоваться прикладными программами.
¶Кодирование спецсимволов
В URL допускаются только символы из набора ASCII. Символы, входящие в компонент адреса (пробелы, кавычки, #, ?, % и другие), кодируются в формате percent-encoding: каждый заменяется знаком % и двумя шестнадцатеричными цифрами. Например, пробел закодирован как %20, кириллическая буква «а» — %D0%B0 в кодировке UTF-8. Для передачи русскоязычных и других не-ASCII данных в URL применяется стандарт IDNA (Internationalizing Domain Names in Applications), преобразующий международные доменные имена в punycode: например, домен «пример.рф» записывается как xn--80aaabkuf2a.xn--p1ai.
¶Отличие URL от URI и URN
Часто URL упоминается наряду с понятиями URI (Uniform Resource Identifier) и URN (Uniform Resource Name). URI — более широкое понятие: идентификатор ресурса, который не обязательно указывает способ его получения. URN — вид URI, называющий ресурс постоянным именем независимо от расположения (например, urn:isbn:5-17-000000-0). URL является частным случаем URI: он идентифицирует ресурс и одновременно указывает механизм доступа к нему.
¶История
В 1989 году Тим Бернерс-Ли в проекте WorldWideWeb предложил систему адресации ресурсов, объединяющую имена хостов и пути к файлам. В 1994 году формат был стандартизован в RFC 1738, а в 1996-м обновлён в RFC 1808. В 2005 году появился стандарт RFC 3986 (URI: Generic Syntax), действующий до сих пор, определяющий строгую грамматику URL и URI.
¶Применение
URL является основой работы Всемирной паутины: каждая ссылка в HTML-документе (<a href="...">), адрес ресурса в CSS (url(...)) и URI в API-запросах оформляются в формате URL. Поисковые системы индексируют страницы по их URL, а серверы веб-аналитики используют адреса страниц для сбора статистики посещений. Сокращатели ссылок (например, bit.ly) преобразуют длинные URL в компактные, перенаправляя пользователя по HTTP-редиректу.
¶Примеры
https://ru.wikipedia.org/wiki/URL` — статья в Википедии;https://example.ru/search?q=погода&lang=ru` — запрос к поисковой системе с параметрами;mailto:user@example.ru— адрес почты;ftp://ftp.example.ru/pub/file.zip— файл на FTP-сервере.
¶Источники
- RFC 3986. Uniform Resource Identifier (URI): Generic Syntax.
- RFC 1738. Uniform Resource Locators (URL).
- Бернерс-Ли Т. Мы построили паутину. — М.: Альпина Паблишер, 2010.
- Документация W3C по URI.
