캐시 시간 초과

- 캐시 유효 시간이 초과해서 서버에 다시 요청하면 두 가지 상황이 발생 할 수 있다.

1. 서버에서 기존 데이터를 변경함

2. 서버에서 기존 데이터를 변경하지 않음

 

기존이랑 같은 데이터를 받는 것은 비효율적이라는 생각에서 나온 것이 검증헤더, 조건부 요청이다.


캐시 시간 초과

- 캐시 만료후에도 서버에서 데이터를 변경하지 않음

- 생각해보면 데이터를 전송하는 대신에 저장해 두었던 캐시를 재사용 할  수 있다.

- 단 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 수 있는 방법 필요.


검증 헤더 

처음 요청을 하면 서버에서 

Last-Modified 헤더에서 최종 수정된 시간을 알려준다.

 

그때 웹 브라우저에서 응답 결과를 캐시에 저장하고 

데이터의 최종 수정일을 기록한다.

 

캐시 시간이 초과되고 

캐시가 최종 수정일을 가지고 있다면

if-modified-since 헤더를 사용하여 최종 수정일을 포함하여 서버에 요청을 한다.

 

서버에서 요청을 받아보니

서버의 최종수정일을 보고 서버는 판단할 수 있게된다.

수정이 안되면 응답을 만들때 304 Not Modified를 보낸다.

변경된 점이 없다는 뜻이고 HTTP 바디가 없다.

1.1M -> 0.1M

수정된것이 없기 때문에 헤더만 보내게된다.


검증 헤더와 조건부 요청

검증 헤더 : Last-Modified

조건부 요청 : if-modified-since

- 캐시 유효 시간이 초과해도, 서버의 데이터가 갱신되지 않으면

  304 Not Modified + 헤더 메타 정보만 응답

- 클라이언트는 서버가 보낸 응답 헤더 정보롤 캐시의 메타 정보를 갱신

- 클라이언트는 캐시에 저장되어 있는 데이터 재활용

- 결과적으로 네트워크 다운로드가 발생하지만 용량이 적은 헤더 정보만 다운로드

 

 

 

'웹프로그래밍 > 웹 기본 지식' 카테고리의 다른 글

35. 캐시와 조건부 요청 헤더  (0) 2022.03.10
34. 검증 헤더와 조건부 요청2  (0) 2022.03.09
32. HTTP 헤더2 캐시와 조건부 요청  (0) 2022.03.09
31. 쿠키  (0) 2022.03.08
30. 인증  (0) 2022.01.12

+ Recent posts