web-dev-qa-db-ja.com

IIS 7.5応答からetagヘッダーを削除する

私はこの質問が何度も聞かれたことを知っています、しかしそれらのほとんどは2009- 2010年にありました。

私が取り組んでいたプロジェクトがそれらを削除したことはかなり前のことですが、現時点ではそれらを削除する方法を見つけることができません。

では、この分野で何か進歩はありましたか? MicrosoftがIISを作成して、これらのヘッダーを簡単に構成できないようにしたのはおかしなことに思えます。

現在試しています:

  • Web.configに空白のetagヘッダーを追加する
  • Web.configに引用符付きのetagを追加する
  • IISを介して直接空白のetagヘッダーを追加する
  • BeginResponseのetagを削除するカスタムモジュールを追加する
  • 上記と同じですが、EndResponse用です
  • 上記の両方と同じですが、etagを削除する代わりに、空にします

削除できるISAPIフィルターがあると聞きましたが、どこにも見つかりません。最初から作成した経験はありませんが、最終的にはそれを行う唯一の方法になる可能性があります。

だから、私がすべてのEtagsを削除したい理由がいくつかあります。クライアントにすべて(期限切れと最終変更)をキャッシュさせるので、静的ファイルがサーバーから取得されると、期限切れになるまでサーバーに再度クエリを実行する必要はありません。 Etagsを使用する場合と同様に、タグがまだ一致するかどうかを確認するために、ファイルごとにサーバーにリクエストを送信する必要があります。したがって、クライアントキャッシュを使用すると、必要なコンテンツのみを要求できます。

また、バージョン管理システムを導入しているため、変更が発生すると、静的コンテンツはmy.js?12344ではなくmy.js?12345として参照されます。とにかく重要なのは、現在、Etagsを削除すると、現在のプロジェクトのボトルネックの1つが大幅に改善されると信じていることです。

27
Grofit

IIS Rewrite Module 2. を使用してETagを削除できます。次の書き換えルールで実行できます。

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

ルール構成のサンプル画像はIIS私のブログのマネージャー にあります。

53
Nathan Fox

同じ解決策を探してこの答えに出くわしたが、IIS8またはIIS 8.5)の場合は、これが私が思いついたものです。 blogs.iis.netのこの投稿 私を正しい方向に向けてくれてありがとう。

参照: clientCache IISドキュメントWebサイト。

Web.configに、次を追加します。

<configuration>
    ...
    <system.webServer>
    ...
        <staticContent>
            <clientCache setEtag="false"/>
        </staticContent>
    ...
    </system.webServer>
    ...
</configuration>
12
Vince Horst