IISでページ(htmlファイル)更新後にキャッシュが効いて更新内容がブラウザで表示されない場合のHTTP 応答ヘッダー設定

IISでページ(htmlファイル)更新後にキャッシュが効いて更新内容がブラウザで表示されない場合のHTTP 応答ヘッダー設定に関する情報です。

 

IISで静的ページのサイトを構築した場合、特に設定をしない場合は、ブラウザのキャッシュが効いて、サイト更新後に変更後のページが表示されないケースがあります。

 

この場合、ブラウザ側でキャッシュクリアすればいいのですが、当然、面倒です。

 

ということで、IISサーバ側でキャッシュの有効期限を設定することができます。

 

HTTP "Cache-Control" ヘッダーには、コンテンツの明示的な有効期限を指定する "max-age" などのディレクティブを追加できます。 IIS 7 では、"max-age" ディレクティブは cacheControlMaxAge 属性を使用して構成されます。 "Expires" と "max-age" の設定は多少似ていますが、"max-age" ディレクティブは "Expires" よりも優先されます。

 注意

cacheControlMaxAge 属性を使用するには、cacheControlMode 属性の値を UseMaxAge に設定する必要があります。

 

 

設定方法の引用です。

 

Web サイトまたはアプリケーションのキャッシュの有効期限を構成する方法
①インターネット インフォメーション サービス (IIS) マネージャーを開きます。

Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

タスク バーで、[サーバー マネージャー] をクリックし、[ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。


②[接続] ウィンドウで、キャッシュを無効にするサイト、アプリケーション、またはディレクトリに移動します。

 

③[ホーム] ウィンドウで、[HTTP 応答ヘッダー] をダブルクリックします。

 

④[HTTP 応答ヘッダー] ウィンドウで、[操作] ウィンドウの [共通ヘッダーの設定] をクリックします。

 

⑤[Set Common HTTP Response Headers]\(共通 HTTP 応答ヘッダーの設定\) ダイアログ ボックスで、Web コンテンツを期限切れにするチェック ボックスをオンにし、特定の間隔または特定の時刻に期限切れにするオプションを選択し、[OK] を選択します。

 

 

ここでHTTP keep-aliveはパフォーマンスに影響するという情報があったので、環境に応じてオフにします。即座にすると、キャッシュされなくなります。有効期限は任意の値ですが、0秒にすると、キャッシュはさせるけど、サーバに確認するという動作が入ります。

 

キャッシュオフにすると、都度、フルコンテンツを取得するため、帯域やパフォーマンスに影響がでます。

 

「情報元」

Client Cache <clientCache> | Microsoft Learn