1. HTTP 캐시란 무엇인가?


HTTP 캐시는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소다.

1-1) 캐시가 필요한 이유

편의점에서 매일 아침 같은 샌드위치를 사먹는다고 생각해보자. 두 가지 상황을 비교해보면:

상황 A: 매일 아침 집에서 편의점까지 걸어가서(5분) 샌드위치를 산다. 상황 B: 일주일치 샌드위치를 미리 사서 집 냉장고에 보관한다. 아침마다 냉장고에서 꺼내 먹는다(10초).

캐시는 바로 이 "냉장고"와 같은 역할이다.

1-2) 캐시의 실제 동작

웹 브라우저에서 이미지를 요청하는 상황을 보자:

첫 번째 요청:

브라우저 → 서버: GET /logo.jpg

서버 → 브라우저:
HTTP/1.1 200 OK
Content-Type: image/jpeg
Cache-Control: max-age=60 (60초 동안 캐시 유효)
Content-Length: 31025

[이미지 데이터 1.1MB]

브라우저는 이 응답을 "브라우저 캐시"라는 냉장고에 저장한다. 유통기한은 60초다.

두 번째 요청 (60초 이내):

브라우저 → 브라우저 캐시: "logo.jpg 있어?"
브라우저 캐시: "있어! 아직 신선해!" (유통기한 확인)
→ 서버 요청 없이 캐시에서 바로 사용

2. 캐시가 있을 때 vs 없을 때