질문/조언질답게시판
Extra Form
PHP PHP 7.2
CMS GnuBoard

cache-control 헤더로 캐쉬를 조절하고 있습니다.

기존에는 js에 대해서 public, max-age=14400으로만 주고 있었습니다.

문서로 확인하기론 must-revalidate는 네트웍이 끊긴 상태든 특별한 경우에서만 의미가

있을뿐 must-revalidate가 없다고 해도 브라우저에 캐쉬한 파일이 expire되면

다시 읽어간다고 되어 있었기 때문입니다.

그런데 입력된 데이터들을 보다보니까 제가 새로 수정한 자바스크립트를 통과하지

않은 것으로 보이는 입력값들이 몇개 보이더군요. 배포한지 이틀은 지났기 때문에 

아직도 적용이 안되었을 것 같지는 않습니다만 그럼 그건 그거대로 이상합니다.

어떻게 옛날 자바스크립트가 아직도 사용자 브라우저에서 돌고있는지 이해가 안갑니다.

must-revalidate를 안했기 때문에 expire되었음에도 불구하고 그냥 옛날 자바스크립트가

계속 돌고 있는걸까요?

must-revalidate를 안해주면 14400초가 넘어가서 expire되도 해당 자바스크립트가

그냥 사용될 수 있는걸까요?

  • profile

    요즘은 또다른 변수도 감안해야 합니다. 웹페이지를 로딩하고 며칠이 지난 후에 폼을 제출하거나 AJAX 요청을 할 수도 있어요. 특별한 문제가 없으면 브라우저를 종료하지 않고 계속 켜놓는 사람도 많고, PC를 끄지 않고 절전모드만 왔다갔다하는 사람도 많고, 마지막으로 사용했을 때의 상태 그대로 다시 보여주는 모바일 브라우저도 많으니까요. 시간이 오래 지나서 로그인이 풀렸더라도 다른 탭에서 다시 로그인하면 그만이고요.

     

    Cache-Control, Expires, max-age, must-revalidate 모두 페이지 이동시 JS를 새로 불러올지 말지 결정하는 과정에만 관여하므로, 페이지 이동이 없다면 캐시 기간은 무의미합니다.

  • profile ?
    답변 감사합니다.. 정말 그럴 가능성도 있겠군요...