Cache-Control: public, max-age, s-maxage, immutable 완벽 정리

Cache-Control 헤더는 브라우저와 CDN 같은 캐시가 데이터를 얼마나 오래 저장할지 결정하는 중요한 설정이다.
다음은 가장 자주 사용하는 설정을 기준으로 정리한 내용이다.
Cache-Control: public, max-age=3600, s-maxage=3600
public
public은 브라우저뿐 아니라 CDN 같은 공유 캐시도 이 응답을 저장할 수 있다는 의미이다.
이미지, CSS, JS 같은 정적 파일이나 개인정보가 필요 없는 데이터 요청에 많이 사용된다.
max-age
브라우저 캐시가 데이터를 유지하는 시간이다.
max-age=3600 은 브라우저가 1시간 동안 다시 요청하지 않고 캐시된 데이터를 사용한다는 뜻이다.
s-maxage
s-maxage는 CDN이나 reverse proxy 같은 공유 캐시의 저장 시간을 의미한다.
브라우저는 max-age를 사용하고, CDN은 s-maxage 값을 우선 적용한다.
immutable 옵션
immutable은 정적 파일에서 자주 사용되는 옵션이다.
파일이 변하지 않는다고 선언함으로써 브라우저는 캐시 기간 동안 서버에 재요청하지 않는다.
파일명에 버전이 포함된 JS, CSS, 이미지 등에 사용한다.
예: Cache-Control: public, max-age=31536000, immutable
Cache-Control 옵션 요약
public: 모든 캐시 사용 가능
private: 브라우저 캐시만 허용
max-age: 브라우저 캐시 TTL
s-maxage: CDN 캐시 TTL
immutable: 파일 변경 없음을 보장
no-store: 어떤 캐시도 허용하지 않음
no-cache: 캐시에 저장 가능하지만 매 요청마다 서버로 검증 필요
'IT > Server' 카테고리의 다른 글
| HTTPS 프록시의 핵심, CONNECT 메서드란? (0) | 2025.12.25 |
|---|---|
| HTTP 메서드 정리: GET, POST 말고도 뭐가 있을까? (0) | 2025.12.25 |
| Tailscale을 이용한 라즈베리파이 원격 접속 설정 방법 (0) | 2025.03.11 |
| curl ifconfig.me로 공인 IP 주소 확인하기 (0) | 2024.11.06 |
| Jenkins에서 SSH를 사용해 원격 서버 명령 실행하기: jenkins 사용자 설정 가이드 (4) | 2024.11.05 |