로그인 입점하기
← 가이드 목록
시작하기

Cache-Control이란? 브라우저 캐시를 얼마나 오래 사용할지 정하는 HTTP 헤더 쉽게 이해하기

Cache-Control은 캐시 보관·사용 안내문입니다. max-age·no-cache·no-store·private/public, ETag·CDN·캐시 버스팅까지 초보 기준으로 정리합니다.

Cache-Control이란? 브라우저 캐시를 얼마나 오래 사용할지 정하는 HTTP 헤더 쉽게 이해하기

홈페이지를 다시 열 때마다 이미지·CSS·JS를 전부 다시 받으면 비효율적입니다. 브라우저는 한 번 받은 파일을 캐시에 두고 재사용할 수 있습니다. 「아직 써도 되는지」「서버에 다시 물어야 하는지」를 알려 주는 대표 헤더가 Cache-Control입니다.

쉽게 말하면 — Cache-Control은 캐시된 파일에 붙이는 ‘보관 및 사용 안내문’입니다.

max-age 동안 캐시 사용 후 유효시간 종료 시 서버 확인으로 304 또는 새 파일을 받는 흐름
다운로드 → max-age 동안 바로 사용 → 만료 후 확인 → 304 또는 새 파일

식품 보관 안내에 비유하면

우유 상자에 「냉장 보관」「유통기한」이 있으면 언제까지 써도 되는지 알 수 있습니다. 서버도 「1시간은 다시 확인하지 않아도 됩니다」「저장하지 마세요」 같은 규칙을 줄 수 있고, 그 표현이 Cache-Control입니다. (HTTP 헤더)

max-age란?

Cache-Control: max-age=3600처럼 초 단위로 「이 시간 동안은 신선한 캐시로 써도 된다」를 정합니다. 60초·1시간(3600)·24시간(86400) 등이 흔합니다. 유효시간이 남아 있으면 서버에 묻지 않고 캐시만 쓸 수 있습니다.

만료됐다고 파일이 자동 삭제되는 것은 아닙니다. 「다시 쓰기 전에 최신인지 확인할 필요가 있다」에 가깝습니다. 확인 후 그대로면 304 Not Modified로 기존 캐시를 이어 쓸 수 있습니다. 비교에는 ETag·Last-Modified가 쓰입니다.

역할이 다른 헤더들

  • Cache-Control — 언제까지 다시 확인하지 않고 쓸지(정책)
  • ETag — 다시 확인할 때 버전 번호 비교
  • Last-Modified — 다시 확인할 때 최종 수정일 비교

no-cache · no-store · private · public

  • no-cache — 「절대 저장 금지」가 아니라, 써도 되지만 쓰기 전 서버에 재검증
  • no-store — 캐시에 보관하지 마세요(민감 응답에 고려)
  • private — 개인 브라우저 캐시 OK, CDN 등 공유 캐시에는 두지 않음(마이페이지·주문)
  • public — 공유 캐시에도 저장 가능(로고·공개 정적 파일)

CDN · s-maxage · 캐시 버스팅

CDN도 캐시입니다. s-maxage로 공유 캐시 시간만 따로 둘 수 있습니다(예: 브라우저는 5분, CDN은 1시간). 내용이 안 바뀌는 해시 파일명(style.a91f32.css)에는 긴 캐시·immutable을 쓰고, 바뀌면 URL을 바꾸는 캐시 버스팅과 자주 함께 씁니다.

HTML은 같은 URL로 내용이 자주 바뀌므로 1년 캐시가 위험할 수 있습니다. 로고는 길게, 재고·결제는 짧게 또는 no-store — 자원별로 다르게 두는 것이 자연스럽습니다. 캐시를 0으로만 두면 최신은 쉽지만 속도·트래픽 이득이 줄어듭니다.

Expires · SEO (참고)

Expires도 「언제까지 캐시해도 되나」를 날짜로 알려 주는 헤더입니다. 현대에는 Cache-Control의 max-age를 더 세밀하게 쓰는 경우가 많습니다. Cache-Control 자체가 검색순위를 직접 올리지는 않지만, 잘못된 캐시로 옛 화면이 남으면 운영·경험에 해가 됩니다.


자주 묻는 질문

Cache-Control이란?

브라우저·CDN이 응답을 어떻게 저장·재사용할지 알려 주는 HTTP 헤더입니다.

max-age가 끝나면 삭제되나요?

아닙니다. 다시 쓰기 전에 서버 확인이 필요할 수 있다는 뜻에 가깝습니다.

no-cache는 저장 금지인가요?

아닙니다. 저장은 가능하지만 사용 전 재검증이 필요합니다. 저장 금지는 no-store입니다.

SEO 순위가 올라가나요?

직접적인 순위 기술은 아닙니다. 캐시를 효율적으로 관리하는 설정입니다.


정리

Cache-Control = 캐시 사용 설명서

max-age는 확인 없이 써도 되는 기간, no-cache는 쓰기 전 확인, no-store는 저장 금지, private/public은 개인·공유 캐시 구분입니다. Cache-Control과 함께 자주 보이는 Expires도 「언제까지 캐시해도 되나」를 알려 주지만, max-age와 표현 방식이 다릅니다. 자세한 내용은 Expires 헤더란?을 참고하세요.