캐시는 데이터나 값을 미리 복사해 놓는 임시 장소를 의미합니다. 주로 접근 시간이 더 짧은 저장 공간에 데이터를 저장해두고, 빠르게 데이터에 접근할 수 있도록 도와줍니다. 캐시의 목적은 데이터를 원래의 저장 위치에서 직접 가져오는 것보다 더 빠르게 접근하여 시스템의 성능을 향상시키는 것입니다.
웹에서의 캐시는 주로 다음 두 가지 유형으로 나뉩니다:
브라우저 캐시 (Client-side cache):
사용자의 웹 브라우저에 저장되는 캐시입니다.
사용자가 웹사이트를 방문할 때, 웹 페이지의 요소들 (이미지, 스타일시트, 자바스크립트 파일 등)이 사용자의 브라우저에 저장됩니다.
사용자가 같은 웹 페이지를 다시 방문하면, 브라우저는 캐시된 데이터를 사용하여 페이지 로딩 시간을 줄입니다.
프록시 캐시 (Proxy cache or Gateway cache):
네트워크 상의 중간 지점, 예를 들면 ISP (인터넷 서비스 제공자)에 위치하는 캐시입니다.
여러 사용자가 동일한 웹 페이지나 리소스를 요청할 때, 프록시 캐시는 한 번만 원격 서버로부터 데이터를 가져온 후, 이후의 요청에 대해서는 캐시된 데이터를 제공합니다.
클라이언트의 요청이 정확히 어디서 캐시를 가져오는지는 다음과 같은 과정을 통해 결정됩니다:
사용자가 웹 페이지를 요청하면, 먼저 브라우저 캐시를 확인합니다.
브라우저 캐시에 해당 데이터가 있고, 유효하다면 (만료되지 않았다면) 브라우저 캐시에서 데이터를 로드합니다.
브라우저 캐시에 데이터가 없거나 만료된 경우, 프록시 캐시를 확인합니다.
프록시 캐시에 유효한 데이터가 있다면, 프록시 캐시에서 데이터를 가져옵니다.
프록시 캐시에도 데이터가 없거나 만료된 경우, 원격 서버에 직접 요청을 보내 데이터를 가져옵니다.
이러한 과정을 통해, 캐시는 웹의 성능을 향상시키고, 서버의 부하를 줄이며, 네트워크 트래픽을 감소시킵니다.