웹 캐시

웹 캐시(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

작동 원리

  1. 요청: 클라이언트가 특정 URL에 HTTP 요청을 전송한다.
  2. 캐시 검사: 캐시 계층(브라우저, 프록시, CDN 등)이 해당 URL의 캐시 항목이 존재하고 유효한지 확인한다.
  3. 히트(캐시 적중): 캐시가 유효한 경우, 원본 서버에 요청을 전달하지 않고 저장된 복사본을 반환한다.
  4. 미스(캐시 불일치): 캐시가 없거나 유효 기간이 만료된 경우, 원본 서버에 요청을 전달하고 응답을 받는다. 이후 받은 응답을 캐시 규칙에 따라 저장한다.

캐시 제어 헤더

  • 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년 현재까지 확인된 공개 문헌 및 표준을 기반으로 작성되었습니다.

둘러보기

더 찾아볼 만한 주제