Что такое query-параметры в URL и как они используются?

Ответ

Query-параметры (параметры запроса) — это пары ключ=значение, добавляемые в конец URL после знака ? для передачи данных на сервер или между клиентскими страницами. Пары разделяются символом &.

Структура URL с параметрами:

https://example.com/search?q=query&page=2&sort=desc
  • ? — начало строки запроса.
  • q=query — первый параметр (ключ q, значение query).
  • & — разделитель параметров.
  • page=2, sort=desc — последующие параметры.

Ключевые особенности:

  • Кодирование: Специальные символы (пробел, &, =) должны быть закодированы (например, пробел → %20).
  • Использование: Параметры используются для фильтрации (?category=books), пагинации (?page=2), сортировки (?sort=price), передачи идентификаторов сессии (?session_id=abc).
  • Получение на клиенте (JavaScript):

    // Используя URLSearchParams
    const urlParams = new URLSearchParams(window.location.search);
    const page = urlParams.get('page'); // "2"
    const sort = urlParams.get('sort'); // "desc"
    
    // Получить все параметры как объект
    const params = Object.fromEntries(urlParams.entries());

Ответ 18+ 🔞

А, ну это ж классика, блядь! Ты про эти самые вопросительные знаки в адресной строке, после которых начинается какая-то хуйня вроде ?q=query&page=2? Это, сука, и есть query-параметры, или, по-нашему, параметры запроса. Проще говоря, это такие парочки «ключ=значение», которые ты лепишь в конец ссылки, чтобы серверу что-то намекнуть или между страницами данные перекинуть.

Вот смотри, как это выглядит, ёпта:

https://example.com/search?q=query&page=2&sort=desc

Разбираем по косточкам, блядь:

  • ? — это как красная лампочка загорается: «Внимание, щас начнётся строка запроса, держись!».
  • q=query — первый параметр. Ключ q, а значение — query. Типа «ищи вот это».
  • & — разделитель, сука. Без него всё склеится в одну непонятную кашу.
  • page=2, sort=desc — следующие параметры. «Дай вторую страницу» и «сортируй по убыванию».

А теперь главные подводные ебучки, которые надо знать:

  • Кодирование, блядь! Нельзя тупо воткнуть пробел или знак &. Компьютер обосрётся. Пробел превращается в %20, амперсанд — в %26. Иначе получится пиздец и ничего не заработает.
  • Зачем это надо? Да везде, сука! Чтобы фильтровать товары (?category=books), листать страницы (?page=2), сортировать (?sort=price) или даже сессию какую-нибудь передать (?session_id=abc123).
  • Как на фронтенде это вытащить, если ты на JS? Легко, блядь! Современный способ — через URLSearchParams. Смотри, какой красивый код:
// Берём строку запроса из адреса и суём в этот объект
const urlParams = new URLSearchParams(window.location.search);
const page = urlParams.get('page'); // Вернёт "2", если был ?page=2
const sort = urlParams.get('sort'); // Вернёт "desc"

// А если хочешь всё разом в объект превратить — вот тебе магия
const params = Object.fromEntries(urlParams.entries());
// Получится { q: "query", page: "2", sort: "desc" }

Вот и вся магия, блядь. Ничего сложного, просто способ навесить на ссылку дополнительную информацию, чтобы сервер или другая страница не гадали на кофейной гуще. Главное — не забудь про кодирование, а то будет тебе вместо поиска по запросу «рога & копыта» один большой, блядь, недоумённый вопрос от браузера.