본문 바로가기
Computer Science/HTTP

HTTP CACHING(캐싱)이란?

by 달팽이 "@... 2022. 3. 15.

HTTP 캐싱(Caching)이란 웹페이지에서 자주 사용되는 리소스들을 저장하고 재사용하는 것을 뜻합니다.

 

이미 가지고 있는 리소스들을 재사용하기 때문에 성능 향상을 기대할 수 있고 이것은 곧 사용자의 UX와 서버 비용이 감소하므로 기업의 수익 개선을 의미할 수 있습니다.

 

캐싱은 웹페이지에서 자주 사용되는 리소스들을 저장하고 재사용하는 것이라고 했습니다.

그리하여 웹페이지 열람 시 필요한 리소스들을 매번 새롭게 서버 측에서 다운로드하는 것을 방지하는 것입니다.

 

 

캐싱을 하려면 캐시(cache)라고 부르는 리소스 저장소가 필요합니다.

캐시는 서버측보다는 클라이언트 측에 가까운 브라우저나 프록시 서버, 엣지 노드 등에 존재합니다.

 

누군가가 웹사이트에 접근하면 시스템은 캐시에 접근해 해당 웹사이트의 리소스가 저장되어있는지 확인하고 리소스가 존재한다면 서버에서 새롭게 다운로드하는 것보다 훨씬 더 빠르게 리소스를 가져옵니다.

 

캐싱을 통해 필요한 리소스들을 확인하고 캐싱 서버에 저장한다면 추후 요청부터는 아래의 그림에서처럼 오리진 서버에 대한 접근 없이 캐싱 서버로부터 필요한 리소스들을 전달받을 수 있기 때문에 짧은 지연시간과 낮은 서버 비용을 기대해볼 수 있습니다.

 

캐시의 종류

브라우저 캐시 - 브라우저에서 저장되는 캐시입니다. 모든 브라우저는 로컬 저장소를 가지고 있고 일반적으로 이전에 받아왔던 리소스를 다시 불러오는 용도로 사용됩니다. 해당 브라우저에서만 접근 가능하기 때문에 저장된 리소스는 다른 사용자와 공유되지 않습니다.

 

프록시 캐시 - 엔드 유저와 서버 사이에 있는 프록시 서버에 저장되는 캐시로 여러 사용자와 공유할 수 있으며 일반적으로 제공자(서버) 측에서 관리됩니다.

 

애플리케이션 캐시 - 애플리케이션 안에 저장되는 캐시입니다. 개발자가 웹브라우저가 어떤 파일을 캐싱해야 할지 결정할 수 있습니다. 

 

 

참고 자료

https://www.azion.com/en/blog/what-is-http-caching-and-how-does-it-work/