honey_pot
CloudFlare - 캐시 컨트롤 본문
https://www.cloudflare.com/learning/cdn/glossary/what-is-cache-control/
Cache-Control
- 브라우저 캐싱 동작을 지시하는 HTTP 헤더
- 사용자가 동일한 웹사이트를 다시 방문할 때 캐시 제어는 해당 리소스를 로컬 캐시에서 로드할지, 아니면 브라우저가 서버에 새로운 리소스를 요청해야 하는지 여부를 결정하는 규칙을 설정
HTTP header
- HTTP(하이퍼텍스트 전송 프로토콜)
- 클라이언트에서 서버로 보내는 요청과 서버에서 클라이언트로 보내는 응답으로 구성
- HTTP 요청과 응답은 각각 헤더라고 하는 일련의 키-값 쌍
Request Header 구성 요소
- 요청 중인 리소스에 대한 정보
- 클라이언트가 사용 중인 브라우저
- 클라이언트가 허용하는 데이터 형식
Response header 구성 요소
- 요청이 성공적으로 처리되었는지 여부
- 응답 본문에 포함된 리소스의 언어 및 형식
Cache-Control header 캐시 제어 헤더
- HTTP 요청과 응답 모두에 나타남
- 콜론 왼쪽 키= '캐시 제어'
- 콜론 오른쪽 = 값 (지시어 directives)
cache-control directives 캐시 제어 지시어
- 리소스를 캐시할 수 있는 사람과 리소스를 업데이트해야 하기 전에 캐시할 수 있는 기간을 지정
cache-control: private
- 클라이언트만 캐시 가능
- 사용자의 개인 정보를 표시하는 웹사이트와 같이 비공개 데이터가 포함된 리소스인 경우
cache-control: no-store
- 어디에도 캐시 불가
- 사용자가 이 데이터를 요청할 때마다 원본 서버에 새 복사본을 요청
- 은행 계좌 정보와 같이 매우 민감한 데이터가 포함된 리소스에 사용
cache-control: no-cache
- 요청된 리소스의 캐시된 버전을 업데이트된 버전이 있는지 먼저 확인하지 않고는 사용할 수 없음
- ETag : 리소스가 요청된 시점의 리소스 버전에 고유한 토큰을 포함하는 또 다른 HTTP 헤더 👉 업데이트될 때마다 원본 서버에서 변경
- 클라이언트는 항상 원본 서버에 연결하여 캐시된 리소스의 ETag를 서버의 ETag와 비교
- ETag가 동일하면 캐시된 리소스가 사용자에게 제공
- 동일하지 않은 경우 리소스가 업데이트되었음을 의미 👉 클라이언트는 사용자에게 제공할 새 버전을 다운로드
- 사용자는 항상 해당 리소스의 최신 버전을 사용
cache-control: max-age
- 다운로드한 후 캐시에서 제공할 수 있는 시간, 즉 리소스를 몇 초 동안 사용할 수 있는지를 지정
- 예를 들어 최대 수명을 1800으로 설정하면 리소스가 서버에서 처음 요청된 후 1,800초(30분) 동안 사용자는 이후 요청 시 해당 리소스의 캐시된 버전을 제공받고, 30분이 지난 후 사용자가 리소스를 다시 요청하면 클라이언트는 원본 서버에 새 복사본을 요청
cache-control: s-maxage
- 개별 클라이언트에 대한 'max-age' 지시어를 재정의(override)
- CDN과 같은 공유 캐시를 위한 것으로, 공유 캐시가 캐시에서 리소스를 계속 제공할 수 있는 기간을 지정
'네트워크' 카테고리의 다른 글
CloudFlare - 역방향 프록시 (0) | 2023.06.14 |
---|---|
CloudFlare - 엣지 서버 (0) | 2023.06.14 |
CloudFlare - 정적 캐싱 vs 동적 캐싱 (0) | 2023.06.13 |
CloudFlare - 캐싱 (0) | 2023.06.13 |
CloudFlare - CDN의 지표 3. 캐시 적중률 (0) | 2023.06.13 |
Comments