ホームページ  >  記事  >  バックエンド開発  >  PHP 高度なアプリケーション: header() 関数がブラウザーのキャッシュを設定する_PHP チュートリアル

PHP 高度なアプリケーション: header() 関数がブラウザーのキャッシュを設定する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:41:34999ブラウズ

PHP 高度なアプリケーションの header() 関数は、ブラウザーのキャッシュを設定します

これには、次の 4 つのヘッダー タイプが含まれます。 Expires (有効期間);
Cache- Control;
最初の 3 つのヘッダーは HTTP1.0 標準に属します。 Last-Modified ヘッダーでは、UTC の日付と時刻の値が使用されます。キャッシュ システムは、Last-Modified 値がページのキャッシュされたバージョンよりも現在時刻に近いことを検出した場合、サーバーからの新しいバージョンを使用する必要があることを認識します。

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

Pragma はページデータの処理方法を定義します。次のようにページのキャッシュを回避できます:

header("Pragma:no-cache");

Cache-Co0ntrol ヘッダーは HTTP1.1 で追加され、より詳細な制御が可能になりました (引き続き HTTP1 を使用する必要があります。0)ヘッダ)。次の表に示すように、キャッシュコントロールには多くの設定があります:
コマンドは、更新されたバージョンを確認する必要があります。コンテンツをキャッシュできる秒数を表します。
s-maxage 共有キャッシュの max-age 設定をオーバーライドします。
次の例では、header() を使用してブラウザのキャッシュを設定します。
< ?php # Script 2.7 - view_tasks.php
// データベースに接続します:
$dbc = @mysqli_connect (localhost、ユーザー名、パスワード、テスト) 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 * 60 * 6; // 6 時間
// ヘッダーを送信します:
header ("Last-Modified: " . gmdate (r, $ max));
header ("Expires : " . gmdate ("r", ($max $interval)));
header ("Cache-Control: 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 ("キャッシュ制御: max-age=$interval");



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

www.bkjia.com

tru​​e

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

技術記事

PHP 高度なアプリケーションの header() 関数は、次の 4 つのヘッダー タイプを設定します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。