Все заметки
HTTP получил новый метод впервые за 20 лет
9 июля 2026 г.
2 мин
0

HTTP получил новый метод впервые за 20 лет

Если ты работаешь с REST API - ты наверняка делал это:

POST /search
{ "category": "laptops", "price": { "min": 1000, "max": 2000 } }


Поиск через POST. Все так делали. Это работало. Но это была ложь - мы говорили HTTP «эта операция что-то меняет», хотя на самом деле просто читали данные. 🤥

В июне 2026 года IETF опубликовал RFC 10008 и стандартизировал новый HTTP метод - QUERY. Первый новый метод с 2010 года когда появился PATCH. 16 лет без изменений.

В чём была проблема


GET - идеален для чтения. Безопасный, идемпотентный, кэшируемый. Но у него есть ограничение - нельзя передать тело запроса. А URL имеет лимит ~8000 символов. Сложные фильтры туда просто не влезают.

POST - позволяет передавать любые данные в теле. Но HTTP считает его небезопасным - он может менять состояние. Поэтому кэш не работает, автоматические повторы опасны, прокси не могут оптимизировать.

Разработчики годами использовали POST для поиска - и это нарушало семантику протокола.

Что такое QUERY


QUERY - это GET с телом запроса. Берёт лучшее от обоих методов:
— Тело запроса как у POST - можно передавать сложные фильтры
— Безопасный и идемпотентный как GET - можно кэшировать и повторять без последствий
— Приватнее - данные в теле, а не в URL который логируется везде

QUERY /users HTTP/1.1
Content-Type: application/json
{ "role": "admin", "sort": "name", "page": 1 }


Когда использовать


Пока рано переводить всё в продакшн - фреймворки только начинают добавлять поддержку. Но уже сейчас стоит посмотреть на свои POST-эндпоинты которые только читают данные - это первые кандидаты на миграцию.

Авторы RFC - инженеры из Cloudflare и Akamai. Это значит что поддержка на уровне CDN появится раньше чем в фреймворках. 🚀