Утилита URL
Разбор URL
Разложите URL на схему, хост, путь, query-параметры, фрагмент и нормализованный адрес.
Как пользоваться инструментом
- Вставьте в поле полный абсолютный URL. Строка обязана содержать схему (http или https) и хост, например https://api.example.com/v1/users?page=2&utm_source=newsletter#settings. Относительные пути вроде /docs/guide или имена хостов без схемы не принимаются: парсеру нужна однозначная точка отсчёта.
- Отправьте форму или нажмите Enter. DN01 разбирает URL целиком в браузере и на сервере без сетевого запроса к целевому сайту. Никакой HTTP-запрос к анализируемому ресурсу не выполняется — это безопасно для production callback, подписанных redirect_uri и внутренних staging-ссылок.
- Изучите структурированный результат: схема, host, hostname, порт, path, сегменты пути, сырая query-строка, отдельные query-параметры, фрагмент, origin и нормализованный URL. Каждое поле подписано — значения удобно копировать в консоли OAuth, правила CDN, фильтры аналитики или логи webhook без ручного разрезания строки.
- Используйте нормализованный URL и origin для канонического сравнения. Сопоставляйте hostname и host при отладке правил с портом и помните: фрагмент (#...) разбирается локально, но при обычной навигации на сервер не передаётся — это важно для SPA-маршрутизации и устаревших OAuth implicit-потоков.
Что показывает результат
Результат разбит на сигналы, которые важны именно для этой проверки.
| Поле | Зачем нужно | Пример |
|---|---|---|
| Схема | Протокол (http или https). CDN, HSTS и OAuth-провайдеры часто считают http и https разными redirect target, даже если хост совпадает. | https |
| Host | Часть authority с hostname и явным портом при наличии. Нужна, когда правило должно совпасть с тем, что стоит перед path. | cdn.example.com:8443 |
| Hostname | Имя хоста без суффикса порта. Балансировщики, домен cookies и TLS-сертификаты обычно опираются только на hostname. | cdn.example.com |
| Порт | Явный или подразумеваемый порт сервиса. Пусто для 80/443 по умолчанию; непусто для :8080 и т.п. Критично для webhook-слушателей и dev-туннелей. | 8080 |
| Path | Процент-кодированный путь от первого слэша до ?. Отражает маршрутизацию на сервере до разбора query. | /api/v2/webhooks/stripe |
| Сегменты пути | Упорядоченный список непустых компонентов после разбиения по /. Удобнее одной строки path при настройке CDN и REST-карт ресурсов. | ["api", "v2", "webhooks", "stripe"] |
| Query-строка | Сырые пары key=value после ?. Удобна для посимвольного сравнения двух URL. | utm_source=email&utm_campaign=q1&page=3 |
| Query-параметры | Структурированный список ключей и значений, включая дубликаты. Нужен для UTM-аудита, проверки state/nonce в OAuth и аргументов пагинации. | utm_source=email, page=3 |
| Фрагмент | Якорь после # на стороне клиента. Браузер не отправляет его на сервер при навигации; SPA может читать его в JavaScript. | section-pricing |
| Origin | Схема плюс host (с портом, если не стандартный). База сравнения Same-Origin Policy для CORS и postMessage. | https://cdn.example.com:8443 |
Когда проверка полезна
Интеграции OAuth и OpenID Connect ломаются из‑за мелочей: лишний слэш в конце path, неверный порт или http вместо https. Провайдеры сравнивают зарегистрированный redirect_uri буквально с тем, что приложение шлёт в authorization request. Перед вставкой в Google, Microsoft или Okta разберите URI в DN01 и убедитесь, что схема, hostname, path и query совпадают с allowlist посимвольно. Если callback собирается динамически, вставьте значение из неудачного входа и сравните origin и нормализованный URL с зарегистрированным. Расхождение в регистре hostname обычно безвредно — инструмент приводит host к нижнему регистру, а вот лишний query-параметр или другой path сломает поток. Проверка бесплатна и избавляет от круговых ошибок на стороне провайдера.
Маркетинг помечает ссылки UTM-параметрами для атрибуции в аналитике. Со временем появляются опечатки (utm_source против utm_Source), дубли ключей и кодирование, незаметное в таблице. Вставьте каждый landing URL в сплиттер и читайте таблицу query-параметров вместо ручного подсчёта амперсандов. Можно проверить utm_medium, utm_campaign и utm_content до рассылки и поймать двойной ? при склейке URL. Парсинг локальный — можно смотреть неопубликованные ссылки с закрытыми slug.
Операторы CDN и reverse-proxy пишут cache key и origin rules из частей URL. Правило на /images/* не должно случайно включать query, ломающий кэш, а маршрутизация по hostname должна отличать www от apex. Разбор проблемного request URL показывает, совпадают ли сегменты path с порядком edge-правил и влияет ли порт в host на dev-среде. При миграции с prefix на segment-роутинг сравнение списков сегментов проясняет, какие каталоги нужны в карте редиректов.
Отладка webhook часто начинается со строки лога с полным callback URL. Платёжные системы, GitHub и CI показывают точный адрес, который пытались вызвать. Вставьте URL, чтобы отделить path для роутера от query, который верификация подписи может учитывать или игнорировать. Если слушатель на нестандартном порту, поле port подтверждает, указали ли :443 явно. Это быстрее, чем искать двоеточие в длинной HTTPS-строке.
SPA часто переносят состояние во фрагмент (#/dashboard?tab=billing), который серверные логи не видят. Когда пользователь жалуется на «не ту страницу после входа», разберите URL из адресной строки и смотрите фрагмент отдельно от path и query. Поддержка объяснит, проблема в серверной маршрутизации или в клиентском роутере. DN01 фиксирует: фрагмент разбирается для анализа, но в классической строке access log его не будет.
При security review приходят подозрительные ссылки с запрещёнными схемами. DN01 принимает абсолютные http/https и отклоняет javascript:, data: и file: — безопасная практика разбора. Аналитик документирует схему и host для тикета без выполнения кода и без fetch. Для https извлечение hostname помогает перейти к WHOIS или DNS в других инструментах, оставаясь на структурном шаге.
API-шлюзы и mesh добавляют префиксы path при публикации внутренних сервисов. Снаружи https://public.example.com/payments/v1/charges, внутри — /v1/charges. Разбор внешнего и внутреннего представления по сегментам показывает дрейф префикса до выката route tables в production.
Что проверить, если результат странный
Ошибка «absolute URL with scheme and host is required» означает: добавьте https:// (или http://) перед хостом и уберите лишние пробелы. Запись example.com/path без схемы не является абсолютным URL для этого инструмента. Копируйте значение из адресной строки браузера.
Схемы javascript:, data: и file: блокируются намеренно — это не веб-навигация для redirect или CDN. Перепишите ввод как https, если изучаете страницу из другого контекста, или уберите исполняемую нагрузку перед разбором.
Если query-параметры пусты, хотя после ? должны быть значения, проверьте кодирование. Битая percent-последовательность ломает парсинг. Вставляйте URL так, как он был в логе, письме или JSON, а не частично декодированный вариант.
Когда host и hostname отличаются только портом, правило маршрутизации может требовать явного порта. Для https по умолчанию :443 не показывается; для :3000 поле port будет непустым. Нормализованный URL не убирает кастомный порт — он сохраняет ввод.
Дублирующиеся ключи query сохраняются отдельными строками в списке. Одни фреймворки берут последнее значение, другие конкатенируют. Сплиттер показывает структуру строки, а не выбор runtime вашего приложения.
Как интерпретировать результат
Схема задаёт ожидания транспорта. В production OAuth-провайдеры требуют https для redirect_uri, локально иногда разрешают http на localhost. Отдельное поле scheme помогает думать о mixed content и HSTS без перечитывания RFC. Для не-http схем, которые иные утилиты всё же парсят, DN01 может предупредить об отсутствии сетевого доступа — здесь первичны http и https.
Разделение host и hostname отражает RFC 3986 и то, как API серверов отдают peer name. SNI в TLS использует hostname; сокеты слушают порт. Health check CDN бьёт в hostname:443, а docker-сервис публикует host:8080 в bridge-сети. Оба поля снижают путаницу, когда «хост» в разговоре означает только DNS-имя.
Path и сегменты поддерживают и строковые, и REST-представления. Прокси документируют prefix-правила; код приложения режет сегменты для авторизации. Percent-encoding в path — как на проводе, сравнение с access log остаётся честным. Список сегментов без пустых частей от краевых слэшей соответствует интуитивным «папкам».
Два представления query нужны, потому что аналитика и подписи смотрят на разное. Маркетингу важны декодированные utm_campaign; HMAC webhook может требовать сырой substring query как в запросе. Дубликаты ключей видны сразу; пустое значение — отдельный случай от отсутствующего ключа.
Фрагмент — самая недооценённая часть URL. При класической загрузке страницы браузер запрашивает только часть до #; фрагмент обрабатывается локально после ответа. Поэтому смена фрагмента не даёт новой строки в server access log. Исторические implicit OAuth-потоки возвращали токены во фрагменте — security review обязан их смотреть, даже если nginx их не видит. DN01 показывает фрагмент для обучения и SPA, а не как серверный маршрут.
Origin и нормализованный URL помогают сравнивать эквивалентность. Origin — граница безопасности для CORS и разделения Web Storage. Нормализация приводит scheme и host к нижнему регистру по правилам инструмента. Используйте для allowlist, но уточните у IdP, чувствителен ли path к регистру, прежде чем полагаться только на normalization.
Рекомендуемый порядок действий
- Скопируйте точный URL из лога, браузера или панели провайдера без правок.
- Вставьте в DN01 URL Splitter и убедитесь в успешном разборе и схеме http/https.
- Зафиксируйте схему, hostname, сегменты path и нужные query-параметры для тикета.
- Сравните origin или нормализованный URL с OAuth, CDN или webhook-ожиданиями.
- Опишите расхождения (порт, слэш, лишний ключ) и перепроверьте после смены конфигурации.
Инструмент и ручная проверка
Ручное разрезание в редакторе сгодится для одного URL, но плохо масштабируется на длинные query. Один лишний & или = внутри base64 ломает наивный split. DN01 использует полноценный парсер в духе Go net/url — меньше сюрпризов на краях.
Network в DevTools показывает URL только после запроса. Для redirect_uri или закрытых кампаний запрос может быть нежелателен. Локальный разбор даёт структуру без сетевых побочных эффектов.
One-liner в Python или Node гибки, но неудобны маркетингу и поддержке. DN01 даёт единую таблицу на вашем языке и shareable result pages без установки runtime.
Формулы в таблицах плохо работают с encoded query и дубликатами ключей и скрывают фрагмент, если забыли его в ячейке. Сплиттер выводит фрагмент отдельной строкой.
Онлайн-парсеры по-разному показывают части и иногда ходят на удалённый сайт. DN01 заточен под абсолютные http/https без fetch и с отклонением опасных схем.
curl -I и wget проверяют доступность, смешивая DNS, TLS и HTTP status со структурой URL. Сначала DN01, потом проверка доступности.
RFC 3986 полезен для глубины, но медленен в инциденте. DN01 операционализирует поля, которые нужны дежурным, в табличном виде.
Почему DN01
- Разбирает абсолютные http/https URL локально — без запроса к целевому сайту.
- Показывает схему, host, сегменты path, ключи query, фрагмент и origin в одном окне.
- Отклоняет javascript:, data: и file: для более безопасного разбора.
- Создан для redirect_uri OAuth, UTM, правил CDN и логов webhook.
FAQ
FAQ по разбору URL
Схема, host, сегменты path, query-параметры, fragment и безопасная работа с credentials в URL.
Какие части URL показывает инструмент?
Схема, username, флаг наличия password в userinfo, hostname, port, path с сегментами, query с декодированными парами key/value, fragment, origin и normalized URL при успешном разборе.
Безопасно ли вставлять URL с паролем?
DN01 отмечает password в userinfo, но не выводит секрет в shareable-полях. Не вставляйте production-credentials; считайте такие URL чувствительными и ротируйте пароль при утечке.
Чем hostname отличается от host?
Hostname — домен или IP без порта. Host включает порт, например example.com:8443. Это помогает при отладке редиректов, CDN origin и базовых URL API.
Почему URL выглядит валидным, но разбор падает?
Нет scheme или host, запрещённые javascript:/data:/file:, битый percent-encoding или недопустимые символы. Добавьте https:// для голого домена или исправьте encoding.
Как обрабатываются query и fragment?
Query-параметры делятся по & и декодируются в список. Fragment (#section) в браузере client-side и показывается отдельно — сервер обычно его не получает.
Можно ли автоматизировать разбор URL?
Да для скриптов и log pipeline. См. документацию API после запросить API-токен для JSON-ответа.
Соседние инструменты
Продолжить проверку
Выберите следующий шаг в цепочке проверки домена или безопасности.
- HTTP Header CheckerЗаголовки ответа, редиректы и кешОткрыть
- Base64 CodecКодирование и декодирование Base64Открыть
- Punycode ConverterUnicode ↔ Punycode для IDN-доменовОткрыть
- Проверка обновления браузераВерсия браузера, обновление и Client HintsОткрыть
- HTTP/2 тестерПоддержка HTTP/2, ALPN и TLSОткрыть
- SSL Certificate CheckerЦепочка сертификата, SAN и версия TLSОткрыть
- IP доменаA и AAAA IP адреса доменаОткрыть
- Проверка возраста доменаДата создания, возраст, регистратор и срокОткрыть
- DNS CheckerВсе основные типы записей одним запросомОткрыть
- DIGОдин тип записи, ответ как у resolverОткрыть
- WHOISРегистратор, срок действия и статус доменаОткрыть
- Анализатор DMARCПолитика DMARC, alignment и отчетыОткрыть
- DKIM валидаторПоиск DKIM-селектора и проверка записиОткрыть
- Blacklist CheckerDNSBL-репутация IP и доменаОткрыть
- Генератор паролейНадёжные пароли для админских задачОткрыть
- Проверка надежности пароляЭнтропия, время взлома и советыОткрыть
- Генератор парольных фразЗапоминаемые случайные фразы для безопасных тестовОткрыть
- BIN CheckerБренд карты, банк и страна по BIN/IINОткрыть
- IP-калькуляторПодсети IPv4/IPv6: маска, broadcast, диапазон хостовОткрыть
Похожие статьи
Практические руководства по Разбор URL: DNS-записи, типичные ошибки и ссылки на бесплатные инструменты DN01.
parse URL, URL parts, query parameters
Разбор URL: scheme, host, path, query, fragment
Разберите компоненты URL и почему split помогает отлаживать редиректы, OAuth и аналитику.
Читать статью →query parameters, utm parameters, redirect debugging
Query parameters для аналитики и редиректов
Разберите repeated keys, tracking tags, encoded значения и порядок параметров для подписей.
Читать статью →URL encoding, percent encoding, encode URI component
URL encoding и ловушки percent-encoding
Когда кодировать пробелы, амперсанды, плюсы и Unicode в path и query values.
Читать статью →oauth redirect url, redirect uri debug, authorization url
Отладка OAuth redirect URL с URL Splitter
Проверьте scheme, host, path и точные query требования redirect_uri до ошибок в консоли провайдера.
Читать статью →URL origin, host vs path, URL origin explained
Origin, host и path: границы, которые путают разработчики
Как браузер вычисляет origin для CORS, cookies и CSP по сравнению с host и path в логах.
Читать статью →utm parameters, campaign tracking url, analytics query tags
UTM и analytics parameters без поломки редиректов
Сохраняйте utm_source, utm_medium и custom tags, исправляя encoding и duplicate keys.
Читать статью →