웹 언어별 no-cache 리스트
HTML
<META http-equiv="Expires" content="-1">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="No-Cache">
ASP
<%
Response.Expires = 0
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "Cache-Control","no-cache,must-revalidate"
%>
JSP
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1"))
response.setHeader("Cache-Control", "no-cache");
%>
PHP
<?
header("Pragma: no-cache");
header("Cache-Control: no-cache,must-revalidate");
?>
WML
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=no-cache" forua="true"/>
<meta http-equiv="Cache-Control" content="must-revalidate" forua="true"/>
</head>
<card>
..
..
</card>
</wml>
JSP의 사용예
<%@ page contentType="text/vnd.wap.wml"%>
<%
response.setHeader("cache-control","no-store"); // http 1.1
response.setHeader("Pragma","no-cache"); // http 1.0
response.setDateHeader("Expires",0); // proxy server 에 cache방지.
%>
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<p>
테스트
</p>
</card>
</wml>
페이지 만료,캐쉬설정 Expires Pragma Cache-Control no-cache
만료 및 Expires 헤더
만료일을 지정하는 헤더
Cache-Control 헤더
IE는 HTTP 1.1 Cache-Control 헤더를 지원한다
Pragma:no-cache 헤더
레거시 HTTP 1.0 서버는 Cache-Control 헤더를 사용할 수 없다. 이전 버전과 HTTP 1.0 서버와의 호환을 위해 Internet Explorer는 HTTP Pragma:no-cache 헤더의 특수한 사용을 지원한다
웹서버의 설정 또는 기타 각 프로그램에서 코딩으로도 제어 할 수 있다.
[IIS]
[HTML예제]
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="expires" content="wed, 04 jul 1973 16:00:00 gmt">
</HEAD>
[ASP예제]
<%
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
%>
HTTP RFC문서
Hypertext Transfer Protocol -- HTTP/1.1 (RFC2068)
캐쉬테스트
http://www.procata.com/cachetest/
Links:
HTTP 1.1 caching specification
Caching Tutorial for Web Authors and Webmasters
Check the cacheability of a specific page
기타 유용한 메타태그 정리
http://www.i18nguy.com/markup/metatags.html
[ASP] 페이지 캐싱 금지 방법
- <%
- Response.Expires = 0
- Response.Expiresabsolute = Now() - 1
- Response.AddHeader "pragma","no-cache"
- Response.AddHeader "cache-control","private"
- Response.CacheControl = "no-cache"
- %>
- <HTML><HEAD>
- <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
- <META HTTP-EQUIV="Expires" CONTENT="-1">
- </HEAD>
- <BODY>
- </BODY>
- </HTML>
- 인터넷 서비스 관리자를 불러온다.
- 컴퓨터와 서비스 트리를 사용하여 기본 웹 서버(또는 문제의 웹 서버)를 열고 Cache-Control 헤더가 필요한 컨텐트가 들어 있는 디렉터리를 찾는다.
- 해당 디렉터리의 등록 정보 대화 상자를 가져온다.
- HTTP 헤더 탭을 선택한다.
- 사용자 지정 HTTP 헤더 그룹에서 추가 단추를 누르고 헤더 이름으로 "Cache-Control"을, 헤더 값으로 "no-cache"를 추가한다.
- ASP "Response.CacheControl" 속성과 함께 또는 반환된 HTTP 헤더를 통해 Cache-Control 헤더를 사용하는가? 이것은 Internet Explorer에서 캐싱을 방지하는 최적의 방법이다.
- Internet Explorer 4.01 서비스 팩 2 이상을 사용하고 있는가? 이전 버전의 브라우저에서 캐싱을 완전히 방지하는 방법은 없다.
- 웹 서버에 HTTP 1.1이 설정되어 있고 Internet Explorer에 HTTP 1.1 응답을 반환 중인지 재차 확인했는가? Cache-Control 헤더는 HTTP 1.0 응답에 적합하지 않다.
- 서버쪽에서 CGI/ISAPI/Servlets를 사용할 경우 특히 HTTP 헤더의 CRLF 종결에 대해 정확하게 HTTP 1.1 사양을 따르는가? 성능 면에서 Internet Explorer는 대개 HTTP 1.1 사양을 위반하는 응답은 방지한다. 이 결과 대개 무시된 헤더 또는 예상치못한 서버 오류 보고서가 만들어진다.
- HTTP 헤더의 철자가 정확한가? 당연 철자가 잘못되었다면 효과를 얻지 못할 것이다.