HTTP-метод QUERY получил статус Proposed Standard: прощай, POST для тяжелых запросов? 🌐
HTTP-метод QUERY объединяет тело запроса с безопасной и идемпотентной семантикой GET для сложных выборок.

Инженерный комитет IETF официально присвоил новому HTTP-методу QUERY статус «Предложенного стандарта». Это означает, что концепт признан зрелым, спецификация стабилизирована, и теперь дело за массовым внедрением.
Какую боль закрывает QUERY?
Все мы сталкивались с ограничениями метода GET. Когда нужно отправить на бэкенд сложный поисковый запрос с кучей фильтров, сортировок и вложенных структур, мы упираемся в две проблемы:
1. Переполнение URL: Лимиты на длину строки запроса быстро заканчиваются.
2. Безопасность и логи: Персональные данные, токены или чувствительные параметры фильтрации в GET-кверях светятся в серверных логах, истории браузера и прокси-серверах.
Как мы костылили раньше?
Правильно, использовали POST. Но по спецификации POST не является безопасным и идемпотентным методом — он предназначен для изменения состояния ресурса. Из-за этого браузеры и кэширующие прокси по умолчанию не кэшируют POST-запросы. Приходилось либо изобретать велосипеды с кастомным кэшированием, либо мириться с оверхедом на сеть.
Что делает QUERY? Он объединяет лучшее из двух миров:
— Тело запроса: Как и POST, метод QUERY может нести полноценный Payload (JSON, GraphQL или SQL-подобный синтаксис) в теле запроса, разгружая URL.
— Семантика GET: Метод официально признан безопасным и идемпотентным. Он ничего не меняет на сервере, а значит, его ответы можно нативно кэшировать на уровне CDN и HTTP-архитектуры браузера.
По сути, QUERY — это то, чем должен был быть GET для сложных выборок с самого начала.
Релиз спецификации на сайте IETF
Как вам апдейт? Ждёте нативную поддержку в своих фреймворках и серверах или старый добрый POST для поиска уже въелся в подкорку? Сталкивались с переполнением URL в реальных проектах и как выкручивались — дробили запросы или сразу сдавались POST-методу? 👇