Все статьи

Разбор URL: из каких частей состоит веб-адрес

Ссылка на русскоязычный сайт часто выглядит невинно, но при разборе на компоненты вскрывает сразу несколько особенностей, которых нет в англоязычном интернете: кириллические домены, percent-encoding кириллицы в пути и метки счётчиков вроде Яндекс.Метрики в query string.

Из чего состоит URL

  • Схемаhttps://, способ соединения с ресурсом.
  • Хостexample.ru или, для кириллического домена, сайт.рф, который браузер внутри себя превращает в punycode.
  • Порт — необязательный, по умолчанию 443 для HTTPS и 80 для HTTP.
  • Путь/статьи/сеть, может содержать кириллицу.
  • Строка запроса — после ?, пары ключ-значение, часто с UTM-метками рекламных кампаний.
  • Фрагмент — после #, часть страницы, которую видит только браузер.

Как домен .рф превращается в набор латинских символов

Домены на кириллице — например, сайт.рф — не существуют в DNS в исходном виде. Браузер конвертирует их по алгоритму Punycode в форму вроде xn--80aswg.xn--p1ai, и именно она уходит в DNS-запрос. Если скопировать такую ссылку из адресной строки в текстовый редактор, можно увидеть либо кириллицу, либо punycode — в зависимости от того, откуда именно скопирован URL.

Почему кириллический путь превращается в стену процентов

Путь и query string не поддерживают кириллицу напрямую — каждый символ кодируется в несколько байт UTF-8, а затем каждый байт становится последовательностью вида %D0%A1. Одно русское слово в пути легко превращается в строку из 30–40 символов, что затрудняет чтение логов сервера и заметно увеличивает длину ссылки, которой делятся в мессенджерах.

Зачем разбирать URL на части

  • Проверить, какая UTM-метка (utm_source, utm_campaign) реально пришла с кликом по рекламе.
  • Отличить настоящий punycode-домен от визуально похожего кириллического — это основа IDN-фишинга.
  • Декодировать кириллический путь или параметр, не поднимая консоль браузера.

IDN-фишинг: почему кириллица в адресной строке — это риск

Некоторые кириллические буквы визуально неотличимы от латинских: русская «а», «е», «о», «р», «с», «х» выглядят так же, как латинские a, e, o, p, c, x. Это позволяет зарегистрировать домен вроде аррle.com (с кириллической «а») — он не имеет отношения к настоящему apple.com, но в большинстве шрифтов не отличим от него на глаз. Современные браузеры показывают такие смешанные домены сразу в punycode-виде (xn--...), чтобы подделку было видно в адресной строке.

Попробовать инструмент