HTTP Cache

Namlulu·2022년 2월 28일
0

WEB

목록 보기
1/1

배경

  1. 리소스가 큰 파일을 또 접속할 때 받아야 하나?
  2. 웹이 자꾸 느려지고 커지는데 캐싱이 필요하지 않을까?
  3. 캐싱된 자료가 옛날 자료이지 않을까?

방법

Cache-Control: no-store
//
Cache-Control: no-cache (max-age=0과 동일) // 서버에 물어보고 수정되면 캐싱
Cache-Control: must-revalidate // 만료된 것만 캐싱
Cache-Control: public, max-age=3600 // 공유캐시 or 사용자 브라우저, 유효기간
Age: 60 // 시간이 얼마나 지났는 지
//
Etag: W/"3bf2-wdj3VvN8/CvXVgafkI30/TyczHk" // 컨탠츠가 바꼈는 지 확인 
If-None-Match: W/"3bf2-wdj3VvN8/CvXVgafkI30/TyczHk" // Etag가 다를 경우에만 요청

AWS Cloudfront


1. CDN 서비스를 제공하는 AWS 서비스임
2. 캐시 서버로 활용 가능함
3. 캐시 서버를 만들어서 브라우저 - 캐시서버 - 웹서버 형태로 구성하여 요청 횟수를 줄이고 비용을 절감할 수 있음. 또한 외국에 있는 유저가 더 빨리 접근하도록 만들 수도 있음


캐싱타임을 설정할 수 있는데 중요한 것은 최소 TTL은 웹서버에서 셋업한 maxAge보다 작을 수 없다. 즉, 캐싱 시간이 20인데, 최소 TTL을 10으로 해도 그냥 20으로 적용된다. 반대로 캐싱 시간이 3인데 최소 TTL을 5로 설정하면 5로 설정이 된다. 복잡한데 잘 숙지를 하자. 반드시 쓸 날이 올거라 생각한다.

profile
Better then yesterday

0개의 댓글