만약 클라이언트가 서버에 /image
로 요청했을 때 서버에서 강아지 이미지를 응답하는 서비스가 있다고 가정하자.
그러면 매번 /image
로 요청할 때마다 서버와 통신을 해야한다는 문제점이 발생한다.
그래서 나온 개념이 바로 Cache다.
먼저 처음에 접속했을 때는 서버와 통신을 해서 이미지를 받아낸 다음에 그 이미지를 브라우저 Cache 저장소에 저장한다.
이후에 같은 경로로 요청을 했을 때는 서버와 통신하는 것이 아니라 자신의 로컬 PC에 저장되어있는 이미지를 불러낸다.
하지만 이미지가 바뀔 수도 있으니 캐시 유효 시간을 설정해 주어야한다.
만약 캐시 유효 시간을 60초로 설정해 둔다고 치면 처음에 요청했을 때는 이미지를 받아내고 캐시 저장소에 저장한 다음에 앞으로 60초 동안 클라이언트가 같은 경로로 요청하면 로컬에서 이미지를 불러내는 방식이다.
60초가 지나면 다시 서버와 통신해서 이미지를 받아낸다.
하지만 오랜 기간 이미지가 바뀌지 않을 수 있으니 서버에서 어떠한 조치를 취해서 이를 조금 더 효율적으로 바꿀 수도 있다.
바로 304 Not Modified HTTP
상태 코드를 반환하는 것이다.
그렇게 되면 클라이언트는 자신의 계속 캐시 저장소에서 이미지를 불러서 화면에 표시한다.
Cache를 잘 사용하면 브라우저 로딩 속도를 매우 빠르게 만들 수 있다.