저걸 넣기 전의 헤더를 볼 수 있었으면 좋았을 것 같습니다.
저 구 문은 모든 캐시컨트롤을 초기화하고 public, max-age=0만 넣겠다는 의미같은데요.
각 요소가 어떤 의미인지는 아래를 참고하시면 되겠습니다
이 모든 건 브라우저와 프락시 등에서의 컨텐츠 캐싱을 의미합니다. 그러니까 아파치가 HTTP로 서비스하는 영역에서의 캐싱을 의미하고요. PHP에서 맴캐시를 사용하는 등의 어플리케이션 단에서의 캐싱과는 별개로 보시면 됩니다.
추가로, 말씀하신 해결책은 상황에 따라 썩 좋진 않은데,
max-age가 0이라는 건 로컬에 한번 받아온 파일의 신선도를 매번 확인하겠다는 의미입니다. 결국 네트웍을 한번 건너갔다와야 하는거죠. 정적 컨텐츠 종류별로 구분하여 max-age를 설정하는게 좋습니다.
캐싱은 여러 레이어가 있는데요. 각 레이어가 얻고자하는 바가 다릅니다.
구체적인 내용은 HTTP 서버를 직접 구현하고 계신(^^) 갓영익님이 잘 설명해 주셨네요.
이러시면 제가 뭐 대단한 걸 만드시는 아십니다 ㅋ 저도 HTTP 공부 중입니다. 모바일이라 설명이 부족하지 않았나 싶었는데, 주원님이 정확하게 표현해주셨네요!
로컬서버에서 인터벤션 이미지 컴포넌트를 이용해서 이미지를 만들고 그 이미지의 응답 헤더에 etag를 보내서 브라우저에서 새로고침 했을때 응답코드 304와 if non match 값이 나오는것까지 실습을 했었습니다.
그리고 리눅스 가상서버 임대와 도메인을 구입한뒤 가상서버에서 홈페이지를 만들고 라라벨을 설치해서 겉으로는 잘 작동합니다. 하지만 인터벤션 컴포넌트로 이미지를 생성하고 etag를 응답헤더에 보내고 새로고침을 아무리해봐도 응답코드는 200으로만 뜨고 if non match 값은 뜨지를 않습니다.
이 문제로 열심히 구글링한 결과, 해결방법은 찾았습니다. 홈페이지의 아파치 설정에서 다음과 같은 구문을 넣었는데요
Header unset Cache-Control
Header append Cache-Control "public, max-age=0 "
해결한건 좋지만 우려되는것은 제가 지금 멤캐시를 쓰면서 모델쿼리캐싱도 하고 있는데 위의 구문이 어떤것을 뜻하는지 몰라서 캐싱이 잘 작동되는지 우려가 됩니다.
초보 개발자에게 도움이 될만한 정보 알려주시면 정말 감사합니다~!