A resposta aceita por Farseeker não funciona. Eu testei isso no IIS 7.0.6000.16386 no Windows Server 2008 Standard SP 2.
Veja o comentário de Jeff Atwood no Stack Overflow para a mesma pergunta .
executando o ySlow em um site que eu suporte, notei que os etags estão mal configurados para as imagens do site (por exemplo, * .jpg, * .png, * .gif). Alguém pode ajudar a explicar o que tenho que fazer para obter o IIS7 emitindo esses etags corretamente?
A resposta aceita por Farseeker não funciona. Eu testei isso no IIS 7.0.6000.16386 no Windows Server 2008 Standard SP 2.
Veja o comentário de Jeff Atwood no Stack Overflow para a mesma pergunta .
Etags estão OK, desde que você não veicule conteúdo de vários servidores. Se você servir apenas de um servidor, deixe-os lá. Eles não doem. E se você não quiser que o YSlow reclame sobre eles, clique no botão Editar próximo ao elemento de seleção Conjuntos de regras e edite o perfil do YSlow (V2). Basta desmarcar a opção "Configurar tags de entidade (Etags)".
YSlow não está reclamando que eles estão errados (mesmo que seja o que diz), mas está reclamando que eles não são necessários. A única maneira de fazer com que o YSlow cale-se sobre isso é desativá-los.
O bom é que eu mesmo fiz isso hoje cedo!
Abra o gerenciador do IIS, clique no servidor e acesse Cabeçalhos de resposta HTTP. Clique no botão "Adicionar ..." e, sob o nome, digite:
ETag
(diferencia maiúsculas de minúsculas). Em Valor, insira
""
(são duas aspas duplas)
E ETags begone!
Veja uma pergunta StackOverflow semelhante
No iis 6, você pode adicionar um cabeçalho personalizado para 'ETag'=""
No iis 7, adicione uma regra de reconfiguração de saída da seguinte forma:
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
O IIS 7 sobrescreverá cabeçalhos personalizados e todas as outras soluções propostas em várias outras respostas referentes ao mesmo problema. As regras de saída são o único item que parece funcionar, pois sobrescreve qualquer coisa que esteja definida antes de ser retornada ao usuário. Esta regra de saída proposta corresponde a qualquer variável de servidor chamada RESPONSE_ETag
, desde que o valor de RESPONSE_ETag
tenha um ou mais caracteres e reconfigura o valor como uma string vazia.
Consulte a resposta para Definir cabeçalho de resposta do servidor no IIS7 para uma solução parcial. Sim, uma solução completa seria muito boa, mas vou pegar o que puder.
Melhor usar isso:
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
<action type="Rewrite" value="{R:1}" />
</rule>
</outboundRules>