enable control cachecontrolmaxage cache iis caching http-headers iis-7.5 etag

enable - cachecontrolmaxage iis



IIS 7.5 elimina los encabezados de etag de la respuesta (2)

Sé que esta pregunta se ha hecho muchas veces, sin embargo, la mayoría de ellos fueron en 2009-2010.

Estoy bastante seguro de que hace un tiempo un proyecto en el que estaba trabajando me los quitó, sin embargo, no encuentro ninguna forma de eliminarlos en este momento.

Entonces, ¿ha habido algún avance en este campo? Parece una locura que Microsoft haya hecho que IIS no pueda configurar fácilmente estos encabezados.

Actualmente lo he intentado:

  • Agregar un encabezado etag en blanco a web.config
  • Agregar un etag con comillas dentro de web.config
  • Agregar un encabezado etag en blanco directamente a través de IIS
  • Agregar un módulo personalizado que elimine un etag en BeginResponse
  • Igual que arriba pero para EndResponse
  • Igual que los dos anteriores, pero en lugar de eliminar un etag, hágalo vacío

Escuché que hay un filtro ISAPI que puedes eliminar para eliminarlos, pero no puedo encontrarlo en ninguna parte, y no tengo experiencia en escribir uno desde cero, pero puede terminar siendo la única forma de hacerlo.

Solo que hay alguna razón por la que quiero eliminar Etags para todo. Dejo que los clientes guarden en caché todo (caduca y la última modificación) por lo que una vez que mis archivos estáticos se obtienen del servidor, no es necesario volver a consultar el servidor hasta que caduque. Como si usara Etags, aún necesita hacer una solicitud al servidor para cada archivo para averiguar si la etiqueta aún coincide. Entonces, al usar el caché del cliente, solo realiza solicitudes para el contenido que necesita.

También tengo instalado un sistema de control de versiones para que cuando ocurra un cambio, el contenido estático se haga referencia como my.js? 12345 en lugar de my.js? 12344 . De todos modos, el punto es que actualmente creo que eliminar Etags mejorará enormemente uno de los cuellos de botella en mi proyecto actual.


Para aquellos de ustedes que se encuentran con esta respuesta en busca de la misma solución, pero para IIS 8 o IIS 8.5 , esto es lo que se me ocurrió. Gracias a esta publicación en blogs.iis.net por apuntarme en la dirección correcta.

Referencia: clientCache en el sitio web de documentación de IIS.

En su web.config, agregue:

<configuration> ... <system.webServer> ... <staticContent> <clientCache setEtag="false"/> </staticContent> ... </system.webServer> ... </configuration>