복습을 위한

검증헤더와 조건부요청1 본문

http헤더

검증헤더와 조건부요청1

ho042479 2024. 1. 19. 00:25

캐시유효시간이 초과해서 서버에 다시 요청했을 때 서버의 데이터가 바뀐 상태일 수도 있고 아닌 상태일 수도 있다. 바뀌었다면 당연히 다시 새로운데이터를 받아야겠지만 안바뀌었는데 굳이 다시 다운받아야하나..??유효시간이 지났다고해도??

 

재사용할 수가 있다!! 단 당연한말이지만 클라이언트에있는 데이터와 서버데이터가 같아야하고 그것을 증명해야만한다!!!

그래서 검증헤더라는 것이 들어간다!

 

다시 처음으로 돌아가서 별사진 데이터를 요청한다. 이번에는 서버가 캐시정보와 함께 last modified라는 정보도 함께 응답해준다. 이건 해당 데이터가 마지막에 수정된 시간이다. 최종수정시간이다. 

클라이언트는 응답결과를 캐시에 저장하고 60초가 유효하다는 것도 인지하고 있다. 여기서 데이터 최종수정시간정보를 더 더해준다.  

자 두번째 요청 때 60초가 지났다고 해보자. 

웹브라우져가 서버에 다시 요청을 한다. 이번에는 데이터 최종 수정일 정보와 함께 말이다. 이것이 조건부 요청이다. if를 통해 바뀐지 안바뀐지 묻는 느낌이다. 

그럼 서버에서는 요청을 확인한다. 서버는 요청메세지의 데이터 최종 수정일과 본인의 가지고있는 데이터 최종수정일 정보를 비교해 데이터가 수정여부를 검증할 수가 있는 것이다.!!!  보니깐 똑같다면??? 

그럼 서버는 응답메세지에 304not modifeid를 보낸다. '니가 요청했는데 나 변경된게 없어!!' 하며 말이다. 여기서 중요한 점은 http body가 이번에는 없다!!!!!!!!! 수정된게 없으니 이번에는 용량이 큰 바디정보를 빼고 헤더정보만 보내는 것이다. 

 

그럼 클라이언트는 어 304코드네? 데이터안바뀌었나보네 나 그냥 써도되겠다! 하고 캐시컨트롤 값을 갱신하고 다시 캐시에서 불러와서 데이터를 쓰게 된다. 

물론 헤더정보때문에 네트워크 다운로드는 발생하지만 용량이 적은 헤더 정보만 다운로드 받으면 된다. 대부분 웹브라우져는 이 메커니즘을 다 사용하고 있다! 

 

 

 

출처

https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&unitId=61384&tab=curriculum

'http헤더' 카테고리의 다른 글

캐시와 조건부 요청 헤더 정리  (0) 2024.01.20
검증 헤더와 조건부 요청2  (1) 2024.01.19
캐시 기본 동작  (0) 2024.01.17
쿠키  (0) 2024.01.17
특별한 정보, 인증  (1) 2024.01.16