De HTTP-methode die we al 16 jaar faken

Backend-ontwikkelaars kampen met een constant probleem bij zoek-endpoints.

Je wilt GET gebruiken omdat zoeken een leesoperatie is. Maar je zoekfilters worden te groot. Je URL bereikt de twee duizend tekens. Proxies inkorten je verzoek. Je zoekopdracht mislukt.

Je schakelt over naar POST om het limiet op te lossen. Dit werkt, maar het is een leugen. POST vertelt elke proxy en cache dat je gegevens aan het wijzigen bent. Dit stopt alle caching. Je verliest de snelheid van een GET.

Zestien jaar lang hadden we geen middenweg.

In juni 2026 publiceerde de IETF RFC 10008. Dit introduceert de QUERY-methode. Het is de eerste nieuwe HTTP-methode sinds 2010.

QUERY combineert de beste eigenschappen van GET en POST:

• Het bevat een request body voor complexe filters. • Het is 'safe', wat betekent dat de server de status niet wijzigt. • Het is idempotent, wat betekent dat je het twee keer kunt uitvoeren met hetzelfde resultaat. • Het is cachebaar, waardoor CDN's antwoorden kunnen opslaan.

Een QUERY-verzoek ziet er zo uit:

QUERY /products HTTP/1.1
Host: api.shop.example
Content-Type: application/json

{
  "filter": { "category": "boots", "inStock": true },
  "sort": "-price",
  "limit": 20
}

De nieuwe RFC voegt ook de Accept-Query-header toe. Hiermee kan een API aangeven welke query-formaten deze ondersteunt.

Een waarschuwing voor ontwikkelaars:

Het cachen van een QUERY-verzoek is anders dan een GET-verzoek. Een GET-cache gebruikt de URL als sleutel. Een QUERY-cache moet de request body als onderdeel van de sleutel gebruiken. Als je infrastructuur dit niet begrijpt, kan de ene gebruiker de privé-zoekresultaten van een andere gebruiker zien.

Haast je niet om dit al in productie te gebruiken. Het ecosysteem heeft tijd nodig om bij te komen.

• Browsers ondersteunen QUERY nog niet in fetch(). • HTML-formulieren ondersteunen alleen GET en POST. • Veel API-gateways en WAF's zullen onbekende methoden weigeren.

Ontwerp je API met QUERY in gedachten, maar houd je POST-endpoints voorlopig aan.

QUERY beëindigt een langdurig compromis. Het stelt je in staat om complexe vragen te stellen zonder het netwerk te misleiden.

Wacht je tot het ecosysteem bij is, of ben je QUERY nu al aan het testen?

Bron: https://dev.to/arya_koste_5845807df94776/query-the-http-method-weve-been-faking-for-16-years-f9i