Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

캐시 무효화하는 방법 본문

인프런/[인프런]모든 개발자를 위한 HTTP 웹 기본 지식

캐시 무효화하는 방법

Seung__ 2021. 8. 4. 23:35

1. 확실한 캐시 무효화가 가능한 응답


  • 브라우저가 임의로 캐시하는 경우가 있음
  • 만약 이 페이지는 진짜 캐시 되면 안돼!!!!멈춰!! 하고싶으면 아래 헤더 필요함.
  • Cache-Control: no-cache, no-store, must-revalidate
  • Pragma: no-cache
    과거 브라우저가 있을 수 있으니..

 

 

2. 캐시 지시어  - 확실하게 캐시 무효화 하는 방법


  • Cache-Control: no-cache
    - 데이터는 캐시해도 되지만, 항상 origin 서버에 검증하고 사용(이름.. ㅎㅎ주의)
  • Cache-Control: no-store
    - 데이터에 민감한 정보가 있으니 저장하지마
    - 메모리에서 사용하고 삭제
  • Cache-Control: must-revalidate
    - 캐시 만료 후 최소 조회 시 origin 서버에 검증해야함
    - origin 서버 접근 실패 시 반드시 오류가 발생해야함 - 504(Gateway Timeout)
    - must-revalidate는 캐시 유효 시간 내라면 캐시를 사용하도록 함.
  • Pragma: no-cache
    - HTTP 1.0 하위호환, 과거 브라우저가 있을 수 있으니..

 

3. No cache 동작

  • 클라이언트에서 no-cache로 넘기면 Origin 서버에서 검증이 필요함
  • 따라서 프록시 캐시 서버는 Origin 서버에서 검증할 수 있도록 Origin 서버에 요청함.

  • 그런데 프록시 캐시 서버에서 origin 서버로 네트워크 단절로 인한 서버 접근이 불가능하면..?
    - 프록시 캐시 서버는 설정에 따라 원서버에 접근이 불가능할 경우
    - 캐시 데이터를 반환할 수 있도록 설정할 수 있음
    - 즉 원서버 접근 불가시 Error 또는 200 OK 설정 가능
    - 즉 설정에 따라 과거 데이터가 반환이 될 수 도 있음. 쪼끔 보안이 필요한데..?

 

4. must-revalidate


  • 캐시 무효화를 위해 no-cache의 일부 부족한 점을 보완 가능.
  • 프록시 서버에서 origin 서버로 접근이 불가능할 경우
  • must-revalidate는 항상 504 Gateway Timout이 발생해야 한다.
  • 따라서 캐시를 무효화하기 위해서 확실하게 must-revalidate까지 필요함.

Comments