Заголовки Cache-Control - игнорировать параметры запроса - PullRequest
0 голосов
/ 03 июня 2019

Я устанавливаю дистрибутив Cloudfront для веб-сайта моей компании. Мы хотели бы установить время кэширования, используя заголовки Cache-Control на стороне сервера (Node.Js с Express), например:

if (req.url.startsWith('/static')) {
   res.setHeader('Cache-Control', 'public,max-age=500');
}

Поначалу кажется, что это работает хорошо, но один из критериев кеширования - сбой, а именно игнорирование параметров строки запроса.

Например, запросы "domain.com/static/logo" и "domain.com/static/logo?foo=bar" должны интерпретироваться как один и тот же ресурс и кэшироваться как один.

Интересно, можно ли кэшировать ресурс, игнорируя параметры строки запроса , используя только заголовки Cache-Control.

Спасибо.

1 Ответ

1 голос
/ 03 июня 2019

Bydefault CloudFront действительно удаляет строку запроса, а также не учитывает ее в кеше, это стандартное поведение CloudFront, поэтому не существует нескольких копий кеша, основанных на другом параметре строки запроса. Если это поведение вам не кажется, возможно, для параметра «Строка запроса» установлено значение «Пересылать все» и кэширование на основе вызова в поведении кэша CloudFront.

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html

...