일반 Pragma와 Cache-Control

황제낙엽 2018.03.28 10:02 조회 수 : 61

sitelink1 https://blog.naver.com/semi7623/100005637477 
sitelink2  
sitelink3  
sitelink4  
extra_vars5  
extra_vars6  

Pragma와 Cache-Control은 브라우저나 프록시 서버로 하여금 요청시에 캐시된 문서를 사용하지 말고 매번 서버로부터 새로운 문서를 다시 전송받아 사용하도록 알리는 헤더이다.

HTTP1.0 에서는 Pragma 헤더에 'no-cache'를, HTTP1.1 에서는 Cache-Control 헤더에 'no-cache'를 각각 지정함으로써 가능하다.

 

브라우저나 프록시 서버가 지원하는 HTTP 프로토콜 버전을 알 수 없는 경우 응답 헤더에 Cache-Control과 Pragma 헤더를 'no-cache'로 함께 지정하여 주거나 HttpServletRequest 인터페이스 객체(내장 객체 request)의 getProtocol() 메소드를 사용하여 요청한 클라이언트의 HTTP 프로토콜 버전을 확인한 후 해당 버전에 맞게 헤더를 지정해줄 수 있다.

 

캐쉬 방지팁

 

<%

    response.setDateHeader("Expires", 0);

    response.setHeader("Pragma", "no-cache");

 

    if(request.getProtocol().equals("HTTP/1.1")) {

        response.setHeader("Cache-Control", "no-cache");

    }

%>

 

 

 

요약

1. Request header에 Pragma와 Cache-Control 을 no-cache로 설정하면 브라우저나 프록시 서버의 캐시를 이용하지 않게 한다

    -> 서버에 request 가 요청되지만 서버에서 클라이언트의 자원이 이전과 동일한지에 대한 검사는 별도로 이뤄진다(etag, If-Match, If-Modified-Since, If-None-Match)

 

2. HTTP1.0 에서는 Pragma 헤더에 'no-cache'를, HTTP1.1 에서는 Cache-Control 헤더에 'no-cache'를 각각 지정한다

 

3. 브라우저나 프록시 서버가 지원하는 HTTP 프로토콜 버전을 알 수 없는 경우 다음과 같은 두가지 방법이 있다

    -> Request에 Cache-Control과 Pragma 헤더를 'no-cache'로 둘다 설정하는 방법

    -> CGI프로그램에서 HttpServletRequest 인터페이스 객체(내장 객체 request)의 getProtocol() 메소드를 사용하여

        요청한 클라이언트의 HTTP 프로토콜 버전을 확인한 후 해당 버전에 맞게 헤더를 지정하는 방법

번호 제목 글쓴이 날짜 조회 수
54 HTML FRAMESET 태그 예제 황제낙엽 2020.11.06 13
53 네이버의 무료 나눔 글꼴 황제낙엽 2020.05.06 1110
52 HTTP/2 소개 황제낙엽 2018.10.12 59
» Pragma와 Cache-Control 황제낙엽 2018.03.28 61
50 로드밸런싱(L4)+아파치를 운영시 etag제거로 캐시 성능 최적화 file 황제낙엽 2018.03.28 226
49 재미난 로그인 페이지 만들기 file 황제낙엽 2018.03.26 202
48 내 웹사이트의 속도를 빠르게! file 황제낙엽 2018.03.07 184
47 성능을 위한 초간단 HTTP 304 Not Modified 구현 방법 file 황제낙엽 2018.03.07 97
46 [MIME type/content type/media type] text/javascript와 application/javascript의 차이점 황제낙엽 2017.11.23 166
45 User Agent 에 관련된 링크 황제낙엽 2017.11.20 595
44 [보안] 혼합 콘텐츠(Mixed Content) 방지 황제낙엽 2017.04.13 112
43 <img> image 엘리먼트에서 이미지를 base64로 인코딩해서 사용하기 file 황제낙엽 2017.04.01 977
42 [ActiveX] CAB파일 수동 설치(레지스트리 등록) 방법 황제낙엽 2017.03.16 3162
41 ActiveX 에서 CLASSID 가 맞지 않을때의 현상 황제낙엽 2017.02.17 187
40 HTML5 강좌 23강 - 위치 정보(Geolocation API), 지도 서비스 file 황제낙엽 2016.12.03 218
39 HTML5 강좌 22강 - 파일접근, 파일정보 file 황제낙엽 2016.12.03 103
38 HTML5 강좌 21강 - 웹 스토리지 file 황제낙엽 2016.12.03 55
37 HTML5 강좌 20강 - HTML5 태그 - 드래그 앤 드롭 file 황제낙엽 2016.12.03 140
36 HTML5 강좌 19강 - HTML5 태그 - 입력양식 form 사용 예제 file 황제낙엽 2016.12.03 141
35 HTML5 강좌 18강 - HTML5 태그 - 입력양식 form 사용하기 file 황제낙엽 2016.12.03 33