본문 바로가기
개발/브라우저와 네트워크

HTTP cache

by 안뇽! 2021. 9. 24.
반응형

https://velog.io/@bahar-j/%EC%BA%90%EC%8B%B1-%EC%A0%84%EB%9E%B5

mdn 캐시를 읽고 부분정리한 내용이다.

캐싱

 

캐싱은 리소스의 복사본을 저장하고 있다가 요청시 제공하는 기술이다.

 

->  캐싱을 통해 서버거 모든 클라이언트를 서비스 할 필요가 없어지고 서버의 부하가 완화된다.

->  캐시가 원래 서버보다 가까이 있으므로 리소스 회신 시간이 짧아지고 성능이 향상된다.  

 

주의 : 모든 리소스가 불변하지 않으므로 , 리소스가 변경된 이후에는 더이상 캐싱하지 않아야 한다.

 

 

Private browser caches (사설 브라우저 캐시)

단일 사용자를 위한 것이다. 브라우저 캐시는 사용자가 HTTP를 통해 다운로드한 모든 documents를 보관한다.

Private browser caches는 방문한 documents들을 뒤로가기, 앞으로가기, 저장 등을 위해 사용할 수 있게 해준다. 이로 인해 서버에 추가요청을 할 필요가 없어진다 . 

 

Shared proxy caches (공유 프록시 캐시)

한명 이상의 사용자를 위한 것. 재사용 되는 응답을 저장하는 캐시인데, 예를 들면 어느 홈페이지에서 많이 조회되는 리소스들은 여러번 재사용 되어 네트워크 트래픽과 대기시간을 줄여준다.

 

 

Freshness ( 유효성 )

캐시는 유한한 저장공간이기 때문에 주기적으로 내부 자료들이 갱신된다. 서버는 리소스 변경시 클라이언트, 캐시에 접근할 수 없기 때문에 리소스에 대한 만료시간을 알려주는데, 만료시간 이전에는 리소스가 유효(fresh)하고, 만료시간 이후의 리소스는 실효(stale) 된다.

실효(stale)된 리소스는 무시되지 않는다. 캐시가 실효(stale)된 리소스에 대한 요청을 받으면 리소스가 실제로 유효한지 아닌지를 확인하기 위해 If-None-Match 와 함께 요청을 전달한다. 만약 유효하다면 서버는 요청된 리소스 본문을 전송하지 않고 304 헤더를 리턴하여 대역폭을 전달한다.

반응형

'개발 > 브라우저와 네트워크' 카테고리의 다른 글

Location header  (0) 2021.10.23
CSR과 SSR  (0) 2021.09.29
URL:QueryString과 Params  (0) 2021.09.26
웹의 동작 원리  (0) 2021.09.25
웹서버와 앱서버의 차이  (0) 2021.09.09