Я немного озадачен отладкой обстоятельств кеширования в ландшафте Apache (веб-сервер) и Nginx (обратный прокси):
Я пытаюсь понять, правильно ли кешируются изображения или нет.
Заголовок изображения от devtools выглядит как:
Диагностика с помощью Webpagetest выглядит как:
Но devtools показывает, например, изображения будут кэшироваться, например (правый столбец):
Можно ли сказать что-то определенное, например «да, изображения правильно кешируются» или «нет, изображения не кешируются»? Или «недостаточно данных»?
Я посетил ваш веб-сайт, и скрипты кешируются браузером. Изображения тоже кешируются, но не браузером, а через javascript. Проверьте свои скрипты на загрузку изображений.
Вы не определяете никаких элементов управления кешем в своих заголовках ответов. В соответствии с RFC 7231, 4.3.1:
Ответ на запрос GET кэшируется; кеш МОЖЕТ использовать его для удовлетворения последующих запросов GET и HEAD, если иное не указано в
Cache-Control
поле заголовка (Раздел 5.2 [RFC7234]).
Вы могли бы использовать no-cache
чтобы указать, что браузер не должен кэшировать изображения или, например, max-age=2592000
чтобы указать, что их можно кэшировать на месяц. Есть также Expires
для указания даты / времени, после которых ответ считается устаревшим.
Поскольку нет специального контроля для кеша, а спецификация HTTP / 1.1 не определяет поведение кеширования по умолчанию, браузеры могут кэшировать ваши изображения по своему усмотрению. От Ильи Григорика HTTP-кеширование:
Все HTTP-запросы, которые делает браузер, сначала направляются в кеш браузера, чтобы проверить, существует ли действительный кэшированный ответ, который можно использовать для выполнения запроса. Если есть совпадение, ответ считывается из кеша, что устраняет как задержку в сети, так и затраты на передачу данных.