ETag
Un ETag identifica una versión concreta de la representación de un recurso HTTP y permite lecturas o cambios condicionales.
Un entity tag es un validador HTTP en la cabecera de respuesta ETag. Identifica una versión concreta de la representación enviada. Su valor no tiene que ser un hash del contenido y el cliente debe tratarlo como un identificador opaco, no como un número de versión ordenable.
Dos solicitudes condicionales
Una vista de proyecto ficticia responde con ETag: "r7". En un GET posterior con If-None-Match: "r7", el servidor puede devolver 304 sin reenviar el cuerpo si la representación no ha cambiado. Si ha cambiado, se transfiere la nueva representación con su nuevo validador.
En una modificación, el mismo identificador tiene otra función: una edición con If-Match: "r7" encuentra la representación ahora vigente "r8". La precondición incumplida produce 412 en lugar de sobrescribir el estado más reciente con la edición antigua. La aplicación debe gestionar el conflicto de forma visible. Comprobación y cambio deben funcionar correctamente juntos en el servidor; enviar una cabecera no protege por sí solo.
If-Match usa una comparación fuerte. Un validador débil con el prefijo W/ no satisface esa comparación. La lectura de caché y el control de escritura utilizan, por tanto, condiciones diferentes. Un ETag tampoco sustituye la comprobación de autorización ni decide quién puede ver o cambiar los datos.
Fuentes
Términos relacionados
- Caché del navegadorLa caché del navegador guarda respuestas HTTP adecuadas. Su reutilización y validación siguen las reglas correspondientes.
- Server-Sent EventsServer-Sent Events transmite avisos de texto del servidor al cliente por HTTP, por ejemplo sobre el avance de un trabajo en segundo plano.
- Cross-Origin Resource SharingCORS controla el acceso del navegador a respuestas de otro origen. No sustituye el inicio de sesión ni la comprobación de permisos de la API.
- Intercambio electrónico de datosEDI transmite documentos de negocio estructurados entre sistemas. Deben concordar el formato, el perfil del socio, las correspondencias de datos y las respuestas.
- Procesamiento en tiempo realEl procesamiento en tiempo real sigue un objetivo de latencia definido. Hay que distinguir la hora del evento de la de procesamiento y prever datos tardíos.
- Procesamiento por lotesEl procesamiento por lotes trata conjuntamente un conjunto delimitado de datos o trabajos en una ejecución.
Artículos sobre el tema

Su proyecto con ASES
Descríbanos su proyecto. Le responderemos con una primera valoración.
