ログイン 出店する
← 가이드 목록
시작하기

ETag란? 브라우저가 캐시된 파일의 변경 여부를 확인하는 방법 쉽게 이해하기

ETag는 파일 버전 번호표입니다. If-None-Match·304와의 관계, Last-Modified·Cache-Control 차이, Strong/Weak까지 초보 기준으로 정리합니다.

ETag란? 브라우저가 캐시된 파일의 변경 여부를 확인하는 방법 쉽게 이해하기

브라우저 캐시304 Not Modified를 보면 ETag가 자주 나옵니다. ETag는 서버가 웹페이지·파일의 현재 버전을 구분하기 위해 붙일 수 있는 식별값입니다.

쉽게 말하면 — ETag는 홈페이지 파일에 붙어 있는 버전 확인용 번호표입니다.

처음 방문에서 ETag를 저장하고 재방문 시 If-None-Match로 비교해 304 또는 200을 받는 흐름
파일+ETag 저장 → If-None-Match 확인 → 304 또는 새 파일

문서 버전 번호에 비유하면

매뉴얼에 「버전 A135」가 붙어 있으면, 나중에 「A135가 아직 최신인가요?」만 물어보면 됩니다. 같으면 100페이지를 다시 받을 필요가 없습니다. ETag도 「이전에 받은 것과 지금이 같은가?」를 비교하는 식별값입니다. 예: ETag: "abc123" — 문자열 자체를 외울 필요는 없습니다.

처음 방문과 다시 방문

  • 처음200 OK + 파일 + ETag 저장
  • 다시 — 요청 헤더 If-None-Match: "abc123"로 「이 번호와 같으면 다시 보내지 않아도 됩니다」

서버 ETag가 같으면 304 → 기존 캐시 사용. 다르면 보통 200 + 새 파일 + 새 ETag입니다.

ETag와 304의 관계

ETag = 버전 번호(비교 기준), 304 = 그 버전 그대로 써도 된다는 답입니다. ETag가 없어도 Cache-Control·Expires·Last-Modified로 캐시를 쓸 수 있습니다. ETag는 방법 중 하나입니다.

Last-Modified와 다른가?

  • ETag — 콘텐츠 버전 식별값
  • Last-Modified — 마지막 수정 시각. 자세한 내용은 Last-Modified란?

수정 날짜만으로도 충분한 경우가 많지만, 동적 생성 콘텐츠 등에서는 ETag가 더 세밀할 수 있습니다. 둘을 함께 줄 수도 있습니다. 값은 서버·앱이 만들고, 파일 내용 그 자체는 아닐 수 있으며, 서버마다 생성 방식이 달라 같은 내용이라도 ETag가 다를 수 있습니다.

Strong · Weak ETag (참고)

Strong — 바이트 수준으로 강하게 같음을 비교(ETag: "abc123"). Weak — 의미상 같으면 재사용 가능(ETag: W/"abc123"). 일반 사용자는 「버전표」만 알면 충분합니다.

어디에 쓰이나?

이미지·CSS·JS·HTML·JSON·API 응답 등. 큰 로고가 그대로면 304로 재전송을 줄일 수 있습니다. 수정이 안 보이면 ETag만이 아니라 CDN·서버·Cache-Control·캐시 버스팅까지 같이 봅니다.

내용이 바뀌었는데 ETag가 그대로면 브라우저가 옛 캐시를 쓸 수 있습니다. 서버가 여러 대면 ETag 생성 방식이 제각각이면 불필요 재다운로드가 늘 수 있어, 정책을 일관되게 두는 것이 좋습니다.

Cache-Control · 캐시 버스팅과 역할

  • Cache-Control — 언제 다시 확인할지(규칙)
  • ETag — 다시 확인할 때 비교하는 버전번호
  • 캐시 버스팅 — URL을 바꿔 새 파일로 인식(style.xyz.css)

max-age가 남아 있으면 서버에 ETag를 묻지 않고 캐시만 쓸 수 있습니다. ETag 확인도 네트워크 왕복이 있으므로, 정적 파일은 긴 캐시+버스팅으로 확인 횟수를 줄이는 전략도 흔합니다.

API · 동시 수정 (참고)

상품 API에 ETag: "product-v15"를 붙여 변경 없으면 304로 줄일 수 있습니다. 같은 버전표로 「내가 수정하려는 데이터가 이미 바뀌었는지」를 막는 데도 쓸 수 있습니다 — 캐시 검증과 목적은 다르지만 버전 비교라는 공통점이 있습니다. 개인정보를 ETag에 넣지 않는 편이 안전합니다.


자주 묻는 질문

ETag란?

콘텐츠 버전을 구분하는 HTTP 응답 식별값입니다.

ETag와 304 차이는?

ETag는 비교용 번호표, 304는 「변경 없음 — 캐시 사용」 상태 코드입니다.

없으면 캐시를 못 쓰나요?

아닙니다. Cache-Control·Last-Modified 등으로도 가능합니다.

SEO 순위가 올라가나요?

직접적인 순위 기술은 아닙니다. 캐시·버전 확인용 HTTP 기능입니다.


정리

ETag = 파일의 버전 번호표

브라우저는 저장한 ETag로 변경 여부를 묻고, 같으면 304로 캐시를 씁니다. 버전 번호가 아니라 마지막 수정 시간으로 같은 일을 하는 방법이 Last-Modified입니다. 자세한 내용은 Last-Modified란?을 참고하세요.