ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの header() 関数を使用してブラウザー キャッシュを設定するコード

PHP_PHP チュートリアルの header() 関数を使用してブラウザー キャッシュを設定するコード

WBOY
WBOYオリジナル
2016-07-21 15:34:19842ブラウズ

これには 4 種類のヘッダーが含まれます:

Last-Modified (最終変更時刻);
Pragma (コンパイル命令);
Cache-Control (キャッシュ制御);
最初の 3 つのヘッダーは HTTP1 に属します。 0標準。 Last-Modified ヘッダーでは、UTC の日付と時刻の値が使用されます。キャッシュ システムは、Last-Modified 値がページのキャッシュされたバージョンよりも現在時刻に近いことを検出した場合、サーバーからの新しいバージョンを使用する必要があることを認識します。

Expires は、キャッシュされたバージョンの有効期限がいつ切れるか (GMT) を示します。これを以前の時刻に設定すると、サーバー上のページが強制的に使用されます。

プラグマはページデータをどのように処理するかを定義します。次のようにページのキャッシュを回避できます:

header("Pragma:no-cache");

Cache-Co0ntrol ヘッダーは HTTP1.1 で追加され、より詳細な制御が可能になりました (HTTP1 は引き続き使用される必要があります)。ヘッダ)。次の表に示すように、キャッシュ制御には多くの設定があります:



コマンド意味公開どこでもキャッシュ可能プライベートブラウザでのみキャッシュできますキャッシュなしどこにもキャッシュできません再検証する必要がありますキャッシュは更新されたバージョンをチェックする必要がありますプロキシ再検証プロキシキャッシュは更新されたバージョンをチェックする必要があります最大年齢コンテンツをキャッシュできる期間 (秒単位) エスマックス共有キャッシュの最大保存期間設定をオーバーライドする次の例では、header() を使用してブラウザのキャッシュを設定します:

コードをコピーする
コードは次のとおりです: // データベースに接続します:
$dbc = @mysqli_connect ('localhost', 'username', 'password', 'test') OR die ('

に接続できませんでした)データベース!');
// 最新の日付をタイムスタンプとして取得します:
$q = 'SELECT UNIX_TIMESTAMP(MAX(date_added)), UNIX_TIMESTAMP(MAX(date_completed) )) FROM タスク';
$r = mysqli_query($dbc, $q);
list($max_a, $max_c) = mysqli_fetch_array($r, MYSQLI_NUM);
$max = ( $max_a > $max_c) ? $max_a : $max_c;
// キャッシュ間隔を秒単位で作成します:
$interval = 60 * 6 時間
// ヘッダーを送信します:
header (" -変更: " . gmdate ( 'r', $max));
header ("Expires: " . gmdate ("r", ($max + $interval)));
header ("キャッシュ制御: max- age=$interval");
?>


1. データベースに接続した後、データテーブル内の最新の日付値 date_added および date_completed を取得し、UNIX_TIMESTAMP() 関数を使用して戻り値を整数を取得し、最大値を取得して $max に代入します。
2. 適切なキャッシュ時間を定義します。



コードをコピーします
コードは次のとおりです: $interval=60*60*6
適切な値は、ページ自体、訪問者数、ページの更新頻度によって異なります。コードは6時間です。
3.Last-Modified ヘッダーを送信します。


コードをコピーします
コードは次のとおりです: header("Last-Modified:".gmdate("r",($max+$interval)));
gmdate() 関数はパラメータ「r」を指定すると、HTTP 仕様に従って、対応する日付形式が返されます。
4.Expires ヘッダーを設定します。


コードをコピーします
コードは次のとおりです: header ("Expires: " . gmdate ("r", ($max + $interval)));
5. Cache_Control ヘッダーを設定します。 。


コードをコピーします
コードは次のとおりです: header ("Cache-Control: max-age=$interval");

http://www.bkjia.com/PHPjc/322444.html
www.bkjia.com

tru​​e

技術記事これには、Last-Modified (最終変更時刻)、Expires (有効期間)、Cache-Control (キャッシュ制御) の 4 つのヘッダー タイプが含まれます。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。