Мережа/HTTP

Query String ↔ JSON

Розібрати query-рядок URL у JSON-об’єкт або зібрати JSON назад у query-рядок.

Query-рядок URL (частина після ?) — це плаский набір пар ключ-значення, тоді як JSON підтримує вкладені структури й типи даних. Інструмент конвертує в обидва боки, включно з повторюваними ключами й масивами.

Як користуватися

Типові сценарії

Що варто памʼятати

Усі значення в query-рядку — це завжди текст: "true", "false" чи "42" залишаються рядками в JSON, доки код явно не перетворить їх на відповідний тип.

Вкладені об’єкти й масиви не мають єдиного стандарту запису в query-рядку — різні бекенд-фреймворки (PHP, Rails, Express) використовують дещо різний синтаксис (a[b]=1 проти a.b=1).

Стаття про цей інструмент: Query String проти JSON: чому GET-параметри такі обмежені

Часті запитання

Як цей інструмент обробляє повторювані назви параметрів на кшталт ?tag=a&tag=b?

Повторювані ключі зазвичай збираються в масив (tag: ["a", "b"]), а не перезаписують одне одного, що відповідає тому, як більшість бекенд-фреймворків парсять рядки запиту.

Що відбувається зі спецсимволами під час конвертації?

Символи, закодовані у відсотковому форматі (наприклад, %20 для пробілу), декодуються назад до літерального вигляду при конвертації в JSON, і кодуються знову при конвертації JSON назад у рядок запиту.

Чи надсилається мій URL або дані кудись для виконання цієї конвертації?

Ні. Конвертація відбувається повністю у вашому браузері — нічого не надсилається на сервер.

Яка максимальна довжина URL, яку можна безпечно використовувати?

Орієнтовно 2000 символів — це найконсервативніший спільний ліміт серед популярних браузерів і серверів. Для більших обсягів даних варто використовувати POST-запит із тілом замість query string.

Як передати значення true/false чи число через query string?

Query string завжди зберігає лише текст — значення "false" чи "42" залишаються рядками, доки код на сервері чи клієнті явно не розпізнає й не перетворить їх на булеве значення чи число.

Статті: Мережа/HTTP

Розбір URL: з яких частин складається веб-адреса

Чому в URL є частина після символу # , яку сервер навіть не отримує.

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