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

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

Jul 13, 2016 pm 05:41 PM
header php 関数 応用 ブラウザ キャッシュ 設定 高度な

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Apr 05, 2025 pm 10:33 PM

最近、Webページにローカルにインストールされたフォントファイルを使用して、インターネットから無料のフォントをダウンロードし、システムに正常にインストールしました。今...

CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? Apr 05, 2025 pm 02:30 PM

CSSでサイズ変更シンボルをカスタマイズする方法は、背景色で統一されています。毎日の開発では、調整など、ユーザーインターフェイスの詳細をカスタマイズする必要がある状況に遭遇することがよくあります...

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 10:18 PM

なぜマイナスマージンが場合によっては有効にならないのですか?プログラミング中、CSSの負のマージン(負...

フレックスレイアウトの下のテキストは省略されていますが、コンテナは開かれていますか?それを解決する方法は? フレックスレイアウトの下のテキストは省略されていますが、コンテナは開かれていますか?それを解決する方法は? Apr 05, 2025 pm 11:00 PM

フレックスレイアウトとソリューションの下でのテキストの過度の省略によるコンテナの開口部の問題が使用されます...

エッジブラウザの特定のDIV要素が表示されないのはなぜですか?この問題を解決する方法は? エッジブラウザの特定のDIV要素が表示されないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 08:21 PM

ユーザーエージェントスタイルシートによって引き起こされるディスプレイの問題を解決する方法は? Edgeブラウザを使用する場合、プロジェクトのDIV要素を表示することはできません。チェックした後、私は投稿しました...

See all articles