Сеть/HTTP

URL Parser

Разобрать URL на составляющие — протокол, хост, порт, путь, параметры запроса, фрагмент.


                    

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

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

Типичные сценарии

Что стоит помнить

Фрагмент (часть после #) никогда не отправляется на сервер — это чисто клиентская часть URL, которую сервер даже не видит.

Хосты с не-ASCII символами (кириллицей, иероглифами) на самом деле передаются по сети в punycode-кодировке (xn--...), даже если в адресной строке браузера показаны обычные буквы.

Статья об этом инструменте: Разбор URL: из каких частей состоит веб-адрес

Часто задаваемые вопросы

В чём разница между "host" и "origin" URL?

Host — это только домен и порт (example.com:8080), тогда как origin также включает схему (https://example.com:8080) — два URL должны совпадать по всем трём параметрам, чтобы иметь общий источник (origin).

Почему разобранный путь иногда выглядит иначе, чем то, что я ввёл?

Браузеры и парсеры нормализуют URL — сворачивая сегменты "./" и "../", декодируя некоторые символы в процентном формате и добавляя завершающий слеш к голому домену, — поэтому разобранный результат отражает разрешённую, каноническую форму.

Отправляется ли URL куда-либо при разборе здесь?

Нет. Разбор происходит полностью в вашем браузере с использованием нативного URL API — ничего не отправляется на сервер.

Что такое userinfo в URL и почему это опасно?

Часть <code>логин:пароль@</code> перед хостом предназначена для передачи учётных данных, но злоумышленники используют её для маскировки фишинговых ссылок: <code>https://accounts.google.com@evil.com/</code> на самом деле ведёт на evil.com, а не на Google.

Почему в некоторых URL хост выглядит как набор непонятных символов вроде xn--?

Это punycode-кодирование интернационализированных доменных имён (IDN) — способ представить домен с кириллицей, иероглифами или другими не-ASCII символами в формате, совместимом со старой системой DNS.

Статьи: Сеть/HTTP

Query String против JSON: почему GET-параметры такие ограниченные

Почему передать массив или вложенный объект через query string URL не так просто, как через JSON.

User-Agent: почему эта строка такая запутанная

Почему Chrome, Safari и Edge все содержат в User-Agent слова "Mozilla" и "Safari" одновременно.

Basic Authentication: как простейший способ аутентификации работает в HTTP

Почему Basic Auth обязательно требует HTTPS, ведь Base64 — это не шифрование, а лишь кодирование.

HTTP-заголовки: что скрыто в каждом запросе и ответе

Почему заголовок Content-Type определяет, как браузер интерпретирует тело ответа сервера.

Cookies: как небольшой кусок текста хранит состояние сессии

Почему атрибут HttpOnly защищает cookie от кражи через вредоносный JavaScript-код.

CORS: почему браузер блокирует "обычные" запросы к другому домену

Почему ошибка CORS возникает в браузере, а не на стороне сервера, и кто на самом деле блокирует запрос.

Заголовки email: как проследить путь письма от отправителя до вас

Почему заголовки Received нужно читать снизу вверх, чтобы проследить путь письма.