ETag는 HTTP에서 자원 표현의 버전을 식별하는 검증자이다. 캐시 재검증이나 조건부 갱신에 사용할 수 있다.
HTTP 핵심 개념 |
|---|
HTTP · HTTP 메서드 · HTTP 상태 코드 · HTTP 캐시 · HTTP 쿠키 |
CORS · ETag · Content-Type · HTTP 콘텐츠 협상 · HTTP 리다이렉트 |
원리
서버가 응답에 태그를 보내고 클라이언트가 If-None-Match 또는 If-Match 같은 조건에 활용한다. 강한 검증자와 약한 검증자는 비교 보장이 다르다.
예시
저장한 문서의 ETag를 보내 변경 여부를 확인하면 바뀌지 않은 경우 본문을 다시 받지 않을 수 있다. 편집 시 버전 충돌을 감지하는 데도 활용한다.
주의할 점
ETag가 항상 파일 해시라는 보장은 없다. 생성 방식은 서버가 정하며 약한 태그를 바이트 단위 동일성 보장이 필요한 곳에 그대로 사용하지 않는다.