메인
기술
메인
기술
무료게임
잡담
자유
개인
일정
갤러리
회원가입
계정 찾기
로그인
HOME
기술
웹 캐시 컨트롤, web cache
목록
작성자
공대여자
작성 : 2009-10-20 16:15
조회 : 286
지남
1일간
2009-10-20
-
2009-10-20
좌표
첨부된 파일이 없습니다.
#weblang
#cache
#웹
#캐시
웹 캐시 컨트롤
작성자
공대여자
내용
Pragma
HTTP 1.0 스펙(HTTP 1.1에서는 무시된다.)
Pragma: no-cache
캐시 안한다.
Cache-Control ( http://www.ietf.org/rfc/rfc2616.txt )
HTTP 1.1 스펙
Cache-Control: public
캐시한다.
공유캐시(Shared Caches)
Cache-Control: private
요청자에게만 유효한 캐시로 표현한다.(캐시는 다른 사람에게는 공유되지 않는다.)
다른 사용자가 똑같은 요청을 해도 웹에서는 캐시된 내용이 아닌 새로운(또는 다른 캐시된) 내용을 보여준다.
비공유(사적인)캐시(Non-Shared Caches)
Cache-Control: private, community="UCI"
UCI라는 멤버로 요청한 사람들 끼리만 캐시가 공유된다.
Cache-Control: no-cache
캐시 안한다.
Cache-Control: no-store
캐시 안한다. 내용을 (백업 테이프 등) 저장하지 않는다.(임시폴더 등에도 남지 않아야한다.)
하지만 따로 저장하기 등으로 저장하는 건 막을 수 없다.
Cache-Control: max-age=sec
지정한 시간보다 오래된 캐시는 보내지 않는다.
0으로 지정하면 항상 새로 요청한다.
클라이언트와 서버간의 시간차이가 있어도 문제없이 작동한다.
Expires 보다 우선시 된다.
Cache-Control: max-stale[=sec]
지정된 시간보다 오래되지 않은 캐시를 보낸다.
시간을 지정하지 않으면 만료되지 않은 캐시를 보낸다.
request 해더용
Cache-Control: min-fresh=sec
지정된 시간 뒤에 변경된 캐시만을 보낸다.
즉, 지정된 시간까지는 생성된 캐시를 사용한다.
Cache-Control: only-if-cached
캐시가 있다면 무조건 캐시를 사용한다.
request 해더용
Cache-Control: pre-check=sec
IE5 에서 확장된 내용(다른 브라우저나 이전 버전의 IE에서는 무시될 수 있음)
지정된 시간 이후에 문서가 요청될 때 변경되었는지를 미리 체크 후 문서를 보냄
Cache-Control: post-check=sec
IE5 에서 확장된 내용(다른 브라우저나 이전 버전의 IE에서는 무시될 수 있음)
지정된 시간 이후에 문서가 요청될 때 문서를 먼저 받고 문서가 변경되었는지를 체크
맨 처음은 오래된 문서가 올 수 있지만, 그 후로는 새로운 문서가 받아짐
Expires
Expires: Thu, 01 Dec 1994 16:00:00 GMT
지정된 시간까지는 이 문서를 사용하라.
즉, 지전된 시간이 지나면 이 문서는 새로 요청하게 된다.
서버와 클라이언트가 시간이 다르면 문제가 될 수 있다.
PHP에서
header("Expires: ".gmdate("D, d M Y H:i:s", time())." GMT");
Cache-Control: max-age=sec
와 중첩되면 max-age가 우선시된다.
ETag
Etag: "문자열"
ETag: xyzxyz
Response 해더용
서버,URI,반환내용이 변경되지 않았다면 문자열은 한상 같은 문자열이다.
문자열이 같다면 캐시된 내용이 사용된다.
L4로 묶여있을 경우 서버가 다르기 때문에 같은 URI,반환 내용이라도 항상 문자열이 다를 수 있다.
여러서버를 묶어서 사용하는 경우 사용하면 손해!
여러서버를 동시 사용시 Etag 생성 규칙을 손봐야한다. 규칙에 파일수정시간등은 제외하는 것이 좋을것이다.
Last-Modified
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
이 문서는 언제 수정되었다는 걸 표시한다.
원본서버의 파일 시스템에서의 시간이 사용됨.
Retry-After
response 해더용
Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Retry-After: 120
503 (Service Unavailable)시 재시도 가능 시간 또는 재시도 까지 걸릴 시간을 표시
예제(PHP기준)
항상 새로받기
header('Pragma: no-cache');
header('Expires: Thu, 01 Jan 1970 16:00:00 GMT');
header('Cache-Control: max-age = 0, no-cache');
캐시
1시간
유지하기
header('Pragma: public');
header("Expires: ".gmdate("D, d M Y H:i:s", time()+3600)." GMT");
header('Cache-Control: public, max-age = 3600');
캐시 1시간 유지하기 + 비공유캐시
header('Pragma: public');
header("Expires: ".gmdate("D, d M Y H:i:s", time()+3600)." GMT");
header('Cache-Control: max-age = 3600, private');
정적인 페이지(이미지)의 경우
(30일 캐시)
header('Pragma: public');
header("Expires: ".gmdate("D, d M Y H:i:s", time()+2592000)." GMT");
header('Cache-Control: public, max-age = 2592000');
전부 response header 쪽에 적용되는 코드임!
댓글
/
/
답변
수정
삭제
No Nickname
No Comment
새로운 댓글 작성
권한이 없습니다.
{{m_row.m_nick}}
내용이 너무 많습니다!
-
no-star
★☆☆☆☆
★★☆☆☆
★★★☆☆
★★★★☆
★★★★★
확인
게시물 : 2 (1 page)
📅 달력형
📷 갤러리형
RSS
tag
제목
내용
제목+내용
제목+내용+코멘트
작성자
태그
검색
No
제목
작성자
날짜
조회
공지
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
#기본형
공대여자
24-02-06
02-06
5331
공지
유용한 리눅스(LINUX) 명령어
#linux
#command
공대여자
11-03-03
03-03
14887
공지
[공지] 기술 게시판
#etc
#공지
mins01
05-06-24
06-24
15080
2
시맨틱 웹 Semantic Web 에 맞춰서 글 적기
#시맨틱
#웹
#semantic
#web
공대여자
19-03-08
03-08
351
1
웹 캐시 컨트롤, web cache
#weblang
#cache
#웹
#캐시
공대여자
09-10-20
10-20
287