Поддерживает ли CloudCDN обслуживание кодировки Brotli? - PullRequest
0 голосов
/ 09 марта 2019

Моя компания думает о переходе с AWS на GCP. Одной из функций, которые мы хотим поддерживать в CloudCDN, является кодирование brotli. У нас есть технический пакет, который объединит наш javascript в 3 файла:

chunk.js
chunk.js.gz
chunk.js.br

Если CloudCDN получает заголовки клиентских запросов Accept-Encoding: br, gzip Достаточно ли CloudCDN достаточно для обслуживания файла Brotli? Кроме того, это будет кэшироваться? Если нет, есть ли другие способы достижения этого в CloudCDN.

AWS Cloudfront предлагает эту функцию только с использованием 2 lamdbas. Что я считаю плохой идеей.

1 Ответ

1 голос
/ 09 марта 2019

Да, Cloud CDN может кэшировать все 3 представления и обслуживать правильное представление на основе заголовка Accept-Encoding клиента, если ответ от вашего исходного сервера включает заголовок Vary: Accept-Encoding. Больше информации на https://cloud.google.com/cdn/docs/caching#vary_headers.

Обновление:

Я не знал, что вы используете ведро Cloud Storage в качестве источника. К сожалению, ни Cloud CDN, ни Cloud Storage не имеют функциональности, которая переписывает запросы клиентов для /chunk.js в /chunk.js.br в зависимости от того, поддерживает ли клиент Brotli. Я согласен, что это было бы полезно, поэтому я подал внутренний запрос на функцию.

Когда исходный сервер, такой как nginx, настроен на выбор подходящего файла, Cloud CDN необходимо возвращаться к исходному серверу только при отсутствии кеша. Поскольку ответы исходного сервера содержат заголовок Vary: Accept-Encoding, Cloud CDN может обслуживать попадания в кэш непосредственно с края, сравнивая заголовок запроса Accept-Encoding клиента со значением Accept-Encoding, указанным при кэшировании ответа. Клиенты, которые указывают Accept-Encoding: br, gzip, будут обслуживаться из одной записи кэша, а клиенты, которые указывают Accept-Encoding: gzip, будут обслуживаться из другой.

...