HTTP получил метод QUERY: сложные поиски больше не притворяются POST

IETF официально опубликовала новый HTTP-метод QUERY: спецификация вышла как RFC 10008 и встала в один ряд с привычными GET, POST, PUT и PATCH. Об этом 13 июля 2026 года сообщил The Register. Идея метода QUERY проста: он умеет нести сложный поисковый запрос в теле (как POST), но при этом объявлен безопасным и идемпотентным. Прокси, CDN и браузеры могут кешировать ответы и безопасно повторять неудавшиеся запросы.
Работа над стандартом шла с 2021 года. Авторы RFC 10008 - инженеры Cloudflare и Akamai, свой вклад внесла и немецкая инжиниринговая фирма greenbytes. То, что стандарт двигали компании, живущие на edge-кешировании, объясняет главную мотивацию: наконец-то кешировать сложные запросы, которые раньше кешироваться не могли.
Почему поиск десятилетиями притворялся POST
Чтобы понять ценность HTTP-метода QUERY, вспомним, чем неудобны оба существующих способа отправить поисковый запрос.
GET безопасен и идемпотентен, но все параметры приходится навешивать на URL после знака вопроса. Как только запрос усложняется (вложенные фильтры, сортировки, диапазоны дат), ссылка превращается в громоздкий «Франкен-URL». HTTP рекомендует поддерживать URI длиной не менее 8000 октетов, но универсального максимума нет: слишком длинный адрес может отклонить любой узел на пути.
POST умеет носить данные в теле запроса, часто в виде JSON, и длина его не пугает. Но по семантике POST не безопасен и не идемпотентен. Поэтому посредники не имеют права ни кешировать его ответы, ни автоматически повторять при сбое: а вдруг это оформление заказа, и повтор спишет деньги дважды.
И разработчики десятилетиями использовали POST как хак: гоняли через него read-only поисковые запросы, хотя метод для этого не предназначен. Классический пример - GraphQL, который для запросов обычно опирается на POST, хотя технически поддерживает и GET.
Идемпотентность простыми словами
Идемпотентность гарантирует, что результат одного вызова и множества одинаковых вызовов совпадает. Отправили запрос один раз или десять раз подряд из-за плохой связи - состояние ресурса не изменится, деньги не спишутся повторно, лишний заказ не создастся.
QUERY объявлен и безопасным (safe), и идемпотентным: он задаёт вопрос и не меняет целевой ресурс. Это открывает две вещи, которых не было у POST: кеширование ответов на промежуточных узлах и автоматический повтор при обрыве. Как сформулировал разработчик Elie Treport: «Благодаря QUERY у нас наконец появилось работающее HTTP-кеширование для сложных запросов. Прокси, CDN и браузеры теперь могут кешировать запросы с телом. Это огромный прирост производительности».
QUERY против GET и POST: сравнение методов в таблице
| Метод | Безопасный | Идемпотентный | Где данные | Кеширование посредниками |
|---|---|---|---|---|
| GET | Да | Да | В URL | Да |
| POST | Нет | Нет | В теле | Нет |
| QUERY | Да | Да | В теле | Да |
QUERY берёт тело запроса от POST и семантику «только чтение» от GET. Громоздкий адрес вида /search?category=books&price_min=100&price_max=500&sort=date&tags=a,b,c&date_from=… уезжает в аккуратное тело запроса, а сама ссылка остаётся короткой и предсказуемой.
Что HTTP-метод QUERY значит для приватности
Длинные query-строки в GET дают ещё и утечку. Всё, что ушло в URL, оседает в истории браузера, серверных логах, закладках и заголовках Referer. Если в параметрах были чувствительные значения (поисковый запрос, идентификатор, фильтр по личным данным), они расходятся по множеству мест, где им быть не следует.
Перенос этих параметров в тело запроса заметно сокращает такие следы. Для тех, кто внимательно относится к тому, какие данные оставляет в сети, это приятный побочный эффект стандарта: меньше чувствительной информации в логах и истории при работе с любыми сервисами, в том числе через VPN Sigma.
Что мешает внедрению метода QUERY прямо сейчас
Стандарт есть, но массовой поддержки пока нет. Главный тормоз - HTML-формы: их спецификация понимает только GET и POST, и её нужно обновить ещё до того, как метод начнут поддерживать браузеры. Поэтому первыми QUERY освоят серверные API и промежуточная инфраструктура, а не веб-страницы.
Кто мигрирует первым
Логичные кандидаты на миграцию - эндпоинты поиска REST-сервисов, эластик-подобные запросы и тот же GraphQL, которому больше не придётся выбирать между «данные в теле, но без кеша» и «кеш есть, но URL раздувается». Пока поддержка QUERY ограничена, и переход растянется на годы, ровно как это было с предыдущими расширениями HTTP.



Пока нет комментариев. Будьте первым!