일반 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 프로토콜 버전을 확인한 후 해당 버전에 맞게 헤더를 지정하는 방법

번호 제목 글쓴이 날짜 조회 수
125 characters from ISO 8859-1 황제낙엽 2020.11.10 28619
124 [ActiveX] CAB파일 수동 설치(레지스트리 등록) 방법 황제낙엽 2017.03.16 3162
123 네이버의 무료 나눔 글꼴 황제낙엽 2020.05.06 1110
122 <img> image 엘리먼트에서 이미지를 base64로 인코딩해서 사용하기 file 황제낙엽 2017.04.01 977
121 Document documentMode Property file 황제낙엽 2011.10.04 906
120 encoding, charset, code page, UTF-8, UNICODE ... file 황제낙엽 2013.08.07 731
119 pt, px, em, % 비교표 file 황제낙엽 2011.05.24 731
118 [MSDN] Document Object Model Prototypes (IE8) 황제낙엽 2011.03.24 716
117 User Agent 에 관련된 링크 황제낙엽 2017.11.20 595
116 Canvas 곡선 그리기 file 황제낙엽 2016.08.22 424
115 document.domain (from mozilla.org) 황제낙엽 2013.03.13 407
114 ASCII Table and Description file 황제낙엽 2011.08.10 357
113 DIV태그로 테이블 만들기 황제낙엽 2005.12.24 300
112 Object의 주요 속성 황제낙엽 2011.02.14 278
111 모바일 브라우저에서 iframe 의 스크롤 문제 황제낙엽 2012.01.12 267
110 Canvas 도형의 클릭 이벤트 처리 황제낙엽 2016.08.22 263
109 Style cssText Property 황제낙엽 2012.09.13 257
108 스타일-보더 테스트 관련 레퍼런스 황제낙엽 2013.01.04 248
107 HTML5 강좌 2강 - HTML5 시맨틱웹을 위한 구성요소 file 황제낙엽 2016.12.03 246
106 로드밸런싱(L4)+아파치를 운영시 etag제거로 캐시 성능 최적화 file 황제낙엽 2018.03.28 226