Utilia

Розбір URL на частини

Вставте URL, щоб побачити протокол, хост, порт, сегменти шляху, декодовані параметри запиту та фрагмент, а потім відредагуйте параметри й зберіть URL знову.

Як розібрати URL

  1. Вставте URL у поле URL для аналізу. Він розбирається під час введення; також можна натиснути Enter або Розібрати URL.
  2. Прочитайте частини: Протокол, Ім’я хоста, Порт, Хост (з портом), Origin, Ім’я користувача, Пароль, Шлях і Фрагмент (#).
  3. Перегляньте список Сегменти шляху та таблицю Параметри запиту, яка показує кожен ключ і значення в декодованому вигляді поруч із текстом у колонці Вихідний текст.
  4. У розділі Редагування й повторна збірка змініть ключ чи значення, натисніть Додати параметр або Видалити, чи відредагуйте фрагмент. Зібраний URL оновлюється під час введення.
  5. Натисніть Копіювати, щоб скопіювати новий URL.

Якщо вставити адресу без схеми, як-от example.com/page, інструмент припускає https:// і повідомляє про це.

Частини URL

Інструмент використовує вбудований у браузер розбирач URL, який відповідає стандарту WHATWG URL, тож бачить адресу точно так, як браузер. Візьмімо https://ann:secret@shop.example.com:8080/en/products?size=M#reviews:

  • Протокол (https:) – це схема, яка повідомляє браузеру, як отримати ресурс.
  • Ім’я користувача і Пароль (ann, secret) – необов’язкові облікові дані. Пароль за замовчуванням приховано; позначте Показати пароль, щоб його побачити. Браузери тепер вилучають або відхиляють такі дані в посиланнях, і ніколи не діліться URL, який їх містить.
  • Ім’я хоста (shop.example.com) – назва сервера. Інтернаціоналізовані доменні імена показуються в формі punycode (xn--…), яку використовує DNS.
  • Порт (8080) показується, якщо URL його вказує. Інакше інструмент зазначає типовий порт схеми: 80 для http і ws, 443 для https і wss, 21 для ftp. Порт, що дорівнює типовому, як-от :443 для https, розбирач відкидає.
  • Хост (з портом) об’єднує обидва, а Origin – це схема + хост + порт, одиниця, яку браузери використовують для правил безпеки, як-от CORS.
  • Шлях (/en/products) розбивається на Сегменти шляху, кожен із відсотковим декодуванням, тож caf%C3%A9 читається як café.
  • Фрагмент (#) (reviews) вказує на частину сторінки. Його ніколи не надсилають на сервер.

Параметри запиту

Рядок запиту розбивається за &, а кожна пара – за першим =. Ключі й значення декодуються так, як кодують форми HTML: послідовності %XX стають символами, а + стає пробілом. Повторювані ключі, поширені для фільтрів і полів із множинним вибором (size=M&size=L), зберігаються всі й підписуються за порядком «(повторюється 1/2)», «(повторюється 2/2)». Ключ без = показується з порожнім значенням. Якщо послідовність не вдається декодувати, показується вихідний текст.

Редагування й повторна збірка

Редактор починає з поточних параметрів. Порожні рядки ігноруються. Новий рядок запиту кодується як надсилання форми, так само, як це робить URLSearchParams: пробіли стають +, а зарезервовані символи, як-от &, = чи #, кодуються відсотками, тож значення може їх безпечно містити. Це зручно, щоб видалити параметри відстеження, змінити номер сторінки чи створити тестові посилання. Коли пароль приховано, він маскується і в полі Зібраний URL, але Копіювати копіює справжній URL.

Поширені запитання

Чому інструмент каже, що мій URL недійсний?

Найчастіші причини – пробіли в хості, порт понад 65535, відсутній хост після https:// або символи, не дозволені в імені хоста. Текст без крапки, як-от одне слово, також не вважається ім’ям хоста.

Чи відвідується URL або надсилається кудись?

Ні. Адресу розбирають лише у вашому браузері. Жодного запиту до сайту не виконується.

Чому %20 став + у зібраному URL?

В обох випадках це пробіл у рядку запиту. Повторна збірка використовує кодування форми, яке створюють браузери та більшість серверних фреймворків і яке записує пробіли як +.

Чи обробляє він URL mailto:, tel: або data:?

Так. Вони теж розбираються, але не мають хоста чи порту: їхній вміст з’являється в полі Шлях.

Чим відрізняються Хост та Ім’я хоста?

Ім’я хоста – це лише назва. Хост (з портом) додає порт, якщо його вказано явно, як-от example.com:8080.