아파치 File ETag 적용 방법은 무엇인가요?
💡 요약 정리
- ETag는 HTTP 1.1의 캐시 유효성 검증(cache validation)에 사용되는 response 헤더입니다.
- 기본적으로 inode, size, last-modified-time을 이용하여 ETag 값을 계산합니다.
- 클러스터 환경에서는 서버마다 다른 inode로 인해 같은 파일에 대해 다른 ETag가 생성될 수 있습니다.
- FileETag directive를 사용하여 MTime과 Size만으로 ETag를 계산하도록 설정합니다.
- Apache 1.3.23 버전 이상에서 사용 가능합니다.
설치환경
- CentOS 5.x (64bit)
- Apache 2.2.23
1. ETag란?
정의
ETag(Entity Tag)는 HTTP 1.1에 명시되어 있는 response 헤더로서 cache validation으로 사용될 수 있는 값을 나타냅니다.
동작 원리
caching을 수행하는 측에서는 if-modified-since로 validation을 수행할 때 저장되어 있던 ETag 값을 같이 이용하여 좀 더 확실한 validation을 할 수 있습니다.
ETag 계산 방식
Apache는 다음 세 가지 속성을 이용하여 ETag 값을 계산합니다:
- inode (파일의 inode 번호)
- size (파일 크기)
- last-modified-time (최종 수정 시간)