Почему мои заголовки с истекшим сроком действия не заставляют мои файлы оставаться в кеше?

Я использую действительные заголовки с истечением срока действия и заголовки без кеширования для своих статических файлов, и они остаются в кеше, пока я продолжаю просматривать, но когда я закрываю свой браузер и снова использую его через некоторое время, я вижу, что статические файлы загружаются снова, даже если не обновляется с помощью ctrl (+ shift) + r

Я использую Firefox, размер кэша установлен на 250 МБ, и я не разрешаю ему удалять какие-либо личные или кешированные данные.

Заголовки: Accept-Ranges: байты Cache-Control: max-age = 29030400, public Content-Length: 142061 Content-Type: image / png Дата: Вт, 8 декабря 2009 г. 19:18:43 GMT Истекает: Вт, 9 ноября 2010 г. 19:18:43 GMT Последнее изменение: вс, 18 января 2009 г. 18:33:48 GMT Сервер: Apache / 2.2.14 (EL)


person EarthMind    schedule 08.12.2009    source источник
comment
Вы используете заголовок совместного кеширования? Что это? На самом деле, не видя трафика заголовков в обоих направлениях, трудно понять ваш вопрос.   -  person Jonathan Feinberg    schedule 08.12.2009
comment
Можете ли вы опубликовать, как выглядят ваши заголовки?   -  person Larry Hipp    schedule 08.12.2009


Ответы (1)


Какая версия Firefox? Отправляет ли сервер Etags для статических файлов? Вы можете просмотреть подробную информацию о кэше Firefox, перейдя по адресу about: cache и покопавшись. Это даст вам представление о том, что кэширует Firefox.

Обновление: после просмотра тегов заголовков кажется, что для значения max-age задана дата, которая находится в прошлом и переопределяет значение, установленное в Заголовок Expires. См. Определение протокола HTTP 1.1 по адресу: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3.

Если ответ включает в себя как заголовок Expires, так и директиву max-age, директива max-age переопределяет заголовок Expires, даже если заголовок Expires является более строгим. Это правило позволяет исходному серверу предоставлять для данного ответа более длительное время истечения срока действия для кеш-памяти HTTP / 1.1 (или более поздней версии), чем для кеш-памяти HTTP / 1.0. Это может быть полезно, если некоторые кеши HTTP / 1.0 неправильно вычисляют возраст или время истечения срока действия, возможно, из-за десинхронизации часов.

Вам нужно будет изменить заголовок Cache-Control, отправляемый сервером.

person kingsindian    schedule 08.12.2009
comment
При просмотре about: cache вы сможете увидеть, какие заголовки хранит firefox. - person Larry Hipp; 08.12.2009
comment
Всегда последняя версия, на данный момент 3.5.5. И никакие etags не отключены. - person EarthMind; 08.12.2009