웹 캐시란 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치임. 웹 요청이 캐시에 도착했을 때, 캐시된 로컬 사본이 존재한다면, 그 문서는 원 서버가 아니라 캐시로부터 제공됨. 캐시의 혜택을 요약하면 다음과 같음.
- 불필요한 데이터 전송을 줄여, 네트워크 요금으로 인한 비용을 줄여줌.
- 네트워크 병목을 줄임.
- 원 서버에 대한 요청을 줄임.
- 거리로 인한 지연을 줄임.
그렇다면 어떻게 캐시가 성능을 개선하고 비용을 줄이는지, 효과 측정 방법, 효과를 극디화하기 위해 캐시를 어디에 위치시켜야 하는지, 캐시된 사본 유지 방법, 어떻게 다른 캐시나 서버와 상호작용하는지 알아보자.
불필요한 데이터 전송
- 첫 번째 서버 응답은 캐시에 보관됨.
- 캐시된 사본이 뒤이은 요청들에 대한 응답으로 사용되어, 원 서버가 중복해서 트래픽을 주고받는 낭비가 줄어듦.
대역폭 병목
- 클라가 빠른 LAN에 있는 캐시로부터 사본을 가져온다면, 캐싱은 성능을 대폭 개선함.
- 이더넷 LAN이라면 5MB 크기의 파일을 전송하는데 1초도 걸리지 않지만, 56-kbps 모뎀이라면 749초(12분 이상)가 걸림. 특히 큰 문서들에 대해 캐싱이 큰 역할을 함.
갑작스런 요청 쇄도(Flash Crowds)
- 갑작스런 뉴스 속보, 유명 인사와 관련된 사건 등으로 인해 많은 사람들이 거의 동시에 웹 문서에 접근할 때 발생.
- CNN의 경우 평균 매초 50,000건이 넘는 요청을 받는다고 보고함.
거리로 인한 지연