Resumen

  • El RFC 4180 de octubre de 2005 describió un formato CSV habitual y registró text/csv. Era un documento informativo, reconocía diferencias entre programas y dejaba la presencia de una cabecera a un parámetro opcional.
  • El RFC 7111 de enero de 2014 definió fragmentos para escoger una fila, columna o celda de un recurso text/csv: #row=4, #col=2 y #cell=4,1. Las posiciones empiezan en uno. Un cliente sin soporte obtiene el archivo entero.
  • El fragmento nombra una posición, no la identidad del registro. Añadir una fila encima de la cuarta hace que el mismo enlace seleccione su nuevo ocupante. El servidor no puede determinar de forma fiable si el cliente utilizó ese fragmento.

Una cita que parece llevar al dato exacto

Una institución publica en CSV una lista de decisiones. Alguien escribe un informe y quiere citar la que aparece en la cuarta fila. Un enlace al archivo obliga a buscarla entre muchas entradas. Con #row=4 al final de la URL, el enlace parece señalarla directamente. La referencia cabe en una nota y tiene aspecto de precisión verificable.

Esa sintaxis llegó con el RFC 7111, publicado en enero de 2014. El documento añadió identificadores de fragmento al tipo de medio text/csv. Define tres formas de seleccionar partes del archivo: row, col y cell. Su ejemplo data.csv#row=4 designa la cuarta fila del recurso recibido. El ejemplo tiene una fila inicial de cabecera, de modo que la cuarta fila del archivo es apenas el tercer registro de datos. Quien cuente solo las observaciones ya puede apuntar a una entrada distinta.

La historia del CSV explica por qué hacía falta una regla así. En octubre de 2005, RFC 4180 registró oficialmente text/csv y describió el formato que muchos programas ya intercambiaban. Su introducción señalaba una rareza: pese a la difusión de estos archivos, faltaba una descripción formal común. El texto explica cómo separar registros, encerrar campos entre comillas y distinguir cabeceras. También reconoce que las implementaciones difieren. Su categoría era informativa; no convirtió retrospectivamente todas las variantes de CSV en un único dialecto.

El parámetro opcional header de text/csv indica si hay una fila de cabecera, con valores present o absent. Si falta, el programa lector decide por su cuenta. El fragmento, en cambio, sigue contando posiciones físicas desde uno. La diferencia entre “cuarta fila” y “cuarto registro de datos” no es un detalle de estilo: decide qué hecho se muestra. Una cita exacta necesita conocer la estructura del archivo que invoca.

El número conoce la silla, no a quien se sienta en ella

RFC 7111 no se limitó a una fila. #col=2 selecciona la segunda columna, #cell=4,1 la primera celda de la cuarta fila. Una raya permite elegir un intervalo; * llega hasta la última posición; un punto y coma une selecciones separadas. Con esas piezas, quien trabaja con datos puede señalar una línea, una columna o un bloque sin pedir al propietario del archivo que cree miles de páginas individuales.

La dirección adquiere detalle, pero no memoria. Dentro de #row=4 no figura un identificador del registro, una huella del contenido esperado ni una versión fechada del archivo. El cliente cuenta filas en la representación actual. Si la cuarta existe, puede resaltarla con absoluta fidelidad a la instrucción recibida. Esa fidelidad no le revela qué contenía el mismo lugar cuando el autor escribió su informe.

Supongamos que la cuarta fila documenta una aprobación. El editor del archivo añade arriba una decisión anterior que había quedado fuera. La aprobación pasa a la quinta fila. El enlace antiguo continúa abriendo el archivo y seleccionando su cuarta fila, ahora ocupada por otra decisión. Un comprobador que solo pregunte si la URL funciona dará una respuesta tranquilizadora y equivocada para la investigación. El enlace no falla; cambia el objeto de la cita.

También puede pasar al borrar una fila anterior, ordenar la tabla de otro modo o insertar una columna antes de una celda señalada. El riesgo procede de la definición misma: las posiciones cuentan desde uno dentro de la versión recibida. El RFC no ancla el número a una entidad persistente. Una publicación que cambia el orden de su tabla puede alterar el significado de enlaces ajenos sin tocar ninguna de esas URLs.

Para demostrar un caso real de cambio de referencia harían falta dos versiones fechadas del archivo y la posición del registro en cada una. Los documentos normativos aquí consultados describen el mecanismo; no identifican un incidente concreto. La pregunta práctica para una cita existente es sencilla: ¿dónde está la versión que vio quien la escribió?

El servidor sirve la tabla; el lector pone el dedo

El carácter # tiene una tarea anterior al CSV. El RFC 3986 de enero de 2005 describe el fragmento de una URI como una referencia indirecta que interpreta el cliente. Antes de recuperar el recurso principal, el fragmento se separa. Su significado depende del tipo de contenido obtenido y lo resuelve el programa del usuario. RFC 7111 aprovechó esa arquitectura para que un lector pudiera señalar partes de una hoja CSV.

Por eso el servidor no recibe una orden de «dame la fila cuatro». Entrega el archivo text/csv. El cliente compatible recibe el conjunto y selecciona la parte indicada. El RFC de 2014 dice que el servidor no tiene una manera fiable de saber si la solicitud llegó desde un enlace que contenía un fragmento. En el registro de acceso aparecen descargas del archivo; la intención de citar una fila queda del lado del lector.

Los clientes tampoco son iguales. El que reconoce #row=4 puede mostrar la fila elegida. Uno que no implementa esta sintaxis sigue accediendo al recurso, pero trata el enlace como referencia al CSV completo. El documento de 2014 presenta ese comportamiento como parte del despliegue gradual. El mismo enlace compartido puede tener una pantalla distinta según la herramienta que lo abra.

Aquí hay una forma modesta de poder editorial. Quien escribe un artículo puede escoger una parte de un recurso que otra organización publica, sin permiso para cambiar el servidor ni necesidad de instalar una aplicación nueva. Sin embargo, el éxito de la descarga no prueba que el lector haya visto la parte escogida. El servidor tampoco puede certificarla a partir de su registro. La selección se ejecuta después, en el software del destinatario.

El RFC fija reglas para errores de sintaxis y posiciones fuera de rango. Un fragmento mal formado se ignora, en vez de adivinarse. Una fila individual más allá del final no se selecciona; un intervalo que rebasa el archivo se recorta a su tamaño. Son reglas sensatas para números imposibles. No detectan un número posible ocupado por el registro equivocado. La cuarta fila puede ser perfectamente válida y una evidencia pésima de la frase que la cita.

La sección de seguridad del RFC también advierte sobre la diferencia entre mostrar una selección y mostrar la tabla entera. Esa diferencia puede inducir a error a los usuarios. El documento especifica el tratamiento de un fragmento en programas compatibles, pero no ofrece una cronología de versiones de navegadores que lo adoptaron. Para contar esa historia harían falta registros de implementación fechados.

Una URL intacta puede ocultar una prueba rota

El CSV ganó espacio en la web porque publicar una tabla como archivo era barato. RFC 4180 le dio un nombre de tipo de medio y una descripción común. RFC 7111 añadió una vía para citar un trozo de ese archivo. La combinación ahorra infraestructura tanto al productor como a quien cita. Su precio es que la permanencia de la dirección base y la permanencia del hecho citado son asuntos distintos.

Si la referencia es provisional, el contenido actual de la cuarta fila quizá baste. Si una afirmación deberá poder auditarse años después, conservar una copia con fecha o identificar el registro mediante una clave independiente resuelve una tarea que #row=4 no realiza. Esas medidas requieren más trabajo que copiar un enlace. También dejan al futuro lector un rastro del dato original cuando el fichero cambie.

RFC 7111 fue una publicación informativa independiente; la actualización del registro text/csv recibió la aprobación requerida del IESG. El texto estableció una forma de elegir una región del CSV y de procesarla en el cliente. La autoridad para publicar y reordenar los datos siguió en manos del propietario del archivo. El enlace ponía un dedo en la tabla, no una etiqueta permanente en el hecho.