ETag es similar al encabezado Last-Modified. Es un mecanismo para determinar el cambio por parte del cliente.
Podría decirse que una ETag que SÓLO SUCEDE como la última fecha de modificación (es decir, el mismo texto) cumple con todos los criterios necesarios para una ETag. Simplemente necesita ser un valor único que represente el estado de un recurso. No es único en todo el dominio de recursos, simplemente dentro del recurso.
Ahora, técnicamente, un ETag tiene una resolución "infinita" en comparación con un encabezado Last-Modified. Last-Modified solo cambia con una granularidad de 1 segundo, mientras que un ETag puede ser sub segundo.
Puede implementar ETag y Last-Modified, o simplemente uno u otro (o ninguno, por supuesto). Si Last-Modified no es suficiente, entonces considere un ETag.
Ten en cuenta que no establecería ETag para "cada" recurso. Básicamente, no lo configuraría para nada que no tenga expectativas de ser almacenado en caché (contenido dinámico notablemente). No tiene sentido en ese caso, solo trabajo desperdiciado.
Editar: Veo su edición y aclaro.
MD5 está bien. El único inconveniente es calcular MD5 todo el tiempo. Ejecutar MD5 en, digamos, un archivo PDF de 200K, es costoso. Ejecutar MD5 en un recurso que no tiene ninguna expectativa de almacenamiento en caché es simplemente un desperdicio (es decir, contenido dinámico).
El truco es simplemente que sea cual sea el mecanismo que utilice, debe ser tan barato como lo es típicamente Last-Modified. Last-Modified es, de nuevo, típicamente, una propiedad del recurso y, por lo general, es de acceso muy económico.
ETags debe ser similarmente barato. Si está utilizando MD5, y puede almacenar en caché/almacenar la asociación entre el recurso y el hash MD5, entonces esa es una buena solución. Sin embargo, volver a calcular el MD5 cada vez que se necesita ETag es básicamente contrario a la idea de utilizar ETags para mejorar el rendimiento general del servidor.
Nunca es seguro asumir que un autor te supera un poco. – spender
@spender: de acuerdo, pero es aún menos seguro asumir que usted es más astuto que el autor. – Oddthinking
y ni siquiera vamos a tocar la inteligencia de los comentaristas web, de una forma u otra ;-) –