Найти тему

Из чего состоит URL-адрес

Оглавление

Мы постоянно пользуемся URL, кликая по ссылкам и кнопкам в мессенджерах, электронной почте и на сайтах. А наиболее часто используемые URL соцсетей и поисковых машин даже можем ввести по памяти в адресной строке браузера: например, vk.com или ya.ru.

Систему записи адресов URL разработал Тимоти Джон Бернерс-Ли в 1990-е годы, когда он работал в CERN. Первый сайт имел URL http://info.cern.ch. Сейчас по этому адресу размещена «мемориальная» страница о рождении веба.

Веб за три десятилетия разросся, а интернет-адреса используются повсеместно. Ниже мы разберем обязательные и второстепенные элементы URL, о которых полезно знать и новичкам в разработке, и обычным пользователям интернета.

Обязательные компоненты URL-адреса

URL имеет четкую структуру и состоят из двух составляющих: обязательной и опциональной. Некоторые компоненты обязательной части могут опускаться, и тогда используются значения по умолчанию. Так, в самом начале URL указывается схема — кодовое слово соответствующего протокола. Но если схема пропущена, по умолчанию используется схема http.

Пример URL с характерными компонентами из документации Mozilla. Эти составляющие мы рассмотрим ниже в статье
Пример URL с характерными компонентами из документации Mozilla. Эти составляющие мы рассмотрим ниже в статье

Схема указывает на протокол — набор правил, по которым машины обмениваются друг с другом информацией по сети. В случае протокола HTTP браузер отправляет запрос с соответствующим URL, а сервер сайта в ответ отправляет гипертекст страницы. Браузер преобразует полученный код в то, что мы видим на экране. Бывают и другие протоколы, например, FTP, который используется для обмена файлами. Или HTTPS — это расширение протокола HTTP, которое отличается большей безопасностью, так как поддерживает шифрование сообщений.

Хост — доменное имя или IP-адрес, следующий после схемы. Доменное имя — это тоже ссылка на IP-адрес определенного сервера, но записанная таким образом, чтобы ее было проще запомнить. Например, сайт google.com можно посетить и по такой ссылке: http://172.217.22.14, но хост google.com проще запомнить, чем последовательность из четырех чисел. Такие IP-адреса обычно используются для технических целей, но и они вполне правомерны. Так или иначе, доменное имя состоит из символов, разделенных точками. Например, в URL страницы нашего блогаhttps://ispmanager.ru/news доменному имени соответствует ispmanager.ru.

Порт обозначает некоторый стандартный номер для определенного запущенного на компьютере процесса, в том числе и для систем, ответственных за протокол. Например, для схемы HTTP по умолчанию зарезервирован порт 80, а для HTTPS — 443. Каждой схеме обычно соответствует один протокол и один порт, поэтому при указании адреса порт обычно не указывается. Но при разработке сайтов могут использоваться значения, отличающиеся от дефолтных. Значение порта указывается после доменного имени через двоеточие. К примеру, если бы мы хотели прописать URL из примера более подробно, получилось бы так: https://ispmanager.ru:443/news.

Что еще может входить в URL

Итак, для захода на сайт достаточно знать доменное имя. Так как у каждой страницы должно быть уникальный URL, далее к абсолютному пути через слэш добавляются относительные пути к другим страницам. Они образуют своеобразное дерево: хост служит общим корнем, а относительные пути — ответвлениями до каждой страницы-листочка.

Относительный путь — путь относительно абсолютного адреса доменного имени, по которому находится конкретная страница веб-ресурса. В нашем примере URL https://www.ispmanager.ru/news относительному пути соответствует путь /news. А если мы перейдем на странице статей на любую из внутренних страниц, мы продлим этот относительный путь. Например, выберем на странице новостей статью про SSL-сертификаты: https://www.ispmanager.ru/news/ssl-for-ip-address. Теперь относительный путь стал /news/ssl-for-ip-address. Этому пути соответствует определенная структура файлов на сервере.

Многие сайты для удобства пользователей дублируют структуру относительных путей в навигации. Так, путь в адресной строке /news/ssl-for-ip-address повторяется в навигации: Наши Новости и Блог / Название статьи
Многие сайты для удобства пользователей дублируют структуру относительных путей в навигации. Так, путь в адресной строке /news/ssl-for-ip-address повторяется в навигации: Наши Новости и Блог / Название статьи

Якорь — ссылка на определенную часть страницы, начинающийся с с символа решетки — #. Так оформляются оглавления, чтобы было легче перемещаться между разделами страницы. Представьте, что старший Python-разработчик отправляет новичка перечитать документацию языка и присылает такую ссылку: https://docs.python.org/3/tutorial/datastructures.html#dictionaries. При переходе по ссылке браузер перематывает страницу к нужному месту, которое в HTML-коде страницы помечено соответствующим id, равного строке dictionaries.

Еще один важный кейс: что делать разработчику сайта, когда по дизайну задумана ссылка, но самой ссылки пока нет. Тогда временно ставят «заглушку» — одиночный якорь "#". Это валидная ссылка, которая никуда не ведет, но при нажатии страница не перезагружается.

Параметры. Если сайт располагает открытой базой данных, в URL могут указываться параметры для фильтрации результатов. Например, покупатель выбирает на сайте обувь, и в относительном пути добавляются значения: ?search=обувь&fbrand=1&fsize=43. С помощью такой URL клиент может сохранить набор фильтров и переслать результат поиска.

UTM-метки по своей структуре похожи на фильтры запросов, но они никак не влияют на отображение страницы. Это параметры URL, которые используются маркетологами для отслеживания рекламных кампаний. Например, по метке ?utm_medium=social&utm_source=vk.com маркетолог отслеживает, сколько пользователей перешло на сайт по ссылке из социальной сети.

Допустимые символы URL

По приведенным примерам видно, что в структуре ссылки могут использоваться самые разные символы, но не любые. Конечно, чаще всего URL состоят из символов, которые используются «как есть»:

  • буквы английского алфавита A-Z, цифры 0-9 и символы "-", ".", "_", "~"
  • зарезервированные символы: ":", "/", "?", "#", "[", "]", "@", "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "="

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

Процентное кодирование. Недопустимые символы перекодируются с помощью системы кодировки UTF-8 и знаков процента. Та же процедура используется, чтобы передать зарезервированные символы. Именно из-за процентной перекодировки бывают такими длинными ссылки в русскоязычной Википедии. Например, ссылка на фильм «Бегущий по лезвию» при пересылке может выглядять вот так: https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D0%B3%D1%83%D1%89%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%BB%D0%B5%D0%B7%D0%B2%D0%B8%D1%8E. Здесь все кириллические символы были перекодированы. В то же время, современный браузер поймет и если текст будет представлен в более понятном нам виде: https://ru.wikipedia.org/wiki/Бегущий_по_лезвию — перекодировка произойдет автоматически.

Запомним

Итак, URL — это уникальный адрес, который указывает, каким образом одна машина связывается с другой, по какому порту передаются данные, и как их найти. Но полезны они не только машинам. Для пользователей URL упрощают навигацию, позволяют удобно ссылаться на конкретный раздел сайта или крупной страницы, зафиксировать отображение страницы с заданным набором фильтров.

Расскажите в комментариях, что бы вы хотели узнать про URL или домены, и мы напишем об этом. Подписывайтесь, чтобы следить за новыми статьями.