[최적화] 캐시 관리

hzn·2022년 12월 5일
0

etc

목록 보기
8/13
post-thumbnail

캐시 사용하기

  • 캐시(Cache) : 다운로드 받은 데이터나 값을 미리 복사해 놓는 임시 장소.
  • 데이터에 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용
  • 응답 헤더에 Cache-Control 작성

캐시를 사용하지 않을 경우

  • 동일한 이미지를 계속 다시 받아야 함. 네트워크 리소스 낭비

캐시를 사용한 경우

  • 서버에서 응답 보내줄 때 이미지 파일과 함께 헤더에 Cache-Control을 작성해서 보내줌
    (Cache-Control: max-age=60 : 파일이 60초 동안 유효)
  • 두 번째 요청부터는 캐시를 우선 조회.
    유효 시간 내라면 캐시에서 해당하는 데이터를 가져와서 사용
  • 유효 시간이 지났다면 서버에서 다시 이미지를 받아오게 된다.

브라우저 캐시 사용 효과

  • 캐시가 유효한 시간 동안 네트워크 리소스를 아낄 수 있음
  • 파일을 다시 받아올 필요가 없기 때문에 브라우저 로딩이 빨라짐
  • 로딩이 빨라진 만큼 빠른 사용자 경험 제공 가능

캐시 검증 헤더와 조건부 요청 헤더

캐시 유효 시간은 지났지만, 서버에서 다시 받아야 하는 파일이 캐시에 저장되어 있는 파일과 동일한 경우

👉🏽 서버의 파일과 캐시의 파일이 동일한지 확인해서 재사용
(HTTP 헤더 중 캐시 검증헤더조건부 요청 헤더 이용)

캐시 검증 헤더

  • 캐시에 저장된 데이터와 서버의 데이터가 동일한지 확인하기 위한 정보를 담은 응답 헤더

Last-Modified

  • 데이터가 마지막으로 수정된 시점을 의미하는 응답 헤더
  • 조건부 요청 헤더인 If-Modified-Since와 묶어서 사용

Etag

  • 데이터의 버전을 의미하는 응답 헤더
  • 조건부 요청 헤더인 If-None-Matxh와 묶어서 사용

조건부 요청 헤더

  • 캐시의 데이터와 서버의 데이터가 동일하다면 재사용하게 해달라는 의미의 요청 헤더

If-Modified-Since

  • 캐시된 리소스의 Last-Modified 값 이후에 서버 리소스가 수정되었는지 확인하고, 수정되지 않았다면 캐시된 리소스를 사용

If-None-Match

  • 캐시된 리소스의 ETag 값과 현재 서버 리소스의 ETag 값이 같은지 확인하고, 같으면 캐시된 리소스를 사용

요청-응답 보내기

  • Last-Modified(응답 헤더)If-Modified-Since(요청 헤더),
    Etag(응답 헤더)If-None-Match(요청 헤더) 두 쌍의 헤더를 동시에 사용.
  • 한 쌍만 사용할 수도 있지만, 둘 중 하나만 사용했다가 매칭되는 응답 헤더가 없는 경우 재사용 할 수 있는 경우에도 리소스를 다시 받아와야 하는 경우가 생길 수 있다.

Last-Modified 와 If-Modified-Since

1) 첫 요청 보낸 후 응답Last-Modified 헤더에 담겨서 오는 파일이 마지막으로 수정된 시간이 캐시에 저장됨.

2) 캐시 유효 시간(60초)을 초과한 후 두 번째 요청.
캐시에 담겨있는 파일 최종 수정시간 데이터If-Modified-Since 요청 헤더에 담아 보냄.
(동일한 파일이라면 값이 동일해야 함)

3) 동일한 데이터임이 검증됐다면 서버는 '데이터가 수정되지 않았음'을 의미하는304 Not Modified라는 응답을 보내준다.
캐시 데이터 유효 시간이 갱신되면서 해당 데이터를 재사용 할 수 있게 된다.

Etag와 If-None-Match

1) 첫 요청 보낸 후 응답Etag 헤더에 담겨서 오는 파일의 버전이 캐시에 저장됨.

2) 캐시 유효 시간(60초)을 초과한 후 두 번째 요청.
캐시에 담겨있는 파일 버전If-None-Match 요청 헤더에 담아 보냄.
(동일한 버전이라면 값이 동일해야 함)

3) 동일한 데이터임이 검증됐다면 서버는 '데이터가 수정되지 않았음'을 의미하는304 Not Modified라는 응답을 보내준다.
캐시 데이터 유효 시간이 갱신되면서 해당 데이터를 재사용 할 수 있게 된다.

0개의 댓글