ホームページ >バックエンド開発 >PHPチュートリアル >PHPでヘッダー関数パラメータのキャッシュ制御を使用する方法
Web ページのキャッシュは、HTTP メッセージ ヘッダーの「Cache-control」によって制御されます。一般的な値には、private、no-cache、max-age、must-revalidate などが含まれます。デフォルトは private です。その機能は、さまざまな再閲覧方法に応じて次の状況に分類されます:
(1) 新しいウィンドウを開きます
値がプライベート、キャッシュなし、必須再検証である場合、新しいウィンドウが開かれたときにサーバーが再アクセスされます。開いた。
max-age 値が指定されている場合、この値以内にサーバーは再度アクセスされません。例:
Cache-control: max-age=5 (Web ページが 5 秒以内に再度アクセスされることを意味します)サーバーに)
(2) アドレスバーで Enter キーを押します
値がプライベートまたは再検証が必要な場合、サーバーには初回のみアクセスされ、再度アクセスされることはありません。
値はキャッシュなしの場合、毎回アクセスされます。
値が max-age の場合、有効期限が切れる前に再度アクセスすることはできません。
(3) 戻るボタンを押します。
の値がprivate、must-revalidate、max-ageの場合は再アクセスされません。
の値がno-cacheの場合は、毎回再アクセスされます。
(4) 更新ボタンを押します
値が何であっても、繰り返しアクセスされます
キャッシュ制御値が「no-cache」の場合、このページにアクセスしてもページのバックアップは残りません。インターネットの一時記事フォルダー。
さらに、「Expires」値を指定するとキャッシュにも影響します。たとえば、Expires の値にかなりの時間が経過した時間として指定した場合、この Web サイトにアクセスするときにアドレス バーで Enter キーを繰り返し押すと、アクセスは毎回繰り返されます: Expires: Fri, 31 Dec 1999 16:00 :00 GMT
例: IE でページ キャッシュを無効にする
http 応答メッセージ ヘッダー設定:
CacheControl = no-cache
Pragma=no-cache
Expires = -1
Expires は Web の場合には良いことです。サーバー上のページは頻繁に変更されるため、すぐに期限切れにするには -1 に設定します。 Web ページが毎日午前 1 時に更新される場合、有効期限を翌日の午前 1 時に設定できます。
HTTP1.1サーバーがCacheControl = no-cacheを指定すると、ブラウザはWebページをキャッシュしません。
古い HTTP 1.0 サーバーは Cache-Control ヘッダーを使用できません。
そのため、HTTP 1.0 サーバーとの下位互換性のために、IE は Pragma:no-cache ヘッダーを使用して HTTP に対する特別なサポートを提供します。
クライアントが安全な接続 (https://)/ を介してサーバーと通信し、サーバーが応答で Pragma:no-cache ヘッダーを返した場合、
Internet Explorer は応答をキャッシュしません。注: Pragma:no-cache は、安全な接続で使用される場合にのみキャッシュを防止します。安全でないページで使用された場合、ページはキャッシュされますが、すぐに期限切れとしてマークされます
一般的なヘッダーの説明
ヘッダーは 3 つの部分に分かれています。
最初の部分は HTTP プロトコルのバージョン (HTTP バージョン) です。
2 番目の部分はステータス コード (ステータス) です。
3 番目の部分は理由フレーズです。 (理由-フレーズ)。
// 404 ページを修正する: URL 書き換えによって生成された 404 ヘッダーを解決するには、このヘッダー コマンドを使用します
header('HTTP/1.1 200 OK');
// 404 ヘッダーを設定します: ページが見つかりません
header('HTTP/ 1.1 404 Not Found');
//ページは完全に削除されます。URL を更新するように検索エンジンに指示できます
// Moved Permanently ヘッダーを設定します (リダイレクトに適しています)
// location ヘッダーで使用します
header('HTTP/ 1.1 301 Moved Permanently');
// アクセス制限
header('HTTP/1.1 403 Forbidden');
// サーバーエラー
header('HTTP/1.1 500 Internal Server Error');
// 重い新しい場所にダイレクトします
// 新しい場所にリダイレクトします:
header('Location: http://www.sina.com.cn);
一定の遅延後にリダイレクトします
// 遅延してリダイレクトします:
header ('更新: 10; url=http://www.sina.com.cn');
print '10 秒後にリダイレクトされます'
// X-Powered-By 値を上書きします
// X を上書きします-Powered-By: PHP:
header('X-Powered-By: PHP/4.4.0');
// コンテンツ言語 ( en = English)
// content language (en = English)
header('Content- language: en');
// 最終更新時刻 (キャッシュ時に使用可能)
// 最終更新時刻 (キャッシュに適しています)
$time = time() - 60; // または filemtime($fn) など
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT') ;
// コンテンツ
// が変更されなかったことをブラウザーに伝えるためのヘッダー
// コンテンツの長さを設定します (キャッシュに適しています):
// setコンテンツの長さ (キャッシュに適しています):
header('Content-Length: 1234');
// ファイルのダウンロードに使用されます:
// ダウンロード用のヘッダー:
header('Content-Type: application/octet-stream ');
header('Content-Disposition:attachment; filename="example.zip"');
// 現在のドキュメントのキャッシュを無効にします:
/ / 送信するファイルをロードします:readfile('example.zip');
// 現在のドキュメントのキャッシュを無効にします:
header('Cache- Control: no-cache、no-store、max-age=0、must- revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
// コンテンツ タイプを設定します:
// pastheader('Pragma: no-cache'); // コンテンツ タイプを設定します:
header('Content-Type: text/html; charset=iso-8859-1');
header(' Content-Type: text/html; charset=utf-8'); ('Content-Type: text/plain');
// プレーンテキストファイル
header('Content-Type: image/jpeg') ;
// JPG 画像
header('Content-Type: application/zip ');
// ZIP ファイル
header('Content-Type: application/pdf');
// PDF ファイル
header( 'Content-Type: audio/mpeg'); MP3,...) file
header('Content-Type: application/x-shockwave-flash');
// HTTP 認証に使用できるログイン ダイアログ ボックスを表示します
// Flash アニメーション// サインを表示しますin box
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
print 'ユーザーがキャンセルまたは '; を押した場合に表示されるテキスト「間違ったログイン データを入力しました」;?>