Fuente
qa семпай про тестування | в особисті прилітають питання по новому HTTP методу QUERY, ось вам роз...
1 140 Vistas/Alcance
2026-07-06 08:50
Mensaje №698
в особисті прилітають питання по новому HTTP методу QUERY, ось вам розʼяснення ситуації Що сталося? У червні 2026 *IETF опублікував **RFC 10008 - The HTTP QUERY Method. Це перший новий стандартний HTTP-метод із часів PATCH (2010). Простими словами: це "GET, який може мати тіло запиту" - безпечний, ідемпотентний і кешований, але з можливістю передавати складне тіло, як у POST.Яку проблему вирішує? типовий пошуковий ендпоінт: вкладені фільтри, діапазони дат, масиви, гео-параметри, або GraphQL-запит. І щоб це вирішити у вас було два поганих варіанти:1 варіант - запхати все в GET:наприклад щось таке /orders?select=surname,email&limit=10&match=email=*@example.*&sort=-createdЯкі з цим проблеми:• url має практичні ліміти • складні структури (масиви, вкладеність) в query-рядку це біль• може мати чутливу інформацію2 варіант - використання POST для отримання інформації (хто працював з elastic search знає про що я) POST /search{ "query": {...} } Які з цим проблеми:• POST не safe і не ідемпотентний. Протокол вважає, що ти щось змінюєш.• кеші (браузер, CDN, реверс-проксі) відмовляються кешувати відповідь.• автоматичний ретрай при обриві мережі стає небезпечним - семантично незрозуміло, чи повтор створить дубль.QUERY закриває ці прогалини.Тіло запиту - як у POST (складний запит їде в body, а не в URL).Safe + idempotent - як у GET (сервер не змінює стан; повтор дає той самий результат).Кешованість - відповідь на QUERY можна кешувати, як на GET.QUERY новий на рівні самого протоколу HTTP, а не в якомусь фреймворку. Це новий запис у IANA HTTP Method Registry - офіційному реєстрі методів, де живуть GET, POST, PUT, DELETE, PATCH. Технічно HTTP-метод - це просто рядок, і сервер міг приймати QUERY і раніше. Але без стандарту жоден проксі, CDN, браузер чи фреймворк не знав, що з ним робити. RFC 10008 дає всім єдине трактування: як кешувати, як ретраїти, які коди помилок повертати. Що буде далі? 1. .NET 10 уже підтримує: HttpMethod.Query на клієнті, HttpMethods.Query / IsQuery на сервері.2. Браузери ще не вміють слати QUERY з fetch/XHR. HTML-форми знають лише GET і POST. Є активна пропозиція WHATWG на method="query" для форм (whatwg/html issue #12594).Чому про це всі так говорять?Крайній раз новий метод додавали в стандарт в 2010 році... тобто це дійсно подія бо додали новий метод вперше за 16 років!! Але QUERY - не революція в концепції; розробники роками робили це вручну через POST. RFC 10008 - це стандартизація того, що вже до цього робили неформально. Прогалину між GET і POST офіційно закрито!Можете ще почитати пост Іри Вольних 👉 Про новий HTTP QUERY та що це нам несе у API тестування*Internet Engineering Task Force - це міжнародна організація, яка розробляє й підтримує базові технічні стандарти інтернету: TCP/IP, HTTP, TLS, DNS, електронну пошту** Request for comments - чернетку роками обговорювали в httpbis, її ревʼював навіть Roy Fielding (автор дисертації про REST), і лише після консенсусу ***IESG схвалив публікацію***Internet Engineering Steering Group: Керівний орган, який відповідає за технічне управління діяльністю IETF➿➿➿➿➿➿➿Нагадую про вебінар по Claude Code і збір для Хартії➡️➡️Участь: донат від 1000 грн на збір для Хартії: https://send.monobank.ua/jar/5Sms2NGYv6