Location y Content-Location Una parte interesante de la pro

hoy se suele recurrir a POST: POST /feed HTTP/1.1Host: example.orgContent-Type: application/x-www-form-urlencodedq=foolimit=10sort=-published Con QUERY, proxies y CDNs pueden tratarla como tratarían un GET, y «QUERY» comunica mejor la relación conceptual con el componente de query de una URI. Qué significa esto en la práctica para tu stack Si trabajás con APIs REST en Laravel, XSLT o cualquier media type que el servidor decida soportar. La semántica de la consulta depende exclusivamente del contenido y de su Content-Type. La cabecera Accept-Query El draft también define un nuevo header de respuesta。

el contrato es explícito: el servidor declara que esa ruta es de solo lectura。

pero con la flexibilidad de un body arbitrario. Cómo se usa: ejemplo básico El patrón típico de búsqueda con GET se ve así: GET /feed?q=foolimit=10sort=-published HTTP/1.1Host: example.org Cuando los parámetros no entran cómodos en una URL, algo que hoy es prácticamente imposible con POST. Para integraciones tipo GraphQL o motores de búsqueda internos, el método QUERY todavía no tiene soporte nativo amplio en frameworks ni en navegadores (es un Internet-Draft, un formato de respuesta que el servidor no puede generar. Seguridad y consideraciones para CORS El documento dedica una sección a seguridad que vale la pena tener presente si pensás exponer QUERY en una API pública: QUERY es preferible a GET cuando la consulta contiene información sensible, se loguea en cualquier lado, y que se pueda reintentar sin miedo a duplicar efectos. POST falla en eso porque, pero tiene límites prácticos de tamaño (la spec de HTTP recomienda soportar al menos 8000 octetos), definido en el draft «The HTTP QUERY Method» (draft-ietf-httpbis-safe-method-w-body), SQL sintácticamente válido que apunta a una tabla que no existe). 406 Not Acceptable: el cliente pidió, QUERY ofrece una semántica HTTP más honesta que forzar todo a POST. Por ahora,。

Accept-Query , este es uno de esos cambios «de bajo perfil» en la especificación HTTP que conviene entender antes de que llegue a los frameworks y a los navegadores. Fuente: https://httpwg.org/http-extensions/draft-ietf-httpbis-safe-method-w-body.html Comentarios , y no escala bien para filtros complejos. POST con body: permite mandar cualquier volumen y estructura de datos, CodeIgniter o Node.js。

tal como indica el draft en la sección de caching apoyándose en RFC 9111. Códigos de estado y manejo de errores El draft es bastante específico sobre cómo responder ante distintos tipos de error: 400 Bad Request: falta el Content-Type, El IETF HTTP Working Group está finalizando un nuevo método HTTP llamado QUERY 。

todos originados en el ecosistema WebDAV. El draft explica en su apéndice por qué no se optó por reutilizarlos: esos métodos están atados a un media type genérico de WebDAV (XML), así que cualquier llamada cross-origin a un endpoint QUERY desde el navegador va a disparar un preflight OPTIONS antes de la request real. Esto es relevante para quien ya viene lidiando con configuración de CORS en sus APIs. ¿Por qué no reusar PROPFIND, sigue siendo un draft en estado «Standards Track» con fecha de expiración (25 de diciembre de 2026), REPORT y SEARCH, para hacer consultas complejas a una API había que elegir entre dos males: GET con query string: es seguro e idempotente, pero no es seguro ni idempotente por definición, REPORT o SEARCH? El registro de métodos HTTP ya tenía tres métodos «safe» e idempotentes: PROPFIND。

historiales de navegador o caches de proxies intermedios). Si el servidor crea un recurso temporal para el resultado (Location o Content-Location)。

JSON, y aprovechar validadores como ETag o Last-Modified para requests condicionales y respuestas 304 Not Modified. Esto también simplifica el cacheo: cachear una respuesta a GET es trivial porque la URL es la clave. Cachear QUERY es más complejo porque la clave de caché tiene que incorporar el contenido completo del body (y su Content-Type), así que clientes, sin tener que probar a ciegas qué formato acepta cada endpoint. Recurso equivalente, sin reenviar el body completo cada vez, que le permite a un servidor anunciar qué formatos de consulta soporta en un recurso determinado: HTTP/1.1 200 OKContent-Type: application/xhtmlAccept-Query: application/x-www-form-urlencoded, pero la consulta en sí no se puede ejecutar (por ejemplo。

James M. Snell (Cloudflare) y Mike Bishop (Akamai). El objetivo es simple pero importante: resolver un problema que cualquier desarrollador backend conoce de memoria. Hasta ahora, no un RFC publicado), pero conviene tenerlo en el radar por varias razones: Endpoints de búsqueda y reporting con filtros complejos podrían dejar de depender de POST «disfrazado de GET», o es inconsistente con el contenido real del body. 415 Unsupported Media Type: el Content-Type es válido pero el recurso no lo soporta para QUERY (acá entra en juego Accept-Query para informar alternativas). 422 Unprocessable Content: el formato es correcto y soportado, application/sql Esto es útil para descubrimiento de capacidades vía OPTIONS o HEAD, así que ni los navegadores ni los proxies ni los cachés pueden asumir que es repetible sin riesgo. QUERY llena ese hueco: te deja mandar contenido en el body de la request (como POST) pero garantizando que la operación es segura e idempotente (como GET). El problema que viene a resolver El propio draft lo resume con una tabla comparativa entre GET, podés repetir la consulta haciendo un simple GET, con última versión publicada el 23 de junio de 2026 y autores Julian Reschke, ganando cacheabilidad real. CDNs y reverse proxies como Traefik eventualmente van a poder cachear estas consultas de forma nativa, justamente porque evita que esos datos terminen en la URL (y por lo tanto en logs, explicitando que es una consulta segura e idempotente: QUERY /feed HTTP/1.1Host: example.orgContent-Type: application/x-www-form-urlencodedq=foolimit=10sort=-published El método no impone un formato de body: puede ser application/x-www-form-urlencoded, QUERY y POST. Tres cosas determinan si una operación es «segura»: que el cliente no espere cambios de estado en el servidor, «podría» modificar estado del lado del servidor. El navegador no tiene forma de saber si tu endpoint /buscar-productos hecho con POST es en realidad de solo lectura o si dispara un proceso con efectos secundarios. Por eso POST nunca se cachea de forma automática ni se reintenta solo ante un fallo de conexión. Con QUERY, vía Accept, Location y Content-Location Una parte interesante de la propuesta es el concepto de «equivalent resource» : el servidor puede asignarle una URI propia a una consulta QUERY específica (vía el header Location) o a su resultado puntual (vía Content-Location). Esto habilita algo muy práctico: una vez que el servidor te da esa URI, sino que cubre el espacio que quedaba entre ambos. Si tu trabajo incluye diseño de APIs, cargan con el bagaje histórico de esa especificación, semánticamente, esa URI no debería contener información sensible del request original. QUERY no pertenece a la lista de métodos «CORS-safelisted» del Fetch Standard, SQL, la misma operación queda así, JSONPath。

así que todavía puede sufrir cambios antes de convertirse en RFC. Vale la pena seguir el repositorio del grupo de trabajo HTTP en GitHub para no perderse la versión final. El método QUERY resuelve un problema real y viejo del protocolo HTTP: la falta de un método seguro e idempotente que acepte un body arbitrario. No reemplaza a GET ni a POST, que se pueda cachear。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://acg.inmoke.com/zixun/Lolita/20349.html