본문 바로가기

server

cache

상황


만약에 어떤 똑같은 이미지를 계속 요청을 한다면 계속 네트워크에 요청해서 받아야 할까?

 

 

해결


HTTP/1.1 200 OK

content Type  image/jpeg

Cache-control: max-age=60.  (60초 동안 캐시에 유지시켜줌)

Content-Length=34012

 

브라우저 속도가 빨라짐 => 빠르게 데이터를 볼 수 있기 때문에 사용자 경험이 좋아짐

캐시 덕분에 네트워크 사용 x 

 

문제


if 캐시 시간 초과했을 때? 같은 이미지를 또 다운 받아야 하나?

 

해결


1.Hedaer에 추가

서버에서

Last-Modified : 2020 11월 10일 10:00(검증 값)

 

2.클라이언트에서 

 

if-modifed-since (만약 이후에 바꼈니?)

 

3.서버에서 

 

304 NOt found +헤더 메타 정보만 응답(body x)  => body 를 안보내줘도 되는 큰 장점

 

4. 클라이언트에서

그대로 케시에 있는거 씀

 

 

문제


날짜로만 조건 가능,초 단위 밑은 불가능

 

그럼 어떻게

 

 

해결


ETag(Entity Tag) -버전 관리 관점에서 

 

1.서버가. E-Tag 'aaaaa'

 

2.클라이언트가

 

 if-None-Match

 

3.서버가

매치가돼요 -> HTTP/1.1 304 NOT Modified

 

4.클라이언트가

 

cache 에서 쓸게

 

 

 

 

참고


캐시 무효화

1. Cache-Control: max-age  max-age

   

2. Cache-Control: no-cache 

    데이터는 캐시해도 되지만 origin 서버에 검증

 

3. Cache-Control:no-store 

   캐시에 저장하지 마

4. Cache-Control:  must-revaliate

  캐시가 만료 후에 최초 조회시 원 서버에 검증해야함

  만약 origin 으로 가는 네트워크가 단절된다면? 

 504 Gateway Timeout ex) 계좌이체를 했을 때 기존 잔고가 보여진다면 맨탈 깨지지?? 그니깐 아예 진행을 하지마~

 

 

 

 

 

참고2


1.웹  ---------- 프록시 캐시 서버 -------- 미국에 있는 원서버

                (미국까지 너무 오래 걸리니 한국 어딘가에)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'server' 카테고리의 다른 글

네트워크의 작동원리 (캡슐화 비캡슐화)  (0) 2021.11.29
브라우저 가동 원리  (0) 2021.11.18
HTTP HEADER  (0) 2021.11.03
http 상태코드  (0) 2021.11.03
회원관리 시스템  (0) 2021.11.03