Почему два запроса с разных клиентов из одного и того же компьютерного кэша пропускаются в cloudfront?

#curl #amazon-cloudfront #http-caching

#завиток #amazon-cloudfront #http-кэширование

Вопрос:

Мой веб-сайт использует cloudfront для своих изображений. Если я загружаю веб-страницу в браузере, а затем использую curl для запроса изображения на этой странице, то запрос с помощью curl является пропуском кэша. Последующий запрос с помощью curl — это попадание в кэш.

пример: выполните это дважды:

 curl --verbose https://d1hvwudqvjuczb.cloudfront.net/assets/landing/splash_dickenko-2199af423f275d0784c1813cbaab5645.jpg`
 

В первый раз X-Cache это будет «Промах с облачного фронта», во второй раз это будет «Удар с облачного фронта».

Таким образом, похоже, что cloudfront использует какой-то аспект запроса, чтобы решить, следует ли повторно извлекать изображение или нет.

Какими могут быть эти критерии?

Комментарии:

1. Убедитесь, что вы действительно видите то, что, как вам кажется, видите, и что это постоянно повторяется. Облачный фронт — это не что-то единое в одном месте, поэтому не за каждым промахом последует попадание. Может быть, это печенье? Включите вход в систему в Cloudfront.

2. На этом домене нет файлов cookie. Поведение, которое я наблюдаю, повторяется. Я бы предположил, что, поскольку целью CDN является отсутствие необходимости повторной выборки контента для пользователей в одной и той же географической области, для меня разумно предположить, что 2 запроса с одного и того же компьютера не приведут к повторной выборке в подавляющем большинстве случаев.

Ответ №1:

Причина, по которой вы видите это поведение, заключается в том, что ваши запросы разные. Чтобы дать вам некоторую информацию, кэш Cloudfront изменяется в зависимости от заголовка http accept-encoding. В вашем первом примере в вашем браузере вы отправляете значение gzip. В вашем примере curl по умолчанию это не так. Поэтому Cloudfront видит, что эти объекты уникальны.

Попробуйте передать флаг —compressed в curl и посмотрите, соответствует ли поведение вашему браузеру.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html#CompressedCustomOrigin