이것은 일종의 이론적인 질문이고, 너무 광범위하거나 불분명할 수도 있다고 생각합니다.
Foobar는 인터넷을 통해 사용자에게 서비스를 제공하는 애플리케이션입니다. 사람들이 어디에 있든 서비스를 제공할 수 있도록 탄력성, 속도 등을 개선하기 위해 CDN을 사용합니다.
(클라이언트가 수신한) HTTP 헤더가 CDN에 의해 정의됩니까, 아니면 Foobar 애플리케이션에 의해 정의됩니까(CDN이 이를 전달할 것임을 의미함)?
둘 다 가능하다면 둘 중 하나의 장단점은 무엇입니까?
답변1
보편적인 대답은 없습니다. 헤더로 수행되는 작업은 요청, 특정 CDN, 특정 헤더 및 사이트 구성(백엔드/원본 서버가 응답에 포함하는 헤더와 CDN에서 사이트를 구성하는 방법 모두 포함)에 따라 달라집니다.
기본적으로 대부분의헤더가 제거됩니다백엔드/원본 서버에서 생성된 응답으로부터 (최소)헤더의 하위 집합이 설정됩니다.CDN이 보낸 응답에서.
일부(CDN 관련) 헤더~할 것 같다BE추가됨정책에 따라 또는 기본적으로 CDN을 통해. 예를 들어 Fastly는x-served-by:
머리글 기본적으로 CloudFront에서는 다음을 설정할 수 있습니다. Server-Timing:
머리글CDN 작업 디버깅을 용이하게 합니다.
일부 헤더~할 것 같다BE보존된백엔드 서버에서. 예를 들어 헤더 Cache-control:
는 Expires:
매우 일반적인 것입니다. 예를 들면 다음을 참조하세요.Cloud Front 문서
일부~할 것 같다BE조정됨특정 방식으로 CDN을 통해 예를 들어 Fastly가Date:
머리글원점으로 설정합니다.
CDN에서 헤더를 설정하는 이유
각 애플리케이션이 자체 작업을 수행하거나 아무것도 수행하지 않도록 허용하는 대신 CDN 수준에서 모든 사이트 및 애플리케이션에 대해 단일 정책을 설정합니다.
원본이 없는 경우 CDN에서 특정 헤더만 설정/추가하도록 선택할 수 있지만, 원본이 설정된 경우 원본의 값을 사용합니다.
기타 등등
원본에 설정된 헤더를 보존하는 이유
애플리케이션(개발자)은 애플리케이션에 필요한 것이 무엇인지 가장 잘 알고 있습니다.
기본 캐싱 정책을 a로 재정의하는 것은 Cache-Control: private, no-store
교과서의 예시입니다.
기타 등등