인프런 커뮤니티 질문&답변

우끼기님의 프로필 이미지
우끼기

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

검증 헤더와 조건부 요청1

캐시 유효 기간 초과 전 데이터의 갱신시 동작

작성

·

471

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
캐시 유효 기간이 지나기 전에 데이터가 갱신될 가능성은 없나요?
개인적인 생각으로는 있을거 같고, 그렇다면 비록 유효 기간이 안지났다 하더라도 캐시를 갱신해줘야 할거 같은데, 이럴 때 동작은 어떻게 될까요?
본문 자료로는 캐시 만료 전에는 서버로 요청이 안가는데, 사실은 유효시간 만료 전이던 후이던 상관없이 매 요청마다 서버로도 갱신 검증 요청이 가는것일까요?

답변 1

0

안녕하세요, 우끼기 님. 공식 서포터즈 y2gcoder 입니다.

캐시의 유효 기간이 만료되지 않았음에도 불구하고 웹 서버에서 데이터가 변경될 수는 있습니다. 웹 서버에서 데이터가 변경될 때마다 캐시를 갱신해주는 것이 이상적일 수 있지만, HTTP 캐싱 메커니즘이 기본적으로 동작하는 방식은 아닙니다.

HTTP 캐싱은 클라이언트가 캐시 유효기간이 만료된 이후에만 웹 서버에게 데이터의 유효성을 검증하게 하도록 설계되어 있습니다. 즉, 캐시 유효기간이 지나지 않았다면 클라이언트는 웹 서버에게 요청을 보내지 않고 캐시된 데이터를 계속 사용하게 됩니다.

그러나 이것은 HTTP 표준이 제시하는 기본적인 동작 방식일 뿐, 실제로는 웹 서버와 클라이언트가 어떻게 구성되었는지, 어떤 캐시 전략을 사용하는지에 따라 다르게 동작할 수 있습니다. 예를 들어, 일부 웹 서버나 클라이언트는 캐시된 데이터가 변경될 가능성이 높은 경우, 캐시 유효기간이 만료되지 않았더라도 데이터의 유효성을 주기적으로 검증하도록 설정할 수 있습니다. 이는 Cache-Control 헤더의 max-age와 같은 지시자를 사용하여 조정할 수 있습니다.

그러므로, 매 요청마다 웹 서버로 갱신 검증 요청이 가는지 여부는 HTTP 캐시 전략에 따라 결정됩니다. 만약 웹 서버와 클라이언트가 캐시된 데이터의 유효성을 자주 검증하도록 설정되어 있다면, 캐시 유효기간이 만료되지 않았더라도 매 요청마다 웹 서버로 요청이 갈 수 있습니다.

감사합니다.

우끼기님의 프로필 이미지
우끼기

작성한 질문수

질문하기