- Development
- Web
stale-while-revalidate 란? 매커니즘과 함께 알아보기
2022-10-13
stale-while-revalidate
정의
- stale : 오래된
- while : ~하는 동안
- revalidate : 1. 재확인하다 2. 갱신하다
rfc 문서에 따르면, HTTP 응답 헤더의
Cache-Control에 stale-while-revalidate가 있는 경우,캐시가 지정된 시간(초)까지 오래된 응답을 제공할 수 있다고 기술되어 있다.
Cache-Control 이란 무엇일까?
HTTP 응답 헤더에 포함된Cache-Control 헤더에 따라 리소스의 유효기간이 정해진다.Cache-Control: max-age=100 을 지정하게 되면 100초안에 해당 리소스를 또 요청하게 되었을 때,브라우저는 서버에 요청을 보내지 않고 디스크 또는 메모리에서 캐시를 읽어와 재사용하는 것이다.
stale-while-revalidate의 매커니즘
- 사용자가 요청
/image/flower을 보내어 리소스를 받는다. - 이 리소스의 응답 헤더에는
Cache-Control: max-age=600, stale-while-revalidate=60이 설정되어있다. - 조건에 따른 3가지의 응답
- 600초가 지나기 전 재요청
: 브라우저에서 캐시에 저장되어있는 리소스로 응답해준다. - 600초가 지나고 660초가 되기 전 재요청
: 브라우저에서 캐시에 저장되어있는 오래된 캐싱 리소스로 응답해준다. : 백그라운드에서 새로운 리소스를 요청해서 응답받아 오래된 캐싱 리소스를 최신 리소스로 캐시를 갱신한다. - 660초 이후의 재요청
: 브라우저 캐시의 데이터를 오래된 리소스라고 판단해 새로운 요청을 보낸다.
참고 문서
- TAG
- #front-end
- #cache
- #performance