웹 개발 메모장

개발 시 새로고침 해도 캐시가 남아있어 적용이 잘 안될 때 본문

옛날../http

개발 시 새로고침 해도 캐시가 남아있어 적용이 잘 안될 때

도로롱주 2018. 1. 5. 10:39




'캐시를 사용하지 않겠습니다.' 라고 request로 전달




캐시를 사용하지 않을 .jsp 파일 등에 다음과 같이 명시


1
2
3
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
cs




클라이언트는 서버에게 데이터를 요청하면 서버는 클라이언트에게 데이터를 전달해줍니다.


하지만 매번 서버에 가는 것 보다 효율을 높이기 위해 프록시 서버나 브라우저 등에 캐시(서버 데이터의 복사본)를 남겨두고 같은 요청이오면 굳이 서버까지 가서 데이터를 가져오기보다 캐시를 가져갑니다.


여기서 개발할 때 불편한 점이 개발자가 서버의 코드를 수정하고 브라우저에서 확인을 하려하는데 브라우저가 방금 수정된 코드가 아닌 캐시를 뿌려주는 경우가 있기 때문에 수정된 코드가 즉각 확인되지 않을 수 있습니다.


그럴 경우

request 메세지(클라이언트가 서버에게 요청하는 메세지)에 '나 캐시필요 없고 서버에서 새로 가져올래요' 라고 명시를 해주면 매번 서버에 직접 접근하기 때문에 즉각 확인이 가능합니다.



Cache-Control

캐싱 동작을 지정하는 헤더입니다.

no-cache / max-age / min-fresh 등이 있는데 캐시를 사용하지 않으려면 no-cahce 를 넘기면 됩니다.


Pragma

HTTP 1.0 이하의 버전 흔적입니다.

요즘 거의 HTTP 1.1 버전이지만 1.0 이하의 버전도 있기 때문에 Cach-Control 과 중복되지만 함께 사용하는 것이 좋습니다.


Expires

리소스의 유효 기한 날짜를 전달합니다.

캐시 서버가 Expires 헤더 필드를 포함한 리소스를 수신한 경우 필드 값으로 지정된 날짜까지 캐시를 유지하고 request에는 캐시로 응답합니다.

예) Expires: Wed, 04 Jul 2012 08:26:05 GMT



Comments