ホームページ >バックエンド開発 >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 キーを押します
値がプライベートまたは再検証が必要な場合、サーバーには初回のみアクセスされ、再度アクセスされることはありません。
値が no-cache の場合、毎回アクセスされます。
値が 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 は、安全な接続で使用される場合にのみキャッシュを防止します。安全でないページで使用された場合、処理は Expires:-1 と同じになりますが、ページはすぐに期限切れとしてマークされます。使用する命令
ヘッダーは 3 つの部分に分かれています。
最初の部分は HTTP プロトコルのバージョン (HTTP-Version) です。
2 番目の部分はステータス コード (Status) です。
3 番目の部分は理由フレーズ (Reason-) です。フレーズ)。
// 404 ページを修正する: URL 書き換えによって生成された 404 ヘッダーを解決するには、このヘッダー コマンドを使用します
header('HTTP/1.1 200 OK');
header('HTTP/1.1 404 Not Found');
// 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.m-bang.com );
// 遅延してリダイレクト:
header(' Refresh: 10; url=http://www.sina.com.cn');
print '10 秒後にリダイレクトされます';
// X-Powered -By をオーバーライドします: PHP :
header('X-Powered-By: PHP/4.4.0');
header('X-Powered-By: Brain/0.6b');
// content language (en = 英語)
header('Content- language: en');
// 最終更新時刻 (キャッシュに適しています)
$time = time() - 60; // または filemtime($fn)、etc
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT') ;
// 変更されませんでした
header('HTTP/1.1 304 Not Modified');
// コンテンツの長さを設定します (キャッシュするときに使用できます):
header('Content-Length: 1234');
// ファイルのダウンロードに使用されます:
header('Content-Type: application/octet-stream ');
header('Content-Disposition:attachment; filename="example.zip"');
header('Content-Transfer-Encoding:binary');
// 現在のドキュメントのキャッシュを無効にします:
// 送信するファイルをロードします: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');
header('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' );
// オーディオ MPEG (MP3,...) ファイル
header('Content-Type: application/x-shockwave-flash');
// に使用できるログイン ダイアログ ボックスを表示します。 HTTP 認証
// Flash アニメーション// サインインボックスを表示
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
print 'ユーザーが [キャンセル] を押すか、';
print 'enters 間違ったログイン データ';
?>
を押した場合に表示されます。フォームに入力するときに、いつでも AJAX を使用してユーザーを確認し、わかりやすいプロンプトを表示できます。ユーザーは AJAX フレンドリーなプロンプトに注意を払わず、送信しました。間違ったフォームを入力し、元のページに戻ったのですが、入力した情報はすべて失われてしまいました。ページバウンスをサポートするには、次のメソッドがあります:
1. session_cache_limiter メソッドを使用します: session_cache_limiter('private,must-revalidate'); ただし、session_cache_limiter() メソッドは session_start() の前に記述する必要があることに注意してください。便利なメソッド
2. ヘッダーを使用してキャッシュを制御するメソッドを設定します: header('Cache-control:private,must-revalidate');