Par Les meilleures pratiques de Yahoo pour les sites web à haute performance J'aimerais supprimer les Etags de mes en-têtes (je gère manuellement toute ma mise en cache et je n'ai pas besoin des Etags... et quand/si je dois passer à une ferme, j'aimerais vraiment les supprimer). J'utilise IIS7 sur Windows Server 2008. Quelqu'un sait-il comment je peux faire cela ?
Réponses
Trop de publicités?UPDATE : ajout de l'exigence du module URL Rewrite grâce à l'utilisateur @ChrisBarr
Dans iis 6, c'est facile, vous pouvez ajouter un en-tête personnalisé pour 'ETag' = "".
Dans IIS 7, après avoir lu ce fil de discussion et avoir pensé que c'était impossible sans utiliser un module http personnalisé, j'ai trouvé que vous pouvez simplement installer Module de réécriture d'URL de Microsoft et ajoutez une règle de réécriture sortante comme suit :
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
Cela fonctionne réellement, et vous n'avez pas besoin d'un module http personnalisé (dll). Le déverrouillage de la section de configuration system.webServer et la définition de customHeaders, etc., ne fonctionne pas - du moins dans tous les cas que j'ai essayés. Une simple règle de réécriture sortante fonctionne.
http://www.jesscoburn.com/archives/2008/10/02/quickly-configure-or-disable-etags-in-iis7-or-iis6/ a un joli guide illustré.
Essentiellement, vous créez un en-tête de réponse personnalisé appelé ETag et vous lui donnez une valeur vide.
J'ai utilisé le removeetag.dll
trouvé sur http://www.caspianit.co.uk/iis7-etag-problem/ et cela a fonctionné parfaitement.
J'espère que cela fonctionnera bien pour vous aussi
Au fait, lorsque vous utilisez iis8 c'est simple
<element name="clientCache">
<attribute name="cacheControlMode" type="enum" defaultValue="NoControl">
<enum name="NoControl" value="0" />
<enum name="DisableCache" value="1" />
<enum name="UseMaxAge" value="2" />
<enum name="UseExpires" value="3" />
</attribute>
<attribute name="cacheControlMaxAge" type="timeSpan" defaultValue="1.00:00:00" />
<attribute name="httpExpires" type="string" />
<attribute name="cacheControlCustom" type="string" />
<attribute name="setEtag" type="bool" defaultValue="true" />
</element>