
Cache-Control의 주요 옵션Cache-Control 헤더는 브라우저 및 중간 캐싱 시스템(CDN, 프록시 등)에서 파일 캐싱 동작을 제어
no-cacheno-storemax-age=<seconds>max-age=3600은 1시간 동안 캐싱.s-maxages-maxage=31536000, max-age=0 과 같이 설정하면 CDN에서는 1년동안 캐시되지만 브라우저에서는 매번 재검증 요청을 보내도록 설정할 수 있습니다.public과 privateno-cache의 작동 방식no-cache 설정으로 인해 서버에 유효성 확인 요청을 전송If-None-Match: ETag를 사용해 파일이 변경되었는지 확인If-Modified-Since: Last-Modified 헤더를 사용해 파일의 변경 여부 확인304 Not Modified 응답을 반환200 OK)Cache-Control: no-cache는 ETag와 함께 작동하여 효율적으로 캐싱을 관리브라우저가 캐싱된 리소스의 ETag 값을 서버에 보냄
If-None-Match: "abc123"
서버는 리소스의 ETag를 비교
index.html 파일 이름도 항상 변경되어야 하나요? → ❌대신, 브라우저와 CDN이 index.html의 최신 버전을 항상 요청하도록 설정
내부에서 번들된 파일들(CSS, JS 등)의 최신 이름을 참조하기 때문에 만약 index.html이 캐시된 상태로 남아 있다면, 여전히 이전 번들 파일 이름을 요청
index.html을 요청하도록 설정Cache-Control: no-cache, must-revalidateno-cache: 브라우저가 항상 서버에 파일의 최신 버전을 요청.must-revalidate: 서버에서 유효성을 확인한 후 응답하도록 강제.Cache-Control: no-cache는 캐싱 자체를 완전히 비활성화하는 것이 아님
Cache-Control: no-cache는 캐시 기능을 비활성화하는 것이 아니라 캐싱된 파일의 유효성을 항상 서버에 확인하도록 하는 설정