Структура и разбор query-строки
Руководства по URL-кодированию
Query-строка — это часть URL после ?, которая передаёт странице дополнительную информацию. В https://example.com/search?q=book&page=2 query-строкой является q=book&page=2.
Правила
Query-строка — это пары key=value, соединённые символом &.
?— отмечает начало query-строки=— разделяет ключ и его значение&— разделяет несколько пар#— завершает query-строку (то, что после, — это fragment/hash)
Когда значение содержит специальные символы
Если значение содержит & или =, оно конфликтует с разделителями, поэтому значение нужно закодировать с помощью encodeURIComponent. Поисковый запрос a&b необходимо записать как q=a%26b, чтобы параметр остался целым. Пробел отображается как %20 или + в зависимости от кодирования, и парсеры часто превращают + обратно в пробел.
Безопасный разбор
В браузерах есть URLSearchParams для безопасной работы с query-строками. Использование его вместо ручного разбиения по & автоматически обрабатывает кодирование, повторяющиеся ключи и пустые значения.
Вкладка «Парсер query» на этом сайте разбивает вставленный URL на компоненты и показывает исходное и декодированное значение каждого параметра рядом.