웹 개발

웹 페이지가 캐시(cache) 되지 않도록 설정

노루아부지 2021. 9. 23. 16:36

웹 페이지 개발 시, 난 분명 수정을 했고, 서버에도 반영이 되어있는데 웹 브라우저에서 확인해보면 수정하기 이전 파일이 로딩되어 사용자가 안된다고 하거나 에러가 난다고 하는 경우가 항상 있습니다.

그럴때 가장 먼저 하는 말은, "캐시 삭제해 보셨나요?" 입니다.

 

jsp같은 경우에는 이런 상황을 예방하기 위해 현재 시간을 parameter로 넣는 경우도 있습니다. parameter가 다르면 브라우저가 다른 파일이라고 인식해서 다운로드 받기 때문인데요

 

이렇게 일일히 javascript나 css 파일에 parameter로 넣지 않고도 다음과 같이 meta tag로 캐시를 사용하지 않게 할 수 있습니다.

 

  1. HTTP/1.0
    <META http-equiv="Expires" content="-1">
    <META http-equiv="Pragma" content="no-cache">​
  2. HTTP/1.1
    <META http-equiv="Cache-Control" content="no-cache">​

 

캐시를 사용하지 않기 위한 Cache-Control 옵션은 다음과 같습니다.

  • no-cache
    캐시된 복사본을 사용자에게 보여주기 이전에 재검증을 위한 요청을 원 서버로 보내도록 강제합니다.
  • no-store
    캐시는 클라이언트 요청 혹은 서버 응답에 관해서 어떤 것도 저장해서는 안됩니다.
  • must-revalidate
    캐시는 사용하기 이전에 기존 리소스의 상태를 반드시 확인해야 하며, 만료된 리소스는 사용되어서는 안됩니다.

 

더 많은 Cache-Control 옵션 및 내용은 아래 주소에서 확인할 수 있습니다.

https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Cache-Control

 

Cache-Control - HTTP | MDN

Cache-Control 일반 헤더 필드는 요청과 응답 내의 캐싱 메커니즘을 위한 디렉티브를 정하기 위해 사용됩니다. 캐싱 디렉티브는 단방향성이며, 이는 요청 내에 주어진 디렉티브가 응답 내에 주어

developer.mozilla.org

 

728x90
loading