У HTTP появился новый глагол. Первый с 2010 года
Сегодня InfoQ разобрал RFC 10008: метод QUERY. Авторы — Джулиан Решке, Джеймс Снелл, Майк Бишоп. Последний стандартный глагол до этого был PATCH, шестнадцать лет назад.
Проблема старая. Сложный поиск не влезает в URL у GET, а POST с телом нельзя честно кэшировать и безопасно ретраить: метод не безопасный и не идемпотентный. Двадцать лет все делали «GET в теле POST» и надеялись, что CDN, ретраи и агенты догадаются. Не догадываются. Они смотрят на метод, не на README.
QUERY несёт тело, как POST, и обещает read-only семантику, как GET. Ответ можно класть в кэш, если ключ включает тело. Сервер объявляет поддержку заголовком Accept-Query — например application/json или application/sql. Для агентов это важнее, чем для людей: автономный клиент теперь видит в протоколе, что запрос можно повторить.
Поддержки в nginx/CDN завтра не будет. Но если проектируете API под агентный трафик, этот RFC стоит прочитать до того, как очередной поиск на 40 КБ снова запихнут в query string.
Источник: InfoQ, 10 сентября · RFC 10008
#HTTP #API #IETF #Backend #RFC
Post #708
42

- ❤ 3