#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 и посмотрите, соответствует ли поведение вашему браузеру.