更新した最新のWebページがすぐに表示されない
This document (00008247) is provided subject to the disclaimer at the end of this document.
問題点
Webサーバでhtmlファイルを更新しました。Access Manager経由で
該当のhtmlファイルにアクセスしましたが、古いページが表示されます。
ある程度時間が経過すると新しいページが表示されました。
すぐに最新のページを表示させる方法を教えてください。
解決方法
Access Managerではデフォルトでキャッシュ機能が有効に
なっており、Webサーバ側で更新した最新のページが
クライアント側ですぐに表示されません。(キャッシュを
無効にする設定にすれば、最新のページをクライアント側で
すぐに表示させることは可能です。)
キャッシュの更新時間は、以下のCache Freshnessで設定
されています。
Access Gateways > Edit > Reverse Proxy名 >
[Name of Proxy Service] > HTTP Options >
Global Cache Options > Cache Freshness
更新した最新のWebページをすぐに反映させたい場合は
以下のいずれかの作業が必要となります。
- Purge All Cache (Purge List Now)
-「ctrl + F5」によるリソース手動更新
-「"HTTP 1.1を使用する"オプション有効のIE7」で直接アクセスし、
リソース手動更新
-「"HTTP 1.1を使用する"オプション無効のIE6」で直接アクセスし、
リソース手動更新
RFC2068「14.9.4 Cache Revalidation and Reload Controls」
End-to-end reloadやSpecific end-to-end revalidationにて、
リクエストヘッダーCache-Controlにno-cacheやmax-age=0の値が
ある場合、Webサーバはリソースが更新されているか確認し、
更新されていれば最新のリソースを返すという定義があります。
Linux Access Gateway(LAG)もこの仕様に準じており、受信した
リクエストヘッダーに"Cache-Control: no-cache"、
"Cache-Control: max-age=0"、もしくは"Pragma: no-cache"が
ある場合、Webサーバにリソースの更新がないかを確認し、
更新があれば新しいリソースを取得し、クライアントに返します。
("Cache-Control: no-cache"がHTTP 1.1標準であり、
"Pragma: no-cache"はHTTP1.0標準です)
ブラウザで該当のリソース表示後、「ctrl + F5」を押すと
"Cache-Control: no-cache"のリクエストが送信されるため、
最新のリソースを取得することができます。また、Internet
Explorer 7.0では、"HTTP 1.1を使用する"オプションを有効に
したLAGへの初回リクエストの際、"Cache-Control: no-cache"を
リクエストヘッダーに含めます。
ただし、ブラウザによってHTTP1.1でリクエストを送るのか、
HTTP1.0でリクエストを送るのかなど差異があることや
サーバ側でも"Cache-Control: no-cache"を見るのか
"Pragma: no-cache"を見るのかなどブラウザとの組み合わせ
などにより、結果が変わってくることがあります。環境に応じて
適切な更新方法を見つけることを推奨します。
以下、テスト環境での動作確認結果です。
※「HTTP 1.1を使用する」チェックボックスは、Internet Explorer >
ツール > インターネットオプション > 詳細タブ にあります。
Case1) IE6で"HTTP 1.1を使用する"を有効 -- Access Manager経由
1. 既存のページにアクセスし、ブラウザを閉じます
2. ページを新しいものに置き換えます。
3. ブラウザを起動、ページにアクセスするもののページは古いまま
(リクエストヘッダーに"Cache-Control: no-cache"が含まれます)
4. ブラウザを開いたままF5ボタンを押します。ページは古いまま
(リクエストヘッダーに"Pragma: no-cache" も
"Cache-Control: no-cache"も含まれます)
5. ブラウザを開いたままCtrlとF5を同時に押します。ページは更新されます
(リクエストヘッダーに"Cache-Control: no-cache"が含まれます)
Case2) IE6で"HTTP 1.1を使用する"を無効 -- Access Manager経由
1. 既存のページにアクセスし、ブラウザを閉じます
2. ページを新しいものに置き換えます。
3. ブラウザを起動、ページにアクセスするします。ページは更新されます
(リクエストヘッダーに"Pragma: no-cache"が含まれます)
Case3) IE6で"HTTP 1.1を使用する"を有効 -- iChain経由
1. 既存のページにアクセスし、ブラウザを閉じます
2. ページを新しいものに置き換えます。
3. ブラウザを起動、ページにアクセスするします。ページは更新されます
(リクエストヘッダーに"Cache-Control: no-cache"が含まれます)
Case4) IE7で"HTTP 1.1を使用する"を有効 -- Access Manager経由
1. 既存のページにアクセスし、ブラウザを閉じます
2. ページを新しいものに置き換えます。
3. ブラウザを起動、ページにアクセスします。ページは更新されます
(リクエストヘッダーに"Cache-Control: no-cache"が含まれます)
Case5) IE7で"HTTP 1.1を使用する"を無効 -- Access Manager経由
1. 既存のページにアクセスし、ブラウザを閉じます
2. ページを新しいものに置き換えます。
3. ブラウザを起動、ページにアクセスするもののページは古いまま
(リクエストヘッダーに"Pragma: no-cache"が含まれます)
4. ブラウザを開いたままF5ボタンを押します。ページは古いまま
(リクエストヘッダーに"Pragma: no-cache" も
"Cache-Control: no-cache"も含まれます)
5. ブラウザを開いたままCtrlとF5を同時に押します。ページは更新されます
(リクエストヘッダーに"Pragma: no-cache"が含まれます)
Disclaimer
この情報は、米国Novell, Inc.およびノベル株式会社の内外から発生したものです。本文書の内容または本文書を使用した結果について、いかなる保証、表明または約束も行っていません。また、本文書の商品性、および特定目的への適合性について、いかなる黙示の保証も否認し、排除します。
本文書に記載されている会社名、製品名はそれぞれ各社の商品、商標または登録商標です。
- ドキュメントID: J00008247
- 作成年月日: 30-MAR-2010
- 修正年月日: 30-MAR-2010
- ドキュメントリビジョン: 1
- 分類: Other(その他)
- 対象NOVELL製品およびバージョン: Novell Access Manager 3
- カテゴリ: