Resumen
- SEARCH devuelve los registros que un servidor produjo bajo una gramática, un árbitro, un alcance y un principal. Una omisión puede ser FALSE, UNKNOWN, falta de acceso, límite de alcance o truncamiento.
- Un conjunto parcial puede ser cualquier subconjunto válido. Estar ordenado solo dice cómo se ordenaron las filas devueltas, no que sean las mejores de toda la colección.
La base de datos decidió a partir del silencio
Un flujo de borrado busca documentos que cumplen una condición. El resultado no contiene una URI conocida, así que el flujo concluye que el documento desapareció y cierra su registro. El salto parece razonable hasta leer las reglas de RFC 5323: no estar en una respuesta SEARCH admite varias causas incompatibles con la inexistencia.
La gramática DAV:basicsearch evalúa condiciones con TRUE, FALSE y UNKNOWN. Solo TRUE incluye el recurso. Si una propiedad produciría un estado no-2xx en PROPFIND, se considera NULL; si el principal no puede leerla, debe evaluarse como ausente. El contenido no legible se trata como si GET fallara. En todos esos casos la fila puede faltar sin que el predicado sea falso en una realidad global.
La cadena vacía tampoco es NULL. Es un valor definido. Confundir ambas situaciones convierte una diferencia de evidencia en una equivalencia de datos y altera comparaciones, orden y decisiones posteriores.
El servidor puede no haber mirado el resto
Para controlar gasto de cómputo o transmisión, el servidor puede truncar. Sigue respondiendo 207 Multi-Status, añade un 507 asociado al árbitro y debería devolver resultados parciales. La norma advierte que muchos recursos coincidentes quizá no fueron examinados.
La selección parcial puede ser cualquier subconjunto del conjunto que satisfaría la consulta. Si el cliente pidió orden, esas filas deben estar ordenadas. Pero el orden es una propiedad interna del subconjunto. No garantiza que las filas visibles sean las primeras del universo completo.
Perder el elemento 507 es perder la diferencia entre “estos son todos” y “estos son algunos”. Un proxy XML, una tabla analítica o un adaptador JSON que conserve solo las respuestas de recursos crea una certificación inexistente.
El cliente puede solicitar DAV:limit, aunque el servidor puede ignorarlo. Con orden y límite, debería devolver los elementos de mayor orden. El verbo normativo no elimina la necesidad de observar qué ocurrió. El límite solicitado, el límite aplicado y el truncamiento del servidor son hechos distintos.
El árbitro ejecuta; el alcance decide la población
La Request-URI nombra al árbitro de búsqueda. RFC 5323 no exige que coincida con el alcance. La gramática define esa relación. En DAV:basicsearch, DAV:from declara las URI de alcance y la profundidad.
Profundidad cero incluye solo la colección; uno añade hijos inmediatos; infinity incluye descendientes. Una referencia relativa se resuelve contra la Request-URI. Una absoluta puede apuntar a otro lugar, aunque el servidor puede limitar esquemas y destinos. Múltiples alcances son opcionales y deben fallar si no están admitidos.
Guardar el predicado sin el alcance resuelto hace imposible repetir la pregunta. Guardar el árbitro como alcance cambia la población. Tampoco una profundidad infinita promete atravesar referencias de redirección si el comportamiento correspondiente no fue solicitado y soportado.
La consulta completa incluye gramática, árbitro, alcance, principal, selección, condición, orden y límites. Quitar uno de esos componentes produce otra consulta, aunque la interfaz mantenga el mismo nombre.
La capacidad anunciada no describe toda la ejecución
El encabezado DASL y DAV:supported-query-grammar-set anuncian gramáticas. Saber que el servidor comprende una gramática no basta para crear una consulta válida ni demuestra que una consulta se ejecutó. Query Schema Discovery puede revelar propiedades buscables, seleccionables, ordenables y operadores opcionales.
El descubrimiento de esquema es opcional y depende del árbitro y el alcance. La identidad del principal también puede cambiarlo sin que todos los factores queden expuestos. “Searchable” significa voluntad de comprobar la propiedad, no que cada recurso la defina.
Los identificadores de gramática son URI, no instrucciones de descarga. Una aplicación no debe recuperarlos solo porque empiezan con HTTP. La representación simbólica de una capacidad no es código ni prueba de funcionamiento.
Las puntuaciones de relevancia tampoco viajan bien. Compararlas entre resultados solo suele tener sentido cuando el mismo motor trabaja sobre la misma colección. Un número fuera de contexto no conserva corpus, algoritmo ni estado del índice.
Una URI no siempre equivale a un objeto
Varias URI dentro del alcance pueden mapear al mismo recurso. El servidor debería informar una sola. DAV:resource-id ayuda a encontrar duplicados posibles, pero no convierte el href elegido en nombre canónico perpetuo.
Contar filas como objetos puede sobredimensionar o reducir un inventario. La evidencia conserva href, identificador, estados de propiedades, hora y árbitro. La deduplicación se documenta como otra decisión.
La respuesta exitosa no debería almacenarse en caché. Derechos, propiedades, miembros de la colección e índice cambian. Un resultado es una observación fechada y no una fotografía inmóvil.
El expediente que permite decir algo responsable
Conserve XML exacto, gramática, Request-URI, alcances resueltos, profundidades, opciones de redirección y versión, principal, autorización, selección, árbol de condiciones, orden y límites. En la respuesta, guarde 207, cada fila y propstat, href, identificadores, puntuaciones, la fila 507 y edad o época del índice cuando exista.
No llame “inventario” a los registros sin prueba adicional de enumeración. No convierta ausencia en FALSE si UNKNOWN, permisos, alcance o truncamiento siguen abiertos. No compare puntuaciones entre sistemas. No confunda descubrimiento de esquema con recibo de ejecución.
Vigile techos recurrentes, 507 eliminados, cambios de esquema, diferencias con una enumeración PROPFIND autorizada, referencias no seguidas y consultas de coste extremo. Las entidades XML externas merecen desconfianza: pueden modificar significado, provocar solicitudes y ampliar la superficie de denegación de servicio.
RFC 5323 permite buscar sin descargar cada recurso. Su disciplina consiste en no dar al resultado más autoridad de la que tuvo el cálculo. La fila presente es evidencia positiva local. La fila ausente conserva preguntas.
Fuentes
- RFC 5323 HTML
- RFC 5323 texto
- Información RFC Editor
- IETF Datatracker
- Historial Datatracker
- Referencias de RFC 5323
- Documentos que citan RFC 5323
- Erratas RFC 5323
- RFC 4918
- RFC 2518
- RFC 3253
- RFC 3744
- RFC 4437
- RFC 3986
- RFC 9110
- Registro IANA de métodos HTTP
- RFC 2119
- Heng Lu: capas de realidad
- Heng Lu: primacía del código en ejecución
- Heng Lu: problema de agencia
Informe para miembros
Contexto ampliado del perfil
Inicia sesión con el nivel de membresía adecuado para desbloquear el informe completo y las notas de las fuentes.
Solo para Strategic Circle
Strategic Circle
Abierto a todos los lectores. Desbloquea informes de perfil después de unirte e iniciar sesión.
Únete a Strategic CircleSolo para Leadership Alliance
Leadership Alliance
Para propietarios y directivos cualificados de activos de propiedad intelectual; inicia sesión para desbloquear los informes de la alianza.
Unirse a Leadership Alliance
