웹 캐시(Web cache)는 웹 브라우저, 프록시 서버, CDN(Content Delivery Network) 등에서 사용되는 저장 메커니즘으로, 이전에 요청된 웹 자원의 복사본을 임시적으로 보관하여 동일한 자원에 대한 subsequent 요청에 대해 보다 빠른 응답을 제공하고 네트워크 트래픽을 감소시키는 역할을 한다.
정의
웹 캐시는 HTTP/HTTPS 프로토콜을 통해 전송되는 HTML 문서, 이미지, 스타일시트, 자바스크립트 파일 등 다양한 유형의 웹 콘텐츠를 일정 기간 보관한다. 캐시된 객체는 원본 서버의 응답 헤더(Cache-Control, Expires, ETag, Last-Modified 등)에 의해 유효 기간이 관리되며, 유효 기간이 만료되거나 강제 업데이트가 요구될 경우 새로 요청한다.
주요 유형
| 유형 | 설명 | 대표적인 구현 |
|---|---|---|
| 브라우저 캐시 | 사용자의 웹 브라우저가 로컬 디스크에 웹 자원을 저장. 페이지 재방문 시 로컬에서 자원을 불러와 로딩 속도 향상. | Chrome, Firefox, Edge 등 |
| 프록시 캐시 | 네트워크 경계에 위치한 프록시 서버가 여러 사용자를 대신해 자원을 캐시. 조직 내 트래픽 절감 및 응답 속도 향상. | Squid, Varnish |
| CDN 캐시 | 전 세계에 분산된 엣지 서버가 콘텐츠를 캐시하여 최종 사용자와 물리적 거리를 최소화. | Akamai, Cloudflare, Amazon CloudFront |
| 애플리케이션 레이어 캐시 | 웹 애플리케이션 내부에서 동적 페이지나 데이터베이스 쿼리 결과 등을 메모리 혹은 전용 캐시 스토어에 저장. | Redis, Memcached, Spring Cache |
작동 원리
- 요청: 클라이언트가 특정 URL에 HTTP 요청을 전송한다.
- 캐시 검사: 캐시 계층(브라우저, 프록시, CDN 등)이 해당 URL의 캐시 항목이 존재하고 유효한지 확인한다.
- 히트(캐시 적중): 캐시가 유효한 경우, 원본 서버에 요청을 전달하지 않고 저장된 복사본을 반환한다.
- 미스(캐시 불일치): 캐시가 없거나 유효 기간이 만료된 경우, 원본 서버에 요청을 전달하고 응답을 받는다. 이후 받은 응답을 캐시 규칙에 따라 저장한다.
캐시 제어 헤더
Cache-Control:max-age,no-cache,no-store,public,private등으로 캐시 정책을 정의.Expires: 절대적인 만료 시점을 지정(HTTP/1.0 호환).ETag: 리소스의 버전을 나타내는 식별자; 조건부 요청(If-None-Match)에 사용.Last-Modified: 마지막 수정 시각; 조건부 요청(If-Modified-Since)에 사용.
장점
- 응답 지연 감소: 네트워크 왕복 시간(RTT)이 감소하여 사용자 경험이 향상된다.
- 서버 부하 감소: 반복적인 자원 요청이 원본 서버에 도달하지 않으므로 처리량이 증가한다.
- 대역폭 절감: 동일한 데이터를 중복 전송하지 않음으로써 통신 비용이 절감된다.
단점 및 고려 사항
- 신선도 문제: 캐시된 내용이 최신이 아닐 경우 사용자가 오래된 정보를 보게 될 위험이 있다.
- 프라이버시: 민감한 데이터가 캐시될 경우 권한 없는 사용자가 접근할 가능성이 존재한다.
- 스토리지 비용: 대규모 캐시 인프라를 운영하려면 충분한 저장 공간과 관리가 필요하다.
역사
1990년대 초반, 초기 웹 브라우저가 기본적인 로컬 캐시 기능을 제공하기 시작했으며, 이후 1996년 Netscape Navigator가 Cache-Control 헤더를 도입하면서 표준화가 진행되었다. 2000년대 들어서는 대형 콘텐츠 제공 업체와 클라우드 서비스 제공자가 전역 CDN 네트워크를 구축하면서 웹 캐시 기술이 규모와 복잡성을 크게 확대하였다.
관련 기술
- 서비스 워커(Service Worker): 브라우저 내에서 프로그래머가 직접 캐시 전략을 구현할 수 있는 스크립트 API.
- HTTP/2 서버 푸시: 서버가 클라이언트가 요청하기 전에 필요한 리소스를 미리 전송하여 캐시 활용을 보조.
- Edge Computing: 엣지 노드에서 동적 로직을 실행하면서 캐시와 결합하여 지연을 최소화.
참고
- RFC 7234 – HTTP 캐시 (HTTP/1.1) 표준
- “Caching Guide” – Cloudflare Documentation
- “HTTP Caching” – Mozilla Developer Network (MDN)
본 항목은 2026년 현재까지 확인된 공개 문헌 및 표준을 기반으로 작성되었습니다.