Frage Yslow sagt, dass Etags falsch konfiguriert sind. Wie konfiguriere ich Etags auf IIS7 richtig?


Mit ySlow auf einer Website, die ich unterstütze, bemerkte ich, dass die Etags für die Site-Images falsch konfiguriert wurden (z. B. * .jpg, * .png, * .gif). Kann mir jemand erklären, was ich tun muss, damit IIS7 diese Etags korrekt ausgibt?


19
2017-08-19 03:58


Ursprung




Antworten:


Die akzeptierte Antwort von Farseeker funktioniert nicht. Ich habe dies in IIS 7.0.6000.16386 auf Windows Server 2008 Standard SP 2 getestet.

Siehe Jeff Atwoods Kommentar auf Stack Overflow für die gleiche Frage.


6
2017-09-17 16:01



Diese Antwort ist nicht mehr korrekt / relevant. Sie können ETags in iis 7+ ändern, indem Sie eine ausgehende Regel hinzufügen, wie in meiner Antwort zu sehen serverfault.com/a/528346/78230 - AndrewPK


Etags sind in Ordnung, solange Sie Inhalte nicht von mehreren Servern aus bereitstellen. Wenn Sie nur von einem Server aus arbeiten, lassen Sie sie dort. Sie tun nicht weh. Und wenn Sie nicht wollen, dass YSlow sich darüber beschweren, dann klicken Sie auf Bearbeiten Knopf in der Nähe von Regelsätze Wählen Sie das Element und bearbeiten Sie das YSlow (V2) -Profil. Deaktivieren Sie einfach die Option "Entity Tags (Etags) konfigurieren".


11
2017-08-25 07:44



+1 YSlow beklagt sich über eine Menge Dinge, die nicht "sterbliche" Webseiten betreffen. (Nein YSlow, ich habe kein CDN und brauche kein CDN. Bitte hören Sie schon auf zu jammern.) - Gerald Combs
Richtig über die Änderung des Regelsatzes. - MikeJ


YSlow beschwert sich nicht, dass sie falsch liegen (obwohl es das ist, was es sagt), aber es beschwert sich, dass sie nicht gebraucht werden. Die einzige Möglichkeit, YSlow dazu zu bringen, den Mund zu halten, besteht darin, sie zu deaktivieren.

Das Gute ist, ich habe das früher selbst gemacht!

Öffnen Sie Ihren IIS-Manager, klicken Sie auf den Server und gehen Sie zu HTTP-Antwortheader. Klicken Sie auf die Schaltfläche "Hinzufügen ..." und geben Sie unter Name Folgendes ein:

ETag

(Groß- / Kleinschreibung beachten). Geben Sie unter Wert ein

""

(Das sind zwei doppelte Anführungszeichen)

Und ETags gehen los!


10
2017-08-19 04:03



Wie andere darauf hinweisen, sollten Sie ETags nur entfernen, wenn Sie wissen, dass Sie müssen; in vielen Fällen wird dies nicht der Fall sein. - Bobby Jack
Das mag der Fall sein, aber Tatsache ist, dass die Antwort die Frage richtig beantwortet. - Mark Henderson♦
Die Frage "Wie bekomme ich IIS7, um diese Etags korrekt auszugeben?". Ihre Antwort war, die ETags nicht mehr zu veröffentlichen, was ein möglicher Leistungseinbruch ist und wahrscheinlich unnötig ist (CDN-Verwendung wurde in der Frage nicht erwähnt). - Bobby Jack
@Bobby: Das OP fragt implizit "Wie bekomme ich IIS7, um diese Etags korrekt auszugeben? wie von YSlow definiert? ". und die einzige" richtige "Konfiguration, soweit YSlow betroffen ist, besteht darin, sie zu deaktivieren. - Kip
@Kip, nein, der implizite Teil ist implizit und du kannst es nicht erraten. Aber unter der Annahme, dass das OP eine vernünftige Person ist, wollte er wahrscheinlich sagen: "Laut YSlow scheint die Konfiguration suboptimal zu sein, wie kann ich es optimal machen?" - Und dann ist diese Antwort ein bisschen lustig. Es ist wie "Warum klagen meine Einheit Test?" - "Lösche einfach den Komponententest und es wird sich nicht mehr beschweren!" - chiccodoro


Siehe Ähnliches Paketüberfluss Frage.


2
2017-08-19 04:39





In Iis 6 können Sie einen benutzerdefinierten Header für 'ETag' hinzufügen = ""

In Iis 7 fügen Sie eine ausgehende Rewrite-Regel wie folgt hinzu:

<outboundRules>
  <rule name="Remove ETag">
    <match serverVariable="RESPONSE_ETag" pattern=".+" />
    <action type="Rewrite" value="" />
  </rule>
</outboundRules>

IIS 7 überschreibt benutzerdefinierte Header und alle anderen Lösungen, die in verschiedenen anderen Antworten zum gleichen Problem vorgeschlagen wurden. Ausgehende Regeln sind das einzige Element, das zu funktionieren scheint, da es alles überschreibt, was gesetzt wurde, bevor es an den Benutzer zurückgegeben wird. Diese vorgeschlagene ausgehende Regel stimmt mit jeder benannten Servervariablen überein RESPONSE_ETag Solange der Wert von RESPONSE_ETag hat ein oder mehrere Zeichen und schreibt den Wert als leere Zeichenfolge um.


2
2017-08-02 19:59





Bitte beachten Sie die Antwort auf Legen Sie Serverantwortheader in IIS7 fest für eine Teillösung. Ja, eine komplette Lösung wäre wirklich nett, aber ich nehme, was ich bekommen kann.


1
2018-03-02 18:41





Nutze das besser:

<outboundRules>
  <rule name="Remove ETag">
    <match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
    <action type="Rewrite" value="{R:1}" />
  </rule>
</outboundRules>

0
2017-11-08 07:32



Willkommen bei Serverfehler! Während die magischen Bytes sicherlich nett sind, ist es großartig für andere Leute, die es lesen, wenn Sie erklären, warum das korrekt ist. - Falcon Momot