HTTP 헤더는 CDN 또는 애플리케이션에 의해 구성됩니까?

HTTP 헤더는 CDN 또는 애플리케이션에 의해 구성됩니까?

이것은 일종의 이론적인 질문이고, 너무 광범위하거나 불분명할 수도 있다고 생각합니다.

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 수준에서 모든 사이트 및 애플리케이션에 대해 단일 정책을 설정합니다.

좋은 예는 다음과 같습니다코르스그리고HSTS정책.

원본이 없는 경우 CDN에서 특정 헤더만 설정/추가하도록 선택할 수 있지만, 원본이 설정된 경우 원본의 값을 사용합니다.

기타 등등


원본에 설정된 헤더를 보존하는 이유

애플리케이션(개발자)은 애플리케이션에 필요한 것이 무엇인지 가장 잘 알고 있습니다.

기본 캐싱 정책을 a로 재정의하는 것은 Cache-Control: private, no-store교과서의 예시입니다.

기타 등등

관련 정보