ホームページ  >  記事  >  バックエンド開発  >  PHPヘッダ関数の応用

PHPヘッダ関数の応用

WBOY
WBOYオリジナル
2016-06-13 13:07:121104ブラウズ

PHPヘッダ関数の利用

Web ページのキャッシュは、HTTP メッセージ ヘッダーの「Cache-control」によって制御されます。一般的な値には、private、no-cache、max-age、must-revalidate などが含まれます。デフォルトは private です。その機能は、さまざまな再閲覧方法に応じて次の状況に分類されます:

(1) 新しいウィンドウを開きます
?? 値がプライベート、キャッシュなし、再検証が必要な場合、新しいウィンドウが開かれたときにサーバーに再度アクセスします。
max-age 値が指定されている場合、この値内ではサーバーは再度アクセスされません。例:
キャッシュ制御: max-age=5 (5 秒以内にこの Web ページに再度アクセスすると、サーバーにアクセスしないことを示します)

(2)アドレスバーに入力
?? 値がプライベートまたは再検証が必要な場合、サーバーには最初のアクセス時にのみアクセスされ、再度アクセスされることはありません。
?? 値が 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 = キャッシュなし
プラグマ=キャッシュなし
有効期限 = -1

サーバー上の 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 番目の部分はステータス コード (ステータス)
3 番目のパートは理由フレーズです。

//404 ページを修正します: ? URL 書き換えによって生成された 404 ヘッダーを解決するには、このヘッダー コマンドを使用しますか?
ヘッダー('HTTP/1.1 200 OK') ??
?
? // 404 ヘッダーを設定します: ? ページが見つかりません
header('HTTP/1.1 404 が見つかりません') ??
?
? //ページは完全に削除され、検索エンジンに URL を更新するように指示できます
// Moved Permanently ヘッダーを設定します (リダイレクトに適しています) ??
// location ヘッダーで使用します ??
header('HTTP/1.1 301 が永久に移動されました') ?

// アクセス制限
header('HTTP/1.1 403 禁止');

// サーバーエラー
header('HTTP/1.1 500 内部サーバー エラー');
?
? //新しい場所にリダイレクト
// 新しい場所にリダイレクトします: ??
header('場所: 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') ??
header('X-Powered-By: Brain/0.6b') ??
??
// コンテンツ言語 (en = 英語)
// コンテンツ言語 (en = 英語) ??
header('コンテンツ言語: en') ??
??
//最終変更時刻 (キャッシュ時に使用可能)
// 最終更新日 (キャッシュに適しています) ??
$time = time() - 60; // または filemtime($fn) など ??
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT') ??
??
// 取得するコンテンツが更新されていないことをブラウザに伝えます
// コンテンツがブラウザに通知されるためのヘッダー ??
// 変更されませんでしたか ??
header('HTTP/1.1 304 未変更') ??
??
//コンテンツの長さを設定します (キャッシュするときに使用できます):
// コンテンツの長さを設定します (キャッシュに適しています): ??
header('Content-Length: 1234') ??
??
// ファイルのダウンロードに使用されます:
// ダウンロード用ヘッダー: ??
header('Content-Type: application/octet-stream'); ??
header('Content-Disposition:attachment; filename="example.zip"'); ??
header('コンテンツ転送エンコーディング: バイナリ') ??
??
//現在のドキュメントのキャッシュを無効にします:
// 送信するファイルをロードします:readfile('example.zip') ??
// 現在のドキュメントのキャッシュを無効にします: ??
header('Cache-Control: no-cache、no-store、max-age=0、must-revalidate') ??
header('有効期限: 1997 年 7 月 26 日月曜日 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 '間違ったログイン データが入力されました';?>

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