Мережа/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 потрібно читати знизу вгору, щоб простежити шлях листа.