2016-05-04 8 views
0

キャッシュヘッダー "expires"を使用して簡単な例を作成しようとしたので、キャッシュのクライアント側を管理できるすべてのメタには慣れていませんHTTPヘッダー "expires"はキャッシュからページをレンダリングしません

次のコードで

<!DOCTYPE html> 
<html> 
    <head> 
      <meta charset="utf-8" /> 
      <meta http-equiv="expires" content="mon, 18 Jul 2016 1:00:00 GMT" /> 
      <title>MY TITLE</title> 
    </head> 

    <body> 
MY BODY 
    </body> 

</html> 

私が初めて(前クリアキャッシュ)のためにページをロードします。ページはキャッシュに保存されますが、私のボディを「MY BODY2」で更新してページをリロードすると、ページに「MY BODY 2」と表示されます。有効期限が2016年7月であるため、ブラウザはキャッシュから(「MY BODY」とともに)ページを取得することになっていましたか?

は、それはあなたがページをリロードどのように依存して、この問題

答えて

1

にいくつかの光を置くために私を助けてくれてありがとう。当時

  1. 別のページを参照し、:

    あなたは基本的に3つのオプションをしました。これは、キャッシュを使用する必要があります。

  2. F5キーを押すか、再読み込みします。これは明示的なリロードですので、サーバーに新しいバージョンがあるかどうかをチェックします(キャッシュされていても新しいバージョンがあればダウンロードします)。
  3. 強制的にリロードします(一部のブラウザではCtrl + F5)。これは、キャッシュされたバージョンがサーバーから送信されるバージョンと同じに見えても、キャッシュを無視してゼロからダウンロードします。

私はあなたがオプション2を実行したと思っていますが、これはサーバでチェックして、キャッシュが有効であると仮定していることを認識しませんでした。サーバーで実際に確認する理由は、コンテンツが変更されたと思われたり、ページを再表示したくない場合(たとえば、ページが正しく表示されなかった場合など)、リロードが行われることが多いからです。

また、HTMLのメタヘッダーは、ブラウザーのサポートの理由など、さまざまな理由により、サーバーによって設定されたhttp応答ヘッダーほど良くないことに注意してください。

最後に、デベロッパーツール(ChromeのF12など)を開き、ネットワークタブをチェックして何が起きているのかを確認する価値はありますが、その場合は「キャッシュを無効にする」にチェックを入れてくださいほとんどの開発者は開発時にキャッシュを使用したくないため、Chromeではデフォルトです)。