¡Prepárate! La especificación HTTP acaba de recibir un nuevo integrante que cambiará la forma en que pensamos sobre las consultas de datos. El método QUERY llega con la promesa de ser seguro, idempotente y perfectible para escenarios de lectura intensiva. ¿Listo para descubrirlo?

¿Qué es el método QUERY?

Foto por Malvestida en Unsplash

Publicado en junio de 2026, el RFC 10008 define QUERY como un método safe y idempotent, pensado para recuperar información sin alterar el estado del servidor. Es similar a GET, pero con una semántica más clara cuando la petición incluye parámetros complejos o cuerpos extensos.

Ventajas y características principales

Foto por Jonathan Cooper en Unsplash

Algunas de sus bondades son:

  • Seguridad explícita: los implementadores pueden confiar en que no causará efectos colaterales.

  • Idempotencia garantizada: repetir la petición siempre producirá el mismo resultado, facilitando la reintentos.

  • Soporte para cuerpos: a diferencia de GET, QUERY permite enviar un cuerpo application/json con filtros complejos.

Cacheo y retos de implementación

Foto por Giulia May en Unsplash

El mayor desafío surge cuando intentamos almacenar respuestas de QUERY en caches intermedias. Los caches tradicionales (por ejemplo, Varnish o Cloudflare) están optimizados para GET y pueden ignorar cabeceras como Cache-Control si la solicitud no es GET. Con QUERY, los servidores deben declarar claramente la capacidad de cacheo mediante Vary y Cache-Control, y los proxies deben actualizar sus heurísticas.

Un error común es asumir que Cache-Control: public, max-age=300 funcionará automáticamente. En la práctica, muchos CDNs requieren una regla explícita para reconocer el método QUERY como cacheable.

Implementación en JavaScript

Los navegadores todavía no soportan directamente QUERY en la API fetch, pero podemos usar method y enviar el cuerpo sin problemas. Aquí tienes un ejemplo funcional:

fetch('https://api.ejemplo.com/v1/items', {
  method: 'QUERY',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    // Indicamos que la respuesta es cacheable
    'Cache-Control': 'public, max-age=600'
  },
  body: JSON.stringify({
    filtro: 'activo',
    rango: { desde: '2024-01-01', hasta: '2024-12-31' }
  })
})
  .then(res => {
    if (!res.ok) throw new Error('Error en la petición');
    return res.json();
  })
  .then(data => console.log('Datos recibidos:', data))
  .catch(err => console.error(err));

En el servidor, basta con reconocer el método y procesar el cuerpo como lo harías con POST, pero sin modificar el estado.

Impacto en la industria y mejores prácticas

Grandes jugadores como Google Cloud ya están experimentando con QUERY en sus APIs de datos, y se espera que los estándares de cacheo se actualicen en los próximos meses. Mientras tanto, los equipos deben:

  1. Documentar claramente la cachabilidad de cada endpoint QUERY.

  2. Actualizar sus reglas de CDN para aceptar el método como cacheable.

  3. Realizar pruebas de invalidación y revalidación para evitar datos obsoletos.

Conclusión

El método QUERY abre una puerta interesante para simplificar lecturas complejas sin sacrificar la seguridad ni la idempotencia. Sin embargo, su adopción implica repensar cómo los caches tratan los métodos diferentes a GET. Si te mantienes al día con la especificación y aplicas buenas prácticas de cacheo, podrás sacar el máximo provecho de esta novedad y ofrecer experiencias más rápidas y predecibles a tus usuarios.

Referencias