Configurar expiração das imagens no IIS7


Índice

Recomendações de cache do PageSpeed

O Page Speed é uma ótima ferramenta para identificar melhorias de performance que podem ser executadas em sites (você pode encontrar mais informações de como utiliza-lo no site).

Entre as várias recomendações realizadas pelo PageSpeed, existem

  1. Conteúdo estático não necessitam de cookie de sessão: Junto com todo conteúdo que é enviado para o browser é enviado um cookie de sessão, que é enviado pelo browser de volta para o servidor na próxima requisição que o browser fizer. A questão é que imagens e conteúdos estáticos também são enviados para o browser com esse cookie de sessão, que acaba não sendo utilizado para nada. Removendo isso, você terá uma economia interessante de bytes trafegados entre o servidor e o browser.
  2. Conteúdo estático pode ter uma data de expiração futura: Todo conteúdo enviado para o browser tem uma data de expiração padrão, a sugestão do PageSpeed é que você configure datas de expiração para imagens bastante futuras, assim, quando o usuário voltar ao site essas imagens já vão estar em cache e o usuário não precisará baixar elas novamente.

Como fazer isso?

No IIS7 para configurar a expiração de imagens para 19 de janeiro de 2038 (uma data bastante avançada) e desabilitar o cookie de sessão que é enviado junto com cada imagem faça o seguinte:

  1. No IIS transforme a sua pasta de imagens em “Application”. Basta clicar sobre a pasta e escolher a opção “Convert to Application”.

  2. Na pasta do Windows que ficam as imagens, adicione um arquivo “web.config” com o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.web>
		<sessionState mode="Off" />
	</system.web>
	<system.webServer>
		<staticContent>
			<clientCache cacheControlMode="UseExpires"
			httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" />
		</staticContent>
	</system.webServer>
</configuration>

Comentários