Per Best Practices Yahoo für Websites High Performance Web , ich möchte Etags von meinem Header entfernen (ich alle meine Caching manuell bin Verwaltung und keine Notwendigkeit für Etags haben ... und wenn / wenn ich auf einer Farm Skala benötigen, Ich würde sie wirklich gerne weg haben. Ich verwende IIS7 unter Windows Server 2008. Weiß jemand, wie ich das tun kann?
83
Antworten:
Unter IIS7 wird die Etag-Änderungsnummer (der folgende Teil des Etag :) immer auf 0 gesetzt.
Daher variiert der Etag vom Server nicht mehr von Server zu Server für dieselbe Datei, und daher gilt die bewährte Methode von Yahoo nicht mehr wirklich.
Da Sie den ETag-Header auf IIS7 nicht wirklich unterdrücken können, ist es wahrscheinlich am besten, wenn Sie überhaupt nicht damit herumspielen. Ich habe festgestellt, dass die mit Abstand nützlichste Konfigurationsregel lautet: "Wenn die Standardeinstellung etwas nicht beschädigt, lassen Sie es in Ruhe".
quelle
Sie würden denken, dass dies in der web.config funktioniert, um ETags in IIS7 zu deaktivieren. Die Sniffer-Ablaufverfolgung bestätigt jedoch, dass ETag trotzdem gesendet wird.
Die Verwendung von blank funktioniert auch nicht. ETag wird trotzdem runtergeschickt.
Das Setzen des ETag auf leere Anführungszeichen, wie von anderen Websites vorgeschlagen, funktioniert nicht.
Bewirkt, dass noch mehr ETag gesendet werden:
Zusammenfassend lässt sich sagen, dass nichts, was ich versuchen oder mir vorstellen kann, funktioniert, um ETag auf IIS7 zu beenden, zumindest ohne benutzerdefinierte Module usw. zu schreiben.
quelle
Ich habe ein benutzerdefiniertes http-Modul geschrieben, um dies zu handhaben. Es ist wirklich nicht so schlimm, wie es sich anhört. Hier ist der Code:
Hier sind die gewünschten Änderungen an web.config:
quelle
Mir ist klar, dass dies eine alte Frage ist, aber ich bin auf sie gestoßen, als ich nach einer Lösung gesucht habe. Ich glaube, ich habe eine vernünftige Antwort gefunden, die ich auf diese Frage gepostet habe .
quelle
Wir hatten dieses Problem, und selbst das Festlegen eines leeren benutzerdefinierten ETag-Headers in IIS 7 funktionierte nicht für alle Dateien (z. B. Bilddateien). Am Ende haben wir ein HttpModule erstellt, das den ETag-Header explizit entfernt.
quelle
UPDATE: URL Rewrite Module-Anforderung dank Benutzer @ChrisBarr hinzugefügt
In iis 6 können Sie ganz einfach einen benutzerdefinierten Header für 'ETag' = "" hinzufügen.
In IIS 7 stellte ich nach dem Lesen dieses Threads und der Feststellung, dass dies ohne die Verwendung eines benutzerdefinierten http-Moduls nicht möglich ist, fest, dass Sie das URL-Rewrite-Modul von Microsoft einfach installieren und eine ausgehende Rewrite-Regel wie folgt hinzufügen können:
Dies funktioniert tatsächlich und Sie benötigen kein benutzerdefiniertes http-Modul (DLL). Das Entsperren des Konfigurationsabschnitts system.webServer und das Festlegen von customHeaders usw. funktioniert nicht - zumindest in allen Fällen, die ich versucht habe. Eine einfache ausgehende Umschreibregel funktioniert.
quelle
Übrigens, wenn Sie iis8 verwenden, ist es einfach
IIS 8.0: ETag verwenden oder nicht verwenden
quelle
http://www.jesscoburn.com/archives/2008/10/02/quickly-configure-or-disable-etags-in-iis7-or-iis6/ hat eine schöne Bildanleitung.
Im Wesentlichen erstellen Sie einen benutzerdefinierten Antwortheader mit dem Namen ETag und machen dessen Wert leer.
quelle
In diesem Blogbeitrag erfahren Sie, wie Sie den Etag-http-Header in iis6, iis7 und iis7.5 vollständig entfernen
http://lightspeednow.com/blog/2010/05/21/iis-tutorial-how-to-completely-remove-etags-entity-tags-from-iis6-iis7-and-iis7-5/
quelle
Ich habe das
removeetag.dll
auf http://www.caspianit.co.uk/iis7-etag-problem/ gefundene verwendet und es hat perfekt funktioniert.Ich hoffe, es wird auch für Sie gut funktionieren
quelle
In IIS 7 sollten Sie sich keine Gedanken mehr über Etags machen müssen, da die IIS-Konfigurationsnummer immer auf 0 gesetzt ist.
Es gibt immer noch ein Problem, wenn Sie IIS6- und IIS7-Webserver in derselben Farm haben. In diesem Fall müssten Sie die IIS6-Konfigurationsnummer manuell auf 0 setzen, wie in diesem Artikel beschrieben .
Etags sind tatsächlich sehr nützlich, da Sie den Dateinamen nicht wie beim Stapelüberlauf ändern müssen (z. B. default.css? 1234). Wenn Sie die Datei default.css ändern, wird das etag geändert, und nachfolgende Anforderungen erhalten die Datei vom Server und nicht vom Cache.
quelle
Ich denke, das wird funktionieren. Ich weiß, entfernen und leer funktioniert nicht.
quelle