Назад

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

HTTP-метод QUERY объединяет тело запроса с безопасной и идемпотентной семантикой GET для сложных выборок.

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

Инженерный комитет 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-методу? 👇

Скопировано