웹마스터 팁
[서버운영] 웹 재요청 방지 및 트래픽 감소를 위한 방법
2015.05.06 09:32
from cache
서버에 요청자체를 하지 않는다.
가장 효과가 좋다.(요청 자체가 없으므로)
최초 한번 데이터를 가져오면, 그 후로는 웹 브라우저의 캐시에서 데이터를 가져온다.
즉, 서버와의 통신이 없어진다.
하지만 F5를 누를 경우 새로 데이터가 전송된다.(HTTP Code 200 발생)
관련 응답 해더 및 PHP 적용법 ($g는 캐시 기간(초))
header('Cache-Control:public, max-age='.$g); // HTTP/1.1
지정 초 이전까지는 재요청하지 않도록 권장함 (새로 고침에서는 무시됨)
header("Expires: ".gmdate("D, d M Y H:i:s", time()+$g)." GMT"); //캐시
지정 시간까지는 재요청 하지 않도록 권장함 (새로 고침에서는 무시됨)
apache의 경우 mod_expires 적용
304 Not Modified
요청은 하지만, 트래픽이 아주 적게 발생된다.(해더 전송 정도만 발생)
F5로 새로 요청해도 Etag나 Last-Modified의 조건에 맞으면 HTTP Code는 304가 발생된다.(실제 데이터 전송은 없음)
(ctrl+F5의 경우 etag와 Last-Modified 가 없이 요청되므로 새로 가져온다.)
관련 응답 해더 및 PHP적용법
header("Etag: ".$etag_key); //etag
파일의 수정내역을 Etag로 만들어서 출력한다.
클라이언트가 같은 Etag로 요청하면, 304코드를 알려준다.
아파치의 경우 FileETag 부분 참고
파일 수정 시간을 사용할 경우 문제가 될 수 있다.
서버를 여러대 사용할 경우 서버 간의 파일의 시간 차가 발생될 수 있기 때문이다.
여러서버를 묶어쓰는(L4에 연결 해서) 경우 사용안하는게 좋다
PHP에서 처리할 경우 요청에서 HTTP_IF_NONE_MATCH 관련 처리가 필요
header('Last-Modified: '.gmdate("D, d M Y H:i:s", time()+$g)." GMT");
지정 시간까지는 파일이 수정되지 않는다는 것을 나타낸다.
즉, 그 시간에 재요청해봤자 304 코드가 반환된다.
apache의 경우 mod_expires 적용
PHP에서 처리할 경우 요청에서 HTTP_IF_MODIFIED_SINCE 관련 처리가 필요
댓글 0
제목 | 글쓴이 | 날짜 |
---|---|---|
통합게시판 만들기 [30] | Lansi | 2013.10.20 |
썸네일 특정 파일로 불러오기 [18] | Lansi | 2014.01.21 |
유챗 팝업창으로 만들기 [1] | oscarmike | 2014.04.26 |
모바일 이미지축소모드 | kdp | 2015.05.07 |
모바일 이미지 제거모드 | kdp | 2015.05.07 |
게시판의 MP3파일 갯수 표시하기 | kdp | 2015.05.07 |
[서버운영] 웹 재요청 방지 및 트래픽 감소를 위한 방법 | 마루디자인 | 2015.05.06 |
member 모듈 업데이트가 계속 나오는 경우 | 고니고니 | 2015.05.06 |
속도관련 나노팁. [5] | 1052 | 2015.05.04 |
익명게시판에서 임시저장된 글을 불러와 등록하면 익명처리되지 않고 글쓴이 정보가 기록되는 버그 수정 [1] | sejin7940 | 2015.01.23 |
팝업모듈에서 jQuery 충돌 해결 - 팝업창이 안뜰때. [5] | 똑디 | 2013.03.22 |
xe설치시 퍼미션 문제나 DB엑세스 문제 해결하기 | 길가던분 | 2015.05.01 |
[애매모호]스케치북 게시판을 뭔가 큼직큼직하게 눈에 잘들어오게 바꾸기 [10] | socialskyo | 2014.01.03 |
PC에서 모바일화면 보는방법 [2] | 빅스타 | 2015.04.29 |
스케치북 게시판 추천+등록 버튼 만들기 (수정) [8] | 숭숭군 | 2012.09.22 |
양력을 음력으로... [7] | pupstar | 2001.08.14 |
[초간단 자바스크립트!] 이미지 드래그하기..~~ [8] | ∑Ztxy | 2003.11.02 |
간편 css 압축 | Ansi™ | 2015.04.21 |
XE 1.5 이상으로 DB 이전시 일부 DB가 빠질 경우 - 내용추가(0203) [7] | sejin7940 | 2012.02.02 |
정렬을 사용자정의값으로 한 경우 저장이 안 되는 현상 수정 [1] | sejin7940 | 2015.01.06 |