PHP에서 header () 함수를 사용하여 브라우저 캐시 코드 설정

이것은 4가지 헤더 유형: Last-Modified(마지막 수정 시간)와 관련된다.Expires(유효기간);Pragma(컴파일 지시);Cache-Control(캐시 제어);앞의 세 머리글은 HTTP1.0 표준에 속합니다.헤더 Last-Modified는 UTC 날짜 시간 값을 사용합니다.캐시 시스템에서 Last-Modified 값이 페이지 캐시 버전보다 현재 시간에 더 가깝다는 것을 발견하면 서버에서 온 새 버전을 사용해야 한다는 것을 알 수 있습니다.Expires는 캐시 버전이 만료되는 시점을 나타냅니다(그리니치 표준시).그것을 이전 시간으로 설정하면 서버의 페이지를 강제로 사용할 수 있습니다.Pragma는 페이지 데이터를 어떻게 처리해야 할지 생명입니다.이렇게 하면 페이지에 대한 캐시를 피할 수 있습니다:header("Pragma:no-cache").Cache-Co0ntrol 헤더는 HTTP1.1에 추가되어 더욱 세밀한 제어를 실현할 수 있습니다(HTTP1.0 헤더를 계속 사용해야 합니다).Cache-Control의 설정은 다음과 같습니다.
명령
함의
public
어디서나 캐시 가능
private
브라우저에서만 캐시 가능
no-cache
어디에도 캐시할 수 없음
must-revalidate
캐시는 업데이트 버전을 확인해야 합니다.
proxy-revalidate
프록시 캐시는 업데이트 버전을 확인해야 합니다.
max-age
컨텐츠가 캐시될 수 있는 시기(초)
s-maxage
공유 캐시를 덮어쓰는 max-age 설정 다음 예는 헤더 () 를 이용하여 브라우저의 캐시를 설정합니다.
 
<?php # Script 2.7 - view_tasks.php
// Connect to the database:
$dbc = @mysqli_connect ('localhost', 'username', 'password', 'test') OR die ('<p>Could not connect to the database!</p></body></html>');
// Get the latest dates as timestamps:
$q = 'SELECT UNIX_TIMESTAMP(MAX(date_added)), UNIX_TIMESTAMP(MAX(date_completed)) FROM tasks';
$r = mysqli_query($dbc, $q);
list($max_a, $max_c) = mysqli_fetch_array($r, MYSQLI_NUM);
// Determine the greater timestamp:
$max = ($max_a > $max_c) ? $max_a : $max_c;
// Create a cache interval in seconds:
$interval = 60 * 60 * 6; // 6 hours
// Send the header:
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 ("Cache-Control: max-age=$interval");

좋은 웹페이지 즐겨찾기