Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 인프런
- 알고리즘
- db
- JPQL
- 자바
- AOP
- springdatajpa
- http
- 스프링
- Exception
- Greedy
- SpringBoot
- Spring Boot
- transaction
- jpa
- spring
- Android
- Proxy
- 스프링 핵심 원리
- 김영한
- java
- kotlin
- 스프링 핵심 기능
- Thymeleaf
- Servlet
- QueryDSL
- JDBC
- 백준
- pointcut
- 그리디
Archives
- Today
- Total
개발자되기 프로젝트
캐시 무효화하는 방법 본문
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까지 필요함.
'인프런 > [인프런]모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글
프록시 캐시, 캐시 지시어(directives) (0) | 2021.08.04 |
---|---|
캐시와 조건부 요청 헤더 (0) | 2021.08.04 |
검증 헤더와 조건 부 요청 2 (0) | 2021.08.04 |
검증헤더와 조건부 요청 1 (0) | 2021.08.04 |
Header - 캐시 기본 동작 (0) | 2021.08.04 |
Comments