El diseño de APIs REST ha arrastrado durante décadas una contradicción incómoda en su arquitectura. Cuando un desarrollador necesitaba realizar una consulta compleja al servidor —como una búsqueda con múltiples filtros estructurados— se veía obligado a elegir entre romper las buenas prácticas de diseño o arriesgar la estabilidad de la aplicación.
La publicación oficial del estándar RFC 10008 por parte de la Internet Engineering Task Force (IETF) introduce formalmente el método QUERY, un nuevo verbo HTTP que promete resolver este dilema de raíz fusionando lo mejor de GET y POST.
El problema histórico: La encrucijada entre GET y POST
Hasta hoy, el protocolo HTTP ofrecía dos vías principales para interactuar con los recursos, pero ambas presentaban limitaciones severas ante consultas avanzadas:
GET(Seguro pero limitado): Es el método idóneo para leer información. Es seguro e idempotente (no altera el estado del servidor) y se puede almacenar en caché de forma nativa. Sin embargo, los datos deben viajar obligatoriamente en la URL (Query Strings). Si los filtros de búsqueda son masivos o incluyen estructuras complejas (como JSONs anidados), la URL se satura rápidamente, chocando contra el límite práctico de ~8,000 caracteres de los servidores y proxies, lo que provoca errores de petición.POST(Flexible pero conceptualmente incorrecto): Para esquivar el límite de la URL, la industria adoptó la mala práctica de usarPOSTpara las búsquedas, ya que permite enviar un cuerpo (body) con datos estructurados ilimitados. El problema es quePOSTno es seguro ni idempotente; está diseñado para crear o modificar recursos. Por ende, los navegadores y redes CDN no cachean estas peticiones por defecto, y si la red falla a mitad de camino, los reintentos automáticos son peligrosos porque podrían duplicar transacciones en el servidor.
El origen de la iniciativa: ¿De dónde surge QUERY?
La necesidad de un método de consulta con cuerpo no es nueva. El debate comenzó a gestarse con fuerza a mediados de la década de 2010 dentro de los grupos de trabajo de la IETF.
El antecedente: SEARCH
Inicialmente, se intentó estandarizar el método SEARCH (derivado de la especificación WebDAV en el RFC 5323). Sin embargo, SEARCH arrastraba demasiada carga heredada de sistemas antiguos de gestión de archivos y no encajaba limpiamente con las necesidades de las APIs web modernas (REST y JSON).
El impulso moderno (2020-2025)
Ante el auge de arquitecturas basadas en datos complejos, el HTTP Working Group de la IETF, liderado por figuras clave del desarrollo web, decidió reiniciar el esfuerzo bajo una nueva propuesta unificada llamada simplemente QUERY. La iniciativa cobró fuerza al identificar que frameworks modernos y especificaciones como GraphQL o las APIs de búsqueda corporativas estaban abusando masivamente de POST por pura necesidad técnica. Tras años de borradores (drafts), discusiones sobre semántica y pruebas de compatibilidad con proxies antiguos, la propuesta alcanzó la madurez necesaria para convertirse en el estándar oficial RFC 10008.
Anatomía de HTTP QUERY: Lo mejor de ambos mundos
El método QUERY ha sido diseñado específicamente para realizar operaciones de lectura basadas en parámetros complejos. Sus características principales son:
- Soporte nativo de cuerpo (Request Body): Permite enviar cargas útiles estructuradas (JSON, SQL, XML) sin alterar la URL.
- Seguridad e Idempotencia: El protocolo garantiza que una petición
QUERYjamás modificará el estado del sistema. Es una lectura pura. - Capacidad de Caché: Al ser conceptualmente idéntico a
GETen términos de efectos secundarios, las respuestas pueden ser almacenadas en caché por navegadores y CDNs (utilizando el cuerpo de la petición como parte de la clave de caché o Cache Key). - Negociación de formato (
Accept-Query): El RFC introduce la cabecera de respuestaAccept-Query. Con ella, un servidor puede indicarle al cliente exactamente qué formatos soporta para realizar búsquedas (por ejemplo,application/jsonotext/sql).
Ejemplo de una petición QUERY
QUERY /usuarios/filtrar HTTP/1.1
Host: api.ejemplo.com
Content-Type: application/json
Accept: application/json
{
"roles": ["admin", "editor"],
"fecha_registro": { "desde": "2026-01-01" },
"paginacion": { "limite": 50, "pagina": 1 }
}
Adopción y el futuro del desarrollo web
Al tratarse de un estándar recién publicado, la industria se encuentra en una fase de transición. Herramientas de bajo nivel como curl ya permiten forzar el verbo, pero el verdadero cambio ocurrirá a medida que los navegadores web (Chrome, Firefox, Safari), los entornos de backend (Node.js, Python, Java) y, sobre todo, los proveedores de infraestructura (Cloudflare, AWS, Nginx) añadan soporte nativo para procesar y cachear el cuerpo de este nuevo método.
A largo plazo, la llegada de QUERY promete limpiar el diseño de las APIs globales, devolviendo a POST su propósito original de escritura y ofreciendo a los desarrolladores una herramienta nativa, segura y eficiente para la explotación de datos complejos.