В июне 2026 года IETF официально стандартизировал новый HTTP-метод - QUERY (RFC 10008). Это первое крупное расширение HTTP за многие годы, которое решает проблему, с которой практически каждый backend-разработчик сталкивался при проектировании API.
На протяжении десятилетий существовала странная ситуация. Предположим, мы разрабатываем API поиска товаров.
Самый очевидный вариант: GET /products?category=laptop&brand=apple&page=1
Все отлично.
Но что делать, если фильтр становится сложнее?
{
"category": "laptop",
"price": {
"min": 1000,
"max": 4000
},
"brands": [
"Apple",
"Dell",
"Lenovo"
],
"features": [
"wifi6",
"oled",
"touch"
],
"sort": {
"field": "rating",
"direction": "desc"
}
}
Запихнуть это в URL практически невозможно.
Начинаются проблемы:
Поэтому почти все делают так: POST /products/search с JSON в body.
Работает. Но семантически это неправильно.
В чем проблема POST?
По стандарту HTTP:
Это означает, что инфраструктура не может автоматически предполагать безопасный повтор запроса.
Хотя на практике ваш endpoint просто выполняет поиск. Получается интересная ситуация: Мы используем POST только потому, что GET не умеет нормально работать с большим body.
Именно эту проблему решает QUERY.
Что такое HTTP QUERY?
QUERY - это новый HTTP-метод, который:
Другими словами: QUERY - это "POST с семантикой GET".
Именно этого не хватало HTTP много лет. RFC определяет QUERY как безопасный и идемпотентный метод с телом запроса для описания самой операции поиска или запроса.
Вместо:
POST /products/search
можно написать:
QUERY /products
Content-Type: application/json
{
"brand": "Apple",
"price": {
"min": 1000,
"max": 3000
}
}
При этом сервер гарантирует:
Что означает Safe?
Safe - одно из ключевых понятий HTTP.
Безопасный метод:
GET безопасен.
HEAD безопасен.
OPTIONS безопасен.
Теперь QUERY тоже безопасен.
Что означает Idempotent?
Идемпотентность означает: 100 одинаковых запросов дают тот же результат, что и один запрос.
Например:
QUERY /search
можно отправить один раз, пять раз, сто раз.
Состояние сервера не изменится.
Поэтому инфраструктура может автоматически повторять запрос после временных сетевых ошибок.
Итоги
Появление QUERY - одно из самых заметных изменений в HTTP за последние годы. Новый метод закрывает давний пробел между GET и POST: он позволяет отправлять сложные структуры данных в теле запроса, сохраняя при этом семантику безопасной операции чтения. Для разработчиков это означает более корректное проектирование API, возможность безопасных повторных запросов, лучшую совместимость с HTTP-кэшированием и отказ от компромисса, когда для обычного поиска приходилось использовать POST.
Однако массовое внедрение займет время. Серверы, прокси, API-шлюзы, браузеры и фреймворки должны добавить полноценную поддержку QUERY. Поэтому в ближайшие годы POST еще останется основным способом реализации сложных поисковых запросов. Тем не менее RFC 10008 уже стал официальным стандартом, а значит, экосистема HTTP получила новый фундаментальный инструмент, который со временем вполне может стать таким же привычным, как GET, POST или PATCH.
Source: Orkhan Alishov's notes