Les requêtes POST ne remplissent pas toujours ces critères. Mais les requêtes QUERY le font. L’entrée de l’opération QUERY est, comme POST, transmise en tant que contenu de la requête, plutôt que dans le cadre de l’URI de la requête comme c’est le cas avec GET. Contrairement au POST, QUERY permet de fonctionner des fonctions telles que la mise en cache et les tentatives automatiques, précisément parce qu’il est sûr et idempotent.
Lecture seule déguisée
« La RFC 10008 est importante car elle donne à la solution de contournement préférée du Web une identité de protocole », a déclaré Sanchit Vir Gogia, analyste en chef chez Greyhound Research. « Les développeurs ont déguisé les questions en lecture seule en commandes POST pendant deux décennies ; QUERY transporte la question dans le corps de la requête tout en déclarant qu’il est sûr de réessayer et de mettre en cache. La signification est une intention lisible par la machine ; les moteurs de nouvelle tentative, les caches et les agents autonomes agissent sur ce qu’une méthode déclare, et non sur ce que la documentation prévoit. Sous l’automatisation, la sémantique devient une politique. «
« GET fonctionne tant qu’une requête s’intègre confortablement dans un URI, et cesse de fonctionner dès qu’un développeur a besoin de filtres approfondis, de longs ensembles d’identifiants ou d’un document de requête complet », a expliqué Gogia. « Les URI attirent également l’attention via les historiques, les signets et les journaux d’accès, et le codage de chaque combinaison d’entrée dans l’adresse transforme silencieusement chaque permutation en une ressource distincte. »
