JustAnswer のしくみ:
  • 専門家に質問
    知識豊富な専門家があらゆる質問にお答えするために常に待機しています。
  • 専門家が丁寧に対応
    E メールやサイト内オンラインメッセージなど、さまざまな手段で回答を通知。
    必要に応じてフォローアップの質問をすることもできます。
  • 満足度 100% 保証
    専門家からの回答を確認し評価をすることで、支払うかどうかを決めます。
rushqkに今すぐ質問する
rushqk
rushqk, プログラマー
カテゴリ: プログラミング
満足したユーザー: 766
経験:  AV機器開発、ソフトウェア設計
60440014
ここに プログラミング に関する質問を入力してください。
rushqkがオンラインで質問受付中

こんにちは ヘッダー関数についての質問です。 キャッシュを扱う関数で、 header('Cache-Control:

解決済みの質問:

こんにちは
ヘッダー関数についての質問です。
キャッシュを扱う関数で、
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
で、no-store, no-cache, must-revalidate,st-check=0, pre-check=0', FALSEの意味と、
header('Pragma: no-cache');の意味がよくわかりません。
no-cacheは何となく想像できますが、一つ一つご説明いただけると幸いです。
ヘッダーやヘッダー関数の意味については、多少の理解はあります。
どうぞ、よろしくお願いいたします。
投稿: 2 年 前.
カテゴリ: プログラミング
専門家:  rushqk 返答済み 2 年 前.
rushqk :

質問ありがとうございます。

rushqk :

Cache-Control: no-storeは「コンテンツをキャッシュに記録してはいけない」、Cache-Control: no-cacheは「コンテンツをキャッシュに記録したデータの再利用に際しては、サーバに現在でも有効かどうか確認した上でないと再利用してはいけない」という意味になります。

rushqk :

Cache-Control: must-revalidateは「コンテンツが現在も有効か問い合わせしなさい」という意味になり、no-chaceとは少し意味あいが異なります。

rushqk :

post-check=0, pre-check=0はIEでのキャッシュ禁止を指します。

rushqk :

フラグに、FALSEを指定すると、同じタイプのヘッダーを複数生成します。

rushqk :

TRUEになっていると未送出のデータで同じタイプの場合は置き換えを行います。

rushqk :

Pragma: no-cacheはHTTP/1.0に対応するための表記です。HTTP/1.0ではHTTP/1.1のCache-Controlをサポートしていません。

Customer:

お返事誠に有難うございます。

Customer:

ご回答誠に有難うございます。

Customer:

ご回答誠に有難うございます。 もう少し、質問させていただきたいのですが、①no-cacheはつまり、既に、キャッシュされたデータの使用については許可が必要ということでよろしいでしょうか? ②must-revalidateは、(キャッシュされたデータは使用できないので)コンテンツが現在も~しなさい。ということでしょうか? ③また、「フラグにFALSEを指定すると、同じタイプのヘッダーを複数生成し、TRUEになっていると未送出のデータ~行います。」の箇所がよく、理解できません。(③につきましては、前入金の額ではお答えが難しければ結構です。)

rushqk :

①データの使用に許可が必要という事ではなく、使用条件を満たさなければ使ってはいけないと言う事です。リアルタイムでデータを更新するようなページの場合にキャッシュにためていると意図した情報が出てこない事があるからです。

rushqk :

②は必ず確認しなさいよということで、ユーザ側のアプリに委ねられます。

rushqk :

どちらにせよ、間にProxyServerなどが入っている場合に、元のリソースを確認しないことには正しい結果が得られませんよという事になります。

rushqk :

③に関しては、PHPはインタープリタ言語ですので、命令は即座に実行されます。しかし、ネットワークの通信はある程度たまってから送信するのですが、そのときにTrueの場合は同じヘッダがあれば上書きして以前の物は無効になるがFalseだと置き換えずに追加発行するという事になります。通常はFalseに設定しておけば良いと思います。

rushqkをはじめその他名のプログラミングカテゴリの専門家が質問受付中

プログラミング についての関連する質問