HTTP 캐시는 웹 성능 최적화의 핵심 기술 중 하나로, 자원의 사본을 임시로 저장하여 빠르게 재활용하는 메커니즘입니다.
서버와의 불필요한 통신을 줄이고, 사용자가 더 빠르게 콘텐츠를 받아볼 수 있게 도와줍니다.
1. 캐시의 기본 개념
HTTP 캐시는 **“응답받은 자원의 사본을 임시로 저장하는 기술”**입니다.
이 덕분에 이후 동일한 요청이 들어올 때, 서버에 다시 요청하지 않고 저장된 데이터를 재사용할 수 있습니다.
이 방식은 다음과 같은 장점을 가집니다:
- 불필요한 네트워크 낭비 방지
- 서버 부하 감소 및 응답 지연 방지
- 빠른 자원 접근 가능
캐시는 저장 위치에 따라 두 가지로 나뉩니다:
- 🧍♂️ 개인 전용 캐시 (Private Cache): 사용자의 브라우저에 저장
- 🌍 공용 캐시 (Public Cache): 클라이언트와 서버 사이의 중간 서버(프록시 등)에 저장
2. 캐시 신선도 검사와 유지
캐시의 핵심은 단순히 데이터를 저장하는 것이 아니라, ‘얼마나 최신 상태인지’(신선도) 를 유지하는 데 있습니다.
시간이 지나면 서버의 원본 데이터가 변경될 수 있기 때문에,
클라이언트는 “내가 가진 캐시 데이터가 아직 최신일까?”를 확인해야 합니다.
이것이 바로 캐시 신선도(Cache Freshness) 개념입니다.
예를 들어, 서버의 이미지 파일이 업데이트되었다면, 브라우저에 남아 있는 이전 버전(캐시)은 더 이상 최신이 아니게 됩니다.
3. 캐시 신선도 검사: 재검사 방식
캐시 신선도를 확인하는 대표적인 방법은 If-Modified-Since 헤더입니다.
이 헤더는 클라이언트가 마지막으로 데이터를 받은 시점을 서버에 알려주고,
그 이후로 원본 데이터가 수정된 적이 있는지를 묻습니다.
- 변경이 없었다면 → 서버는 304 Not Modified로 응답하여 캐시 재사용
- 변경이 있었다면 → 새 데이터를 다시 내려보냄
즉, 불필요한 데이터 전송을 줄이면서도 최신 데이터를 유지할 수 있는 효율적인 방법입니다.
4. 캐시 신선도 검사: 유효 기간 설정
캐시 신선도를 관리하는 또 다른 방식은 유효 기간(Expiration) 을 미리 설정하는 것입니다.
즉, **“이 데이터는 언제까지 최신으로 간주할 수 있는가”**를 명시하는 것이죠.
이를 설정하는 주요 헤더는 다음 두 가지입니다:
- Expires: 캐시 만료 시점을 명시하는 날짜 기반 헤더
- Cache-Control: max-age: 초 단위로 유효 기간을 명시
예를 들어,
- Expires: Tue, 06 Feb 2024 12:00:00 GMT
- Cache-Control: max-age=1200
은 모두 캐시 데이터를 약 20분(1200초) 동안 유효하다고 지정하는 의미입니다.
정리하면
HTTP 캐시는 웹 통신의 효율을 극대화하기 위한 필수 요소입니다.
데이터를 무조건 새로 받아오는 대신, 필요할 때만 갱신하고, 그 외에는 캐시를 활용하는 구조를 통해
네트워크 부하를 줄이고 사용자 경험을 향상시킬 수 있습니다.
'컴퓨터 과학 > 네트워크' 카테고리의 다른 글
| IPv4 주소의 기본 구조 이해하기 (0) | 2025.10.05 |
|---|---|
| HTTP 기반 기술: 쿠키(Cookie) (0) | 2025.10.05 |
| HTTP 요청과 응답에서 사용되는 주요 헤더 정리 (0) | 2025.10.05 |
| HTTP 상태 코드 완벽 정리 (0) | 2025.10.05 |
| HTTP 메서드란? (0) | 2025.10.05 |