캐싱은 어떤 것을 나중에 유용하기 위해 저장한다는 뜻으로, 리소스 파일들의 임시 저장소다.
같은 웹 페이지에 접속할 때 사용자의 PC에서 로드하므로 서버를 거치지 않아도 된다.
UI적 자원들을 컴퓨터 > 캐시라는 저장 공간을 따로 두고, 그 곳에 저장해 두는 것이다.
즉, 위 자산들을 저장해서 특정 위치에 복사본을 저장하고, 이후 동일한 URL의 Request 요청을 다시 내려받지 않고, 내부에 저장한 파일을 재사용해서 더 빠르게 서비스를 제공하기 위한 목적으로 캐싱을 한다.
웹 캐시는 네트워크 트래픽과 레이턴시를 줄여줌으로서 리소스를 보여주는데에 필요한 시간을 줄여준다.
캐싱은 주어진 리소스의 복사본을 저장하고 있다가, 요청시에 그 자원을 제공하는 기술이다.
웹 캐시가 자신의 저장소 내에 요청된 리소스(자원)를 가지고 있다면, 요청을 서버로부터 자원을 다시 다운로드 하는 대신, 리소스의 복사본을 반환한다.
리소스를 회신하는데에 적은 시간이 든다. (브라우저 속도 향상)
웹 사이트에서 캐싱은 높은 성능을 달성하는 데에 주요한 요소이다.
반면, 모든 리소스가 영원히 변하지 않는 것은 아니므로, 리소스가 변하기 전까지만 캐싱하고 변한 이후에는 더 이상 캐싱하지 않는게 중요하다.
유저가 하드디스크에 최신 버전 파일이 캐시되어있지 않으면, 여러 문제가 발생할 수 있다.
포멧이 안맞으면 JS가 깨지고, 올바르지 않은 이미지로 보여질 수 있다.
대부분의 경우 서버가 어떤 자산이 업데이트가 되고, 유저 기기에서 교체되어야 하는지 알고 있기 때문에 문제가 되지 않는다. 만약 일부 유저가 홈페이지가 깨졌다고 문제를 제기하면 브라우저 캐시를 삭제해보라고 권하면 된다.
대부분의 브라우저는 캐시 제거할 수 있는 버튼이 있다.
브라우저 / http 요청을 하는 클라이언트 웹 애플리케이션에 의해 내부 디스크에 저장
캐시된 리소스를 공유하지 않는 한, 개인에 한정된 캐시이다.
브라우저의 이전 버튼 또는 이미 방문한 페이지를 재방문 하는 경우 빠르게 로드된다.
한 명 이상의 사용자가 재사용 할 수 있도록 응답을 저장하는 캐시
프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게해주는 컴퓨터나 애플리케이션을 가리키는데, 이 프록시 서버에 요청된 내용들을 캐시를 이용해서 저장한다.
캐시 안에 있는 정보를 요구하는 요청에 대해서 원격 서버에 접속해서 데이터를 가져올 필요가 없다.
네트워크 대역을 효율적으로 사용하고, 조직 내에 특정 웹 사이트에 대한 엑세스 제한, 엑세스 로그를 획득하는 것이 목적
현재 cache했을 때, 가지고 있는 데이터가 최신인지 확인하여 새로운 전송이 필요한지 확인하는 것으로, 일반적으로 http 캐시들은 get
에 대한 응답만을 캐싱하고, 다른 메스드들은 거의 캐싱하지 않는다.
HTTP/1.1에서 추가된 기능으로, 여러 캐싱 정책을 제공하고 있다.
Cache-Control: max-age=n
Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: must-revalidate
Age 헤더는 캐시 응답 시 나타나는데, max-age 시간 내에서 얼마나 흘렀는지 초 단위로 알려준다.max-age=3600
인 경우, 1분이 지나면 Age: 60이 캐시 응답 헤더에 포함된다.
Expires: Thue, 26 Jul 2018 07:28:00 GMT
Cache-Control과 별개로 응답에 Expires라는 헤더를 줄 수도 있다.
응답 컨텐츠가 언제 만료되었는지 나타내며, Cache-Control의 max-age가 있는 경우 이 헤더는 무시된다.