HTTP-заголовки настраиваются CDN или приложением?

HTTP-заголовки настраиваются CDN или приложением?

Это своего рода теоретический вопрос, и я полагаю, что он может быть слишком общим или неясным.

Foobar — это приложение, обслуживающее пользователей по всему Интернету. Оно использует CDN для улучшения своей устойчивости, скорости и т. д., чтобы обслуживать людей, где бы они ни находились.

  • Определяются ли заголовки HTTP (полученные клиентом) CDN или приложением Foobar (подразумевая, что CDN будет их пересылать)?

  • Если оба варианта возможны, каковы их плюсы и минусы?

решение1

Универсального ответа не существует. Что делать с заголовками/для заголовков, зависит как от запроса, так и от конкретной CDN, конкретного заголовка и конфигурации вашего сайта (включая как заголовки, которые ваш внутренний/исходный сервер включает в ответ, и как вы настраиваете свой сайт в CDN).

Предположим, что по умолчанию большинствозаголовки будут удаленыиз ответа, сгенерированного внутренним/исходным сервером, и только (минимальный)Будет установлено подмножество заголовковв ответе, отправленном CDN.

Некоторые (специфичные для CDN) заголовкимощьбытьдобавленCDN в соответствии с вашими политиками или по умолчанию. Например, Fastly добавляетx-served-by:заголовок по умолчанию, а CloudFront позволяет вам устанавливать и опционально Server-Timing:заголовокдля облегчения отладки операций CDN.

Некоторые заголовкимощьбытьсохранилисьс вашего внутреннего сервера. Например, Cache-control:и Expires:заголовки довольно распространены. Смотрите, например:Документы Cloud Front

НекоторыймощьбытьскорректированоCDN определенным образом. Например, посмотрите, как Fastly справляется сDate:заголовокустановлен в исходном положении.


Причины установки заголовков в CDN

Вместо того чтобы позволить каждому приложению делать то, что ему нужно, или не делать ничего, вы устанавливаете единую политику для всех своих сайтов и приложений на уровне CDN.

Хорошие примеры:КОРСиHSTSполитики.

Вы можете задать/добавить определенный заголовок только в CDN, если источник его не установил, но использовать значение из источника, если оно там установлено.

и т.д. и т.п.


Причины сохранения заголовков, установленных в исходном состоянии

Приложение (разработчик) лучше всех знает, что нужно приложению.

Переопределение политики кэширования по умолчанию с помощью Cache-Control: private, no-store— это пример из учебника, который приходит на ум.

и т.д. и т.п.

Связанный контент