원본과 전달 지점
콘텐츠 전달 네트워크는 지리적으로 분산된 서버를 이용해 웹 콘텐츠를 전달하는 구조다. 원본 서버의 이미지, 스크립트, 스타일시트, HTML 등을 사용자에게 가까운 전달 지점에서 제공할 수 있다. CDN은 원본을 작성하거나 저장하는 시스템과 역할이 다르다.
캐시가 재사용하는 응답
캐시는 이전에 받은 응답을 보관했다가 재사용한다. 재사용 가능 기간과 조건은 HTTP 헤더 등의 정책으로 결정된다. 브라우저의 개인 캐시와 CDN 같은 공유 캐시는 대상이 다르므로, 사용자마다 달라지는 응답을 다룰 때 구분이 중요하다.
| 개념 | 의미 |
|---|---|
| 원본 서버 | 콘텐츠를 제공하는 기준 서버 |
| 캐시 적중 | 저장된 응답으로 요청에 답하는 경우 |
| 재검증 | 저장된 응답을 다시 써도 되는지 확인하는 과정 |
문서와 이미지의 예시
위키의 공개 문서와 이미지는 갱신 방식이 다를 수 있다. 예를 들어 수정한 이미지에 새 URL을 부여하면 이전 이미지와 구별하기 쉽다. 문서 응답은 수정이 얼마나 빨리 반영되어야 하는지에 맞춰 캐시 정책을 정할 수 있다. 이는 서비스별로 결정하는 운영 예시다.
최신성과 개인정보
캐시가 있으면 모든 요청이 항상 빨라지거나 원본 장애가 모두 해결되는 것은 아니다. 저장된 응답이 없는 요청은 원본에 의존할 수 있다. 로그인 상태에 따라 달라지는 페이지는 공유 캐시에 다른 사용자의 내용이 섞이지 않도록 정책을 설계해야 한다.
또한 Cache-Control의 no-cache는 저장을 무조건 금지한다는 뜻이 아니라 재사용 전에 재검증하도록 하는 지시다. 저장 자체를 막는 no-store와 구분해야 한다.