Tema representativo de entrevista

Entrevista de backend: ¿Cómo evaluarías el método HTTP QUERY del RFC 10008?

BackendDifícil
Equipo editorial de Offer.ccPublicado Actualizado

Pregunta

Tu API de búsqueda necesita un cuerpo de consulta complejo pero debe conservar una semántica segura, idempotente y almacenable en caché. Explica qué resuelve el método QUERY del RFC 10008, qué capacidades de proxy y cliente verificarías antes del lanzamiento y cuándo seguirías usando GET o POST.

Prompt y contexto

El RFC 10008, publicado en junio de 2026, define el método HTTP QUERY. Permite que un cliente coloque la descripción de la consulta en el contenido de la solicitud mientras declara una operación segura e idempotente sobre el recurso de destino. La entrevista evalúa la brecha entre la semántica del protocolo y la realidad de la infraestructura; no requiere una migración inmediata de cada endpoint de búsqueda POST existente.

Qué evalúan los entrevistadores

Los entrevistadores quieren ver que QUERY no es un “GET con cuerpo”, sino un método independiente: el contenido de la solicitud y el media type participan en la semántica de la consulta, las claves de caché deben tener en cuenta ese contenido y las llamadas de origen cruzado generalmente requieren preflight. Las respuestas sólidas también cubren el descubrimiento con OPTIONS o Accept-Query, el fallback ante 405 para métodos desconocidos, los registros de gateway y la compatibilidad con WAF.

Preguntas para aclarar antes de responder

¿La consulta es verdaderamente de solo lectura?

Confirma que no cambia el estado del recurso de destino. Seguro e idempotente restringen la semántica del recurso de destino; un servidor aún puede crear recursos adicionales que contengan resultados, por lo que “sin efectos secundarios” no es una promesa absoluta de que no haya escrituras en ninguna parte.

¿Cuál es el alcance de compatibilidad?

Enumera Fetch del navegador, SDKs, reverse proxies, CDNs, WAFs, service meshes y clientes internos que deben aceptar QUERY. Un método puede funcionar en el servidor de aplicaciones mientras es rechazado o reescrito en el medio.

¿Cuáles son los requisitos de almacenamiento en caché y privacidad?

El contenido de la consulta puede contener filtros confidenciales. Identifica qué capas registran el URI, el contenido de la solicitud y la clave de caché, y luego decide si es apropiado el almacenamiento en caché compartido, la ofuscación/redacción o una ruta POST.

Marco de respuesta de 30 segundos

“QUERY es útil cuando un contenido de consulta complejo necesita un método explícito que sea seguro, idempotente y almacenable en caché. Descubriría la compatibilidad a través de OPTIONS Allow o el campo de respuesta Accept-Query, y luego verificaría proxies, CDNs, WAFs y clientes reales en una matriz de compatibilidad. La clave de caché debe incluir el contenido de la solicitud y los metadatos de medios relevantes, y las llamadas de origen cruzado necesitan preflight. Si el ecosistema no está listo, mantendría GET para consultas cortas y POST como ruta de compatibilidad en lugar de asumir que la infraestructura se ha actualizado solo porque existe el RFC.”

Respuesta detallada paso a paso

Paso 1: Establecer los límites entre GET, QUERY y POST

Mantén las consultas cortas, marcables como favoritas y copiables en GET. Evalúa QUERY para operaciones de solo lectura con contenido complejo. Mantén POST cuando la operación cambie de estado, el ecosistema carezca de soporte o la compatibilidad con formularios y clientes existentes sea importante. Elige considerando juntos la semántica y la matriz de despliegue.

Paso 2: Definir el content type y el contrato de servicio

QUERY debe llevar un Content-Type coherente con el contenido de su solicitud. El contrato debe especificar el formato de la consulta, la paginación, la ordenación, los errores y si los resultados se pueden recuperar con GET a través de Content-Location o Location.

Paso 3: Agregar descubrimiento de capacidades y fallback seguro

Usa OPTIONS Allow o Accept-Query para anunciar los métodos admitidos y los media types de consulta. Si un cliente ve 405, 415 o un rechazo del gateway, sigue una política explícita de fallback a POST; los reintentos a ciegas pueden amplificar el tráfico.

Paso 4: Diseñar el comportamiento de caché y reintentos

QUERY es idempotente y se puede reintentar después de un fallo de conexión, pero la clave de caché debe incluir el contenido de la solicitud y los metadatos relacionados. Cualquier normalización debe preservar la concordancia entre la semántica de la caché y la del origen, o una consulta puede recibir el resultado de otra consulta.

Paso 5: Verificar el origen cruzado y las operaciones

QUERY no es un método en la lista segura de CORS (CORS-safelisted), por lo que los navegadores activan preflight. Verifica que OPTIONS, Allow, registros, métricas, reglas de WAF, límites de tasa y rastreo reconozcan el método, y registra las tasas de fallback y las causas de falla.

Respuesta de muestra de alta calidad

No reemplazaría POST por lotes solo porque se publicó el RFC 10008. Mantendría filtros pequeños y compartibles en GET y probaría QUERY solo para interfaces de solo lectura con contenido de consulta grande y un conjunto controlado de clientes. El servidor requeriría el Content-Type correcto y anunciaría el soporte con Accept-Query u OPTIONS; la clave de caché incluiría el contenido de la solicitud y el media type, y los clientes de origen cruzado pasarían el preflight. Antes del lanzamiento, los navegadores, SDKs, gateways, CDNs, WAFs y service meshes ejecutarían consultas reales mientras monitoreamos 405, 415, desajustes de caché y truncamiento de registros. Cualquier capa crítica no compatible mantendría el fallback a POST hasta que la evidencia de migración sea suficiente.

Errores comunes

  • Error: Tratar a QUERY como un GET con cuerpo. → Por qué falla: La semántica del método, el almacenamiento en caché y las reglas de descubrimiento difieren. → Solución: Aplica las reglas del RFC para contenido, seguridad, idempotencia y claves de caché.
  • Error: Probar solo el servidor de aplicaciones. → Por qué falla: Los proxies, WAFs, CDNs o SDKs pueden rechazar un método desconocido. → Solución: Ejecuta una matriz de compatibilidad de ruta completa con un fallback a POST.
  • Error: Construir una clave de caché solo a partir del URI. → Por qué falla: Contenidos diferentes pueden producir un resultado compartido incorrectamente. → Solución: Incluye el contenido y los metadatos de la solicitud, luego prueba la normalización.
  • Error: Tratar la idempotencia como un permiso para reintentar indefinidamente. → Por qué falla: Los reintentos aún consumen recursos y amplifican la carga de consultas. → Solución: Combina tiempos de espera, retroceso (backoff), límites de tasa y límites de complejidad de consultas.

Preguntas de seguimiento y respuestas

Pregunta de seguimiento 1: ¿Por qué no convertir cada consulta compleja a QUERY?

La semántica del método es solo una condición. Los clientes, proxies, CDNs, WAFs y el monitoreo deben admitir el método conjuntamente. Cuando la complejidad de la migración y el fallback superan el valor, un POST maduro sigue siendo más seguro.

Pregunta de seguimiento 2: ¿Se pueden almacenar en caché las respuestas de QUERY?

Sí, pero la clave de caché debe incluir el contenido de la solicitud y los metadatos relacionados, y la caché debe comprender el media type. Para resultados confidenciales o normalizaciones riesgosas, restringe el almacenamiento en caché compartido o expón un recurso equivalente a través de GET.

Pregunta de seguimiento 3: ¿Qué sucede en una llamada de navegador de origen cruzado?

QUERY no está en la lista segura de CORS, por lo que el navegador envía un preflight. El servidor debe responder a OPTIONS y permitir el método, los encabezados solicitados y el origen; un preflight fallido debe convertirse en un error de cliente explícito.

Pregunta de seguimiento 4: ¿Qué pasa si un gateway desconocido devuelve 405?

Lee Allow, elige el fallback a POST a partir de una política de cliente versionada y registra la causa y la tasa. No clasifiques una falla por método desconocido como una falla de consulta de negocio.

Fuentes públicas

Preguntas relacionadas