ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 재요청시 캐쉬는 어떻게 작동할까?
    CS/네트워크 2020. 12. 27. 16:35

    브라우저에 요청에 따라 서버는 브라우저에게 ETag, Last-Modified, Expires, cache-Control 등등 Header 값을 전달하게 됩니다.

    이에 응답받은 브라우저는 Header값에 따라 캐쉬 정책을 수행하게 됩니다.

    ※ 캐쉬 정책 우선순위

    1. Last-Modified와 Etag가 같이 있다면, Etag가 우선순위가 높습니다.

    2.Expires와 Cache-Control의 경우는 Cache-Control의 설정된 정책이 우선순위가 높습니다. (캐쉬가 만료가 되지 않아도 재검증 이라던지)

     

    1. Last-Modified

    1) 브라우저는 최초 응답 시 받은 Last-Modified값을 if-Modified-Since라는 헤더에 포함 시켜 페이지를 서버에게 요청하게 됩니다.

    2) 서버는 요청 파일의 수정 시간을 if-Modified-Since값과 비교해 동일 하다면 304(Not Modified)으로 다르다면 새로운 Last-Modified 값을 response Header에 전송합니다.

     

    2.ETag

    1) 브라우저는 서버에 최초 응답 시 받은 ETag값을 if-none-Match라는 헤더에 포함시켜 페이지를 요청합니다.

    2) 서버는 요청 파일의 Etag값을 if-none-Match헤더 값과 비교하여 동일 하다면 304, 다르다면 새로운 Etag값을 응답 헤더에 전송하게 됩니다.

    3) 브라우저는 응답 코드가 304일 경우 캐쉬에 저장된 파일을 로드하고, 200이라면 파일을 새로 받은 후 Etag값을 갱신하게 됩니다.

     

    ※ Last-Modified와 ETag는 validation을 체크 하기 때문에 서버와 한번 통신이 발생하게 되며 request와 response에서 header와 cookcie등에 의한 데이터 전송(위 그림에 화살표 처럼 1KB)가 발생합니다.

     

    3.Expires

    1) 브라우저는 최초 응답 시 받은 expires 값을 비교해 기간 내라면 서버를 거치지 않고 캐쉬에서 페이지를 로드, 만약 기간이 만료되었다면 validation작업을 수행합니다.

     

    4.Cache-Control

    1) 브라우저는 최초 응답 시 받은 Cache-Control 중 max-age(초 단위)를 GMT(표준시간대)와 비교하여 기간 내라면 캐쉬에서 페이지를 로드하고 만료되었다면 validation 작업을 수행합니다.

     

    [REFERENCE]

    cyberx.tistory.com/9

     

    더 빠른 웹을 위하여 - 웹 캐쉬 (WEB CACHE)

    WEB-CACHE (TIME-SPACE TRADEOFF) 더 빠른 웹사이트를 위해 저희 개발자들은 눈물겨운 노력을 많이 합니다. - WebCache - Code Compressing - Image Optimizing - Image Spriting - Critical Rendering Path - We..

    cyberx.tistory.com

     

    'CS > 네트워크' 카테고리의 다른 글

    캐시에 대해서  (0) 2020.12.11
Designed by Tistory.