RFC 10008: Новий HTTP метод QUERY
RFC 10008: Новий HTTP метод QUERY
RFC Editor нещодавно опублікував RFC 10008, який визначає новий HTTP метод під назвою QUERY. Цей документ був створений Internet Engineering Task Force (IETF), основною групою, що стоїть за головними протоколами Інтернету, і був випущений як пропонований стандарт у червні 2026 року.
Специфікація методу QUERY
Нова специфікація, названа “Метод HTTP QUERY”, надає веб-розробникам і дизайнерам API стандартний спосіб обробки складних запитів тільки для читання, які потребують тіла запиту. Простими словами, вона заповнює прогалину між GET і POST.
Суть HTTP методів
Багато людей ніколи не бачать HTTP методи, але вони працюють в бекграунді в браузерах, додатках, API, пакетних менеджерах, командних інструментах та веб-сервісах. GET використовується для запиту даних, POST — для відправки даних, PUT і PATCH — для оновлення ресурсів, а DELETE — для їх видалення.
Проблеми з GET і POST
QUERY був створений для вирішення специфічної проблеми: що повинен використовувати API, коли потрібно надіслати складний запит на сервер, але тільки хоче отримати дані без внесення змін? До цього моменту розробники мали два основні, але недосконалі варіанти.
Перший варіант — GET. Він добре підходить для простих запитів, де параметри можуть бути вставлені прямо в URL. Наприклад, запит на фід може містити ключове слово, ліміт і порядок сортировки в адресі. Цей метод простий, широко підтримується і чітко читається як тільки для читання.
Але GET може бути незручним, коли запит великий, структурований або важко вмістити в URL. RFC вказує на кілька проблем: обмеження розміру можуть бути неясними, деякі дані важко кодувати в URI, запитувані URI частіше записуються або додаються в закладки, а кожна комбінація вхідних запитів стає окремим ресурсом.
Другим варіантом був POST. На відміну від GET, POST може нести тіло запиту, тому його часто використовують, коли клієнт повинен надіслати більш складні дані. Це вирішує проблему форматування, але створює нову: POST не показує чітко, що запит тільки для читання. Запит POST може створити, оновити, активувати роботу, надіслати форму або просто виконати пошук.
Метод QUERY: Новий стандарт для читання
QUERY покликаний заповнити цю прогалину. З його допомогою клієнт поміщає запит у тіло запиту, подібно до POST. Ключова різниця полягає в тому, що QUERY чітко визначається як безпечний і ідемпотентний. Іншими словами, QUERY схожий на GET за значенням, але на POST за способом передачі вмісту запиту.
RFC вказує, що QUERY — це метод, у якому сервер обробляє вміст безпечно та ідемпотентно, а потім повертає результат. Також зазначено, що запити QUERY можуть бути повторені або автоматично перезапущені без хвилювання про часткові зміни.
Переваги методу QUERY для розробників API
Новий метод також робить дизайн API зрозумілішим. Замість того, щоб використовувати POST для запиту тільки для читання, просто тому що GET не є достатньо гнучким, розробники тепер мають метод, який більше відповідає операції.
RFC 10008 також пояснює, як QUERY вписується в сучасну поведінку HTTP. Сервери можуть показати підтримку QUERY у полях відповіді Allow, разом з такими методами, як GET, OPTIONS і HEAD. Специфікація також вводить поле відповіді Accept-Query, яке дозволяє серверу вказати, які формати вмісту запиту він приймає.
Крім того, документ охоплює пов’язані теми, такі як типи медіа, кешування, перенаправлення, умовні запити, запити діапазону та безпеку. Наприклад, відповіді на запити QUERY можуть кешуватися, а запити QUERY можуть бути повторені або перезапущені у разі потреби, наприклад, після відключення зв’язку.
Чи готовий QUERY до впровадження?
Однак, це не те, що користувачі повинні очікувати працювати скрізь відразу. RFC 10008 є документом Інтернет-стандартів з статусом пропонованого стандарту, але впровадження все ще залежить від веб-серверів, фреймворків, проксі, клієнтів, браузерів, платформ API та інструментів розробників, які повинні додати підтримку де потрібно.
Для більш детальної інформації про метод QUERY, відвідайте RFC 10008.




