브라우저의 설정에서 캐시(Cache)를 삭제하는 방법은 사람이 수동으로 해야 하기에 서비스를 하는 입장에서는 불편합니다. 사용자에게 어디 어디를 클릭하라고 알려줘야 하니까요. 아래 방법을 이용하면 자동으로 캐시를 이용하지 않고 새로운 페이지를 받아오도록 할 수 있다고 합니다.
PHP를 이용하는 방법 ::
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
HTML의 메타 태그를 이용하는 방법 ::
<META HTTP-EQUIV="Expires" CONTENT="Mon, 06 Jan 1990 00:00:01 GMT">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
- Expires : 본 문서가 content에 지정된 시간부터 유효하지 않음(캐시만료)을 알려주는 기능을 합니다.
- content 항목이 -1이면 조건부 캐쉬만료를 의미합니다.
- Mon, 06 Jan 1990 00:00:01 GMT : 만료날짜를 그리니치 시간으로 적습니다.
- Pragma : content 항목인 "no-cache" 명령어를 전달합니다. 즉, 캐시 기능을 하지말라는 뜻입니다.
- Cache-Control : 캐시를 제어하기 위한 기능입니다. content에 'no-cache'라고 적혀있기 때문에 cache를 하지 않습니다.
- Pragma와 Chache-Control의 문제점 : 인터넷 익스플러어 5.0 혹은 HTTP1.0에서는 여러가지 경우에 따라 동작하지 않을 수 있다고 합니다. 또한 웹서버의 제어에 따라 동작하지 않을 수 있습니다.