출처 :
http://ihelpers.x2soft.co.kr/programming/tipntech.php?CMD=print&IDX=654&source=naverclick
http://qnrdlqkrwhdgns.canxan.com/jpboard/post/495
http://www.mins01.com/20090118/board/board.php?type=read&b_id=tech&page=1&b_idx=562 : 웹캐시
참고 :
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=forum&wr_id=115999
$sFileName = $_SERVER['SCRIPT_FILENAME'];
$nFileSize = filesize($sFileName);
$nLastModifyTime = filemtime($sFileName);
$aApacheHeader = apache_request_headers();
$bEnd = false;
if(isset($aApacheHeader['If-Modified-Since'])) {
//$ims = strtotime(preg_replace('/;.*$/', '', $aApacheHeader['If-Modified-Since']));
//if($nLastModifyTime == $ims) {
if(gmdate('D, d M Y H:i:s T', $nLastModifyTime) == $aApacheHeader['If-Modified-Since']) {
header('HTTP/1.1 304');
$bEnd = true;
}
}
//echo 'console.log("'.gmdate('D, d M Y H:i:s T', time()).' : 현재");';
//echo 'console.log("'.substr(gmdate('r'), 0, -5).' : 현재");';
//echo 'console.log("'.gmdate('D, d M Y H:i:s T', $nLastModifyTime).' : 최종수정");';
//echo 'console.log("'. $aApacheHeader['If-Modified-Since'].' : 헤더시간");';
//echo 'console.log("'. gmdate('D, d M Y H:i:s T', time()+$nExpire).' : 만료시간");';
//header('Date: '.substr(gmdate('r'), 0, -5).'GMT');
//header('Expires: '.gmdate('D, d M Y H:i:s', time()+3600));
header('Cache-Control: private, max-age=3600');
header('Pragma: cache');
//header('Last-Modified: '.substr(gmdate('r', $nLastModifyTime), 0, -5).'GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s T',$nLastModifyTime));
header('ETag: '.dechex($nFileSize).'-'.dechex($nLastModifyTime));
if($bEnd === true) exit;
'개발 > PHP' 카테고리의 다른 글
[보안] php취약점 자동공격 봇 막기 (0) | 2012.08.17 |
---|---|
fsockopen 으로 원격지 xml 파일 파싱하기 (0) | 2012.06.27 |
1차원 배열을 단계별 다차원 배열 형식으로 변환 (0) | 2011.04.26 |
constant() 함수, 상수값을 변수명($사용)으로 가져올때... (0) | 2010.09.03 |
mysql 연동시 my.ini, php.ini에 utf-8 설정해도 한글 깨질때... (0) | 2010.07.03 |