Я смотрю журналы в инструментах разработчика Chrome. Я также могу увидеть это с помощью curl. Вот результат curl
Content-Type: application/javascript
Date: Sat, 24 Sep 2016 01:16:37 GMT
ETag: "a02d00a09b8139b0919567e4c92cc752"
Last-Modified: Fri, 23 Sep 2016 22:57:56 GMT
Server: nginx
x-amz-id-2: L3gfIQNLcBLUZ2gtVWDiIdN9xWWiV2H6K6zjjE9JSHVMnDXI6+uLuhqptqQRCZLNFoMmWg3mIQs=
x-amz-request-id: E38062B3D506DF06
Content-Length: 1940494
Age: 7574
Warning: 110 squid/3.5.20 "Response is stale"
X-Cache: HIT from 0.0.0.0
X-Cache-Lookup: HIT from 0.0.0.0:3128
Via: 1.1 0.0.0.0 (squid/3.5.20)
Connection: keep-alive
Почему кальмар говорит Warning: 110 squid/3.5.20 "Response is stale"
?
Squid добавляет этот заголовок, потому что это требуется спецификациями HTTP-кеширования. https://tools.ietf.org/html/rfc7234#section-5.5.0:
Поле заголовка «Предупреждение» используется для передачи дополнительной информации о статусе или преобразовании сообщения, которая может не отражаться в коде статуса. Эта информация обычно используется для предупреждения о возможной некорректности, вызванной операциями кэширования или преобразованиями, применяемыми к полезной нагрузке сообщения.
а в разделе 5.5.1 просто говорится, что кеши требуются (ДОЛЖНЫ) для отправки предупреждения 110, когда HIT-объекты устарели. «ДОЛЖНЫ» требования RFC - это те, которые необходимо соблюдать, если только не существует конкретной, очень веской и задокументированной причины не делать этого. Предупреждения информативны, поэтому нет веских причин их избегать.
Устаревший контент - это не только старый, но и прошедший момент, когда кеш должен был запросить сервер, есть ли более новая копия (повторная проверка). Итак, предупреждение говорит о том, что если вы на самом деле было обновил серверную копию, кеш все равно доставил бы старую версию. Это потенциально очень серьезный сбой в поведении HTTP-приложения, особенно когда задействован .js.
Эта ситуация обычно возникает из-за того, что администратор настраивает какой-либо параметр refresh_pattern, который нарушает требования HTTP для повторной проверки. Например, параметры ignore- * заставляют объект обслуживаться как есть из кеша вместо повторной проверки.
Поскольку этот ответ не имеет заголовка Cache-Control, значения refresh_pattern min / pct / max - это то, что Squid использует для вычисления возраста устаревания. Вы можете рассмотреть возможность увеличения этих значений, чтобы увеличить продолжительность жизни объектов в режиме HIT, вместо того, чтобы игнорировать / нарушать требования HTTP.