La méthode HTTP que nous simulons depuis 16 ans
Les développeurs backend sont confrontés à un problème constant avec les points de terminaison (endpoints) de recherche.
Vous voulez utiliser GET car une recherche est une opération de lecture. Mais vos filtres de recherche deviennent trop volumineux. Votre URL atteint deux mille caractères. Les proxys tronquent votre requête. Votre recherche échoue.
Vous passez à POST pour contourner cette limite. Cela fonctionne, mais c'est un mensonge. POST indique à chaque proxy et cache que vous modifiez des données. Cela bloque toute mise en cache. Vous perdez la rapidité de GET.
Pendant seize ans, il n'y a eu aucun juste milieu.
En juin 2026, l'IETF a publié la RFC 10008. Celle-ci introduit la méthode QUERY. C'est la première nouvelle méthode HTTP depuis 2010.
QUERY combine le meilleur de GET et de POST :
• Elle transporte un corps de requête (request body) pour les filtres complexes. • Elle est sûre (safe), ce qui signifie que le serveur ne change pas d'état. • Elle est idempotente, ce qui signifie que vous pouvez l'exécuter deux fois avec le même résultat. • Elle est cacheable, permettant aux CDN de stocker les réponses.
Une requête QUERY ressemble à ceci :
QUERY /products HTTP/1.1
Host: api.shop.example
Content-Type: application/json
{
"filter": { "category": "boots", "inStock": true },
"sort": "-price",
"limit": 20
}
La nouvelle RFC ajoute également l'en-tête Accept-Query. Cela permet à une API de vous indiquer quels formats de requête elle prend en charge.
Un avertissement pour les développeurs :
La mise en cache d'une requête QUERY est différente de celle d'une requête GET. Un cache GET utilise l'URL comme clé. Un cache QUERY doit utiliser le corps de la requête comme partie de la clé. Si votre infrastructure ne comprend pas cela, un utilisateur pourrait voir les résultats de recherche privés d'un autre utilisateur.
Ne vous précipitez pas pour l'utiliser en production. L'écosystème a besoin de temps pour s'adapter.
• Les navigateurs ne supportent pas encore QUERY dans fetch().
• Les formulaires HTML ne supportent que GET et POST.
• De nombreuses passerelles d'API (API gateways) et WAF rejetteront les méthodes inconnues.
Concevez votre API en tenant compte de QUERY, mais conservez vos points de terminaison POST pour le moment.
QUERY met fin à un long compromis. Elle vous permet de poser des questions complexes sans mentir au réseau.
Attendez-vous que l'écosystème rattrape son retard, ou testez-vous déjà QUERY ?
Source: https://dev.to/arya_koste_5845807df94776/query-the-http-method-weve-been-faking-for-16-years-f9i
