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
- 톰캣 TLS 옵션
- SSL peer shut down incorrectly
- 트랜잭션 원리
- vue 추가
- 소프트웨어
- Jenkins
- reset
- dbeaver 백업/복구
- CA 인증기관
- options 처리
- vue 실행
- 깃허브 토큰 발급
- 배열 call by value
- jwt 헤더
- 테스팅
- 배포 자동화
- SSH 통신오류
- CI/CD
- JAVA API 호출실패
- 환경변수
- TLS 옵션
- 되돌리기
- prefilight
- jwt 필터
- git 폴더 모으기
- 톰캣 캐시
- 컴파일 캐시
- deploy.sh
- 채팅 프로젝트
- 깃허브 토큰 생성
Archives
- Today
- Total
lty's Blog
웹 캐시 무효화 본문
1. 웹 캐시 무효화 (Web Cache Invalidation)
브라우저나 중간 캐시 서버에 저장된 오래된 데이터를 최신 상태로 갱신하도록 관리하는 방법
캐시를 사용하는 이유
- 브라우저/프록시 서버가 요청한 리소스를 캐시에 저장해서 다음 요청 시 빠르게 전달 (캐시로 브라우저 랜더링 최적화)
캐시 무효화가 필요한 이유
- 리소스가 업데이트 되어도 브라우저가 오래된 캐시를 사용하면 최신 데이터가 나오지 않을 수 있음(CSS 파일을 변경해도 브라우저에서 예전 CSS 사용으로 레이아웃이 깨질 수 있음)
2. 캐시 무효화 전략
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
Cache-Control 헤더 사용 : HTTP/1.1 기준, 캐시 동작을 브라우저에 직접 지시
- no-cache : 브라우저에 저장해도 되지만, 사용하기 전에 반드시 서버에 확인해야 한다.
- 서버가 E-tag를 기준으로 새 데이터를 줄지 기존 데이터를 사용할지 판별
- ETag 같음 → 304 Not Modified
→ 브라우저는 기존 캐시 사용, 데이터 재전송 없음 - ETag 다름 → 200 OK + 새 데이터 전송
→ 브라우저는 캐시 갱신
- ETag 같음 → 304 Not Modified
- 서버가 E-tag를 기준으로 새 데이터를 줄지 기존 데이터를 사용할지 판별
- no-store : 캐시를 아예 사용하지 않음 (필요할 때마다 서버에서 항상 새 데이터를 전달받아야 한다. - 민감데이터 적용 시 필요)
- must-revaildate : 만료된 캐시는 반드시 서버에서 확인 후 사용해야 한다. (캐시 만료 시에만 서버 검증하여 사용한다.)
- 유효기간 (MAX-AGE) 설정과 같이 사용하며 만료기간이 0 이면 no-cache와 별 다를 게 없다.
'Backend' 카테고리의 다른 글
| TLS 버전 불일치 SSL peer shut down incorrectly 해결 (0) | 2026.02.10 |
|---|---|
| CA 인증서와 자바 API 호출 (0) | 2026.01.08 |
| JWT 헤더 검증과 CORS (0) | 2025.05.25 |
| CORS 와 브라우저 prefilight 요청 (0) | 2025.05.18 |
| 같은IP 에서 톰캣 2개이상 동시 로그인시에 세션끊김현상 조치 - JSESSIONID (0) | 2023.03.28 |
Comments