jinsusong / CS-Study

CS
3 stars 5 forks source link

웹 캐시 #10

Open jungmiin opened 1 year ago

jungmiin commented 1 year ago

웹 캐시?

웹 캐시(영어: web cache)  또는 HTTP 캐시(HTTP cache)는 서버 지연을 줄이기 위해 웹 페이지, 이미지, 기타 유형의 웹 멀티미디어 등의 웹 문서들을 임시 저장하기 위한 정보기술이다. 웹 캐시 시스템은 이를 통과하는 문서들의 사본을 저장하며 이후 요청들은 특정 조건을 충족하는 경우 캐시화가 가능하다. 웹 캐시 시스템은 일종의 어플라이언스나 컴퓨터 프로그램을 의미할 수 있다. 동일한 서버에 다시 접근할 때에는 근처에 있는 프록시 서버의 웹 캐시에 저장된 정보를 불러오므로 더 빠른 열람이 가능하다.

주로 정적 자산을 캐싱한다. (이미지, HTML, CSS, JavaScript 등이 있다.)

5Untitled

해당 버튼을 통해 cache를 disable 할 수 있다.

6Untitled

7Untitled

웹 캐시는 어디에 적용하느냐에 따라 나뉜다.

Browser Caches

브라우저, 또는 HTTP요청을 하는 Client의 Application에 의해 내부 디스크에 캐시가 저장된다.

브라우저의 Back 버튼, 이미 방문한 페이지를 재방문 하는 경우 효과가 극대화

Proxy Caches

위와 동일한 원리에서 동작하지만 Client나 Server가 아니라 네트워크 상에서 동작한다.

대기시간과 트래픽 감소 등을 수행하기 위해 큰 회사의 방화벽에 설치된다…

Gateway Caches

이거는 안 찾아봄...

브라우저가 캐시를 컨트롤하는 방법

HTTP Headers!!

헤더값의 변수를 이용해 파일의 변경여부, 혹은 캐쉬의 만료여부를 체크한다.

지시자 | 설명 -- | -- max-age=[sec] | 요청 시간으로부터의 상대적 시간을 표시 no-cache | 응답 데이터를 캐쉬하고는 있지만, 먼저 서버에 요청해서 유효성 검사를 하도록 강제한다 no-store | 어떤 상황에서도 response 데이터를 저장하지 않는다 private | 사용자의 부라우저에서만 캐시하도록 설정한다 must-revalidate | 간혹 네트워크가 끊기면 max-age가 넘어가더라도 캐시된 데이터를 보여주는 경우가 있는데, 그러면 잘못된 결과가 예상 될수 있는 큰 사이트들은 이 값을 넣어줌으로써 해당 행위를 방지한다

8Untitled

위의 흐름대로 캐시를 컨트롤 하게 된다.

anuu0916 commented 1 year ago

Gateway Caches

SW-H commented 1 year ago

+) 렌더링 과정 추가 설명 https://jae04099.tistory.com/entry/WEB-쉽게-알아보는-웹-브라우저-렌더링