HTTP отримав свій перший новий метод за 20 років
Ви, ймовірно, вже робили це раніше.
Вам потрібно знайти товари. Ваші фільтри пошуку занадто великі для URL. Щоб вирішити це, ви використовуєте POST-запит.
Це працює. Але це обман. Ви кажете HTTP, що змінюєте дані, хоча насправді лише читаєте їх.
У червні 2026 року IETF опублікував RFC 10008. Він визначає новий HTTP-метод під назвою QUERY. Це перший новий метод за понад два десятиліття. Він вирішує саме ту проблему, що була згадана вище.
Поточна проблема
GET чудово підходить для читання даних. Він є безпечним і кешованим. Але він не може містити тіло запиту. URL-адреси також мають обмеження за кількістю символів.
POST містить тіло. Але HTTP припускає, що POST змінює стан. Це означає, що ви втрачаєте автоматичне кешування та безпечні повторні спроби. Якщо POST-запит завершився за тайм-аутом, ви не можете просто повторити його. Ви не знаєте, чи сервер уже щось змінив.
Рішення: QUERY
QUERY — це GET-запит із тілом. Він забезпечує дві гарантії:
- Він є безпечним. Він не змінює дані.
- Він є ідемпотентним. Його повторне надсилання дає той самий результат, що й перше.
Як використовувати це вже сьогодні
Ви можете використовувати це прямо зараз за допомогою Axios або Fetch.
Приклад Axios:
axios.request({
method: 'QUERY',
url: '/api/products',
data: { category: 'shoes', maxPrice: 100 }
})
Приклад Fetch:
fetch('/api/products', {
method: 'QUERY',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ category: 'shoes', maxPrice: 100 })
})
Чого очікувати далі
Перехід не відбудеться миттєво. Ось дорожня карта:
- Інфраструктура: Nginx та Apache пропускатимуть ці запити. Можливо, вам знадобиться оновити ваш WAF або правила безпеки, щоб дозволити метод QUERY.
- Фреймворки: Очікуйте, що Spring, Rails та Express додадуть нативну підтримку протягом 2026 та 2027 років.
- CDN: Оскільки інженери з Cloudflare та Akamai допомагали розробляти цей стандарт, очікуйте швидкої підтримки з боку CDN. Це значно полегшить кешування.
Чому це важливо для вашого коду
- Автоматичні повторні спроби: Оскільки QUERY є ідемпотентним, мобільні додатки та клієнти можуть безпечно повторювати невдалі запити.
- Краще кешування: CDN можуть кешувати відповіді QUERY на основі тіла запиту. Ви зможете видалити власні рівні кешування на Redis.
- Чистіші URL-адреси: Вам більше не потрібно втискати складні JSON-об'єкти в параметри запиту URL.
- Семантичні API: Документація вашого API стане зрозумілішою. Розробники точно знатимуть, які ендпоінти читають дані, а які — записують.
Підготуйте свою команду, провівши аудит поточних POST-ендпоінтів. Визначте ті, які лише читають дані. Це ваші майбутні QUERY-ендпоінти.
