Сеть/HTTP

URL Parser

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


                    

A URL is made of several parts — protocol, host, port, path, query parameters, and a fragment — that are easy to mix up when reading a long link. This tool breaks a URL down into those parts and shows each one separately.

How to use it

Common uses

Things to keep in mind

The fragment (the part after #) is never sent to the server — it's a purely client-side part of the URL the server never even sees.

Hosts with non-ASCII characters (Cyrillic, CJK) are actually transmitted over the network in punycode (xn--...), even when the browser's address bar shows plain letters.

Статья об этом инструменте: Разбор 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 нужно читать снизу вверх, чтобы проследить путь письма.