Блог
Русский

Разбор URL онлайн — разложить ссылку на части

Разбор URL на компоненты с декодированием, IDN-доменами и редактированием параметров запроса

Работает в браузере · файлы никуда не загружаются

Что это за инструмент

Длинный URL трудно читать глазами: где заканчивается хост и начинается строка запроса? Инструмент раскладывает адрес на протокол, учетные данные, хост, порт, путь, строку запроса и якорь и декодирует процентное кодирование, чтобы значения можно было прочитать. Параметры запроса можно редактировать прямо в таблице.

Как пользоваться

  1. Вставьте в поле URL полный адрес, начинающийся с https://.
  2. В таблице «Компоненты URL» смотрите исходное и декодированное значение каждой части и копируйте нужное.
  3. В таблице «Параметры запроса» редактируйте ключи и значения или пользуйтесь кнопками удаления и добавления.
  4. Изменения сразу попадают обратно в URL в поле ввода, так что результат можно скопировать как есть.

Как это работает

  • Разбор выполняет объект браузера URL, реализующий стандарт WHATWG URL. Это не самописный парсер, поэтому результат совпадает с поведением браузера.
  • Компоненты: protocol, username, password, hostname, port, origin, pathname, search и hash. Порт по умолчанию показывается пустым.
  • Процентное кодирование (%D0%AF) декодируется как UTF-8; некорректные последовательности остаются как были.
  • Интернационализированные хосты преобразуются между формой xn-- и формой в Юникоде по правилам punycode из RFC 3492.
  • Параметры запроса читаются и записываются через URLSearchParams. Повторяющиеся ключи сохраняют порядок, а ключ без значения (?flag) показывается с пустым значением.
  • Для ввода без схемы, с пустым хостом или лишними пробелами выводится сообщение об ошибке, и больше ничего не происходит. Инструмент никогда не подключается к адресу.

Примеры

Ввод Результат
https://münchen.de/straße хост xn--mnchen-3ya.de, Юникод münchen.de
https://пример.рф/путь?имя=Иван Петров#якорь хост xn--e1afmkfd.xn--p1ai, путь /%D0%BF%D1%83%D1%82%D1%8C, декодированный /путь, параметр имя=Иван Петров
https://example.com:443/a порт пустой (порт по умолчанию)
https://e.com/?q=%F0%9F%98%80 q = 😀

Полезно знать

  • Если в адресе есть имя пользователя или пароль, выводится предупреждение. Не показывайте такие URL на общем экране.
  • Другие схемы, например mailto: и ftp:, тоже раскладываются на компоненты.

Частые вопросы

По каким правилам разбирается URL?

По стандарту WHATWG URL в реализации встроенного в браузер API `URL`. Разбор идет точно так же, как в адресной строке или по ссылке, поэтому имена хостов приводятся к нижнему регистру, порты по умолчанию (443 для https, 80 для http) отбрасываются, а `..` в пути разрешается автоматически.

Как отображаются интернационализированные домены, например .рф?

Хост в Юникоде по стандарту преобразуется в punycode (ASCII-форму, начинающуюся с `xn--`) и показывается в строке «Хост (ASCII)», а читаемый оригинал — в строке «Хост (Юникод)». Если вставить адрес, уже записанный в punycode, он будет декодирован обратно в Юникод.

Почему example.com/path не принимается?

Стандарт URL требует схему вроде `https://`, чтобы считать строку полным URL. Без нее протокол неизвестен, поэтому выводится ошибка с просьбой добавить схему.

Меняет ли редактирование параметра исходный URL?

Изменение ключа или значения, добавление или удаление параметра перезаписывает URL в поле ввода выше. Путь и якорь сохраняются, а строка запроса заново кодируется по правилам URLSearchParams (пробелы становятся +, символы вне ASCII — %XX).

Не нашли нужный инструмент?