Недавно я настроил дистрибутив Cloudfront со следующей политикой кэширования поведения:
- Настройки ТТЛ:
- Минимальный TTL (секунды): 0
- Максимальный TTL (секунд): 31536000
- Срок жизни по умолчанию (секунды): 0
- Ключи кэша:
- Заголовки - нет
- Файлы cookie - нет
- Строки запроса — все
К сожалению, страницы с заголовками ответа без кэширования продолжают кэшировать ответ с довольно низким уровнем параллелизма. Я использовал apachebench для запуска 100 запросов с параллелизмом 5 и получил следующее:
100 Cache-Control: без кеша, без хранения, с обязательной повторной проверкой, max-age=0
25 X-Cache: удар из облака
75 X-Cache: мисс из облака
Я также зафиксировал то, что должно быть уникальным заголовком ответа, который должен быть уникальным для каждого запроса/ответа (учитывая отсутствие заголовков запроса/файлов cookie), и это также показывает, что существуют повторяющиеся ответы Set-Cookie. Например, этот ответ возвращался 4 раза:
4 Set-Cookie: csrftoken=h2uU7TKHJ6AicHgOIaJTwC5qIXJN4Zwf; Домен=.mysite.com; expires = вторник, 17 января 2023 г., 15:10:37 по Гринвичу; Максимальный возраст=31449600; Путь=/
Я полагаю, что у меня есть способы обойти это, например поведение Cloudfront с более высоким приоритетом для установки политики отсутствия кэширования, однако это отнимает у сервера полномочия решать, следует ли динамически кэшировать ответ, и указывает, что Cloudfront не является соблюдая решение на стороне сервера.