상황
만약에 어떤 똑같은 이미지를 계속 요청을 한다면 계속 네트워크에 요청해서 받아야 할까?
해결
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 |