Заголовки HTTP: достаточно ли контроля кэша, или мне все еще нужен Expires?

HTTP 1.1 представил новый класс заголовков, заголовки ответов управления кэшем, чтобы дать веб-издателям больше контроля над их содержимым и устранить ограничения Expires.

Expires-это своего рода боль из-за ее ограничений. Во-первых, поскольку существует абсолютная дата, часы на веб-сервере и кэш клиента должны быть синхронизированы; если у них есть другое представление о времени, ожидаемые результаты не будут достигнуты, и кэши могут ошибочно рассматривать несвежее содержание как свежее.

еще одна проблема с Expires заключается в том, что легко забыть, что вы установили некоторый контент для истечения срока действия в определенное время. Если вы не обновите истекшее время до его прохождения, каждый запрос вернется на ваш веб-сервер, увеличивая нагрузку и задержку.

Итак, нам нужно использовать Expires больше, или контроль кэша (в частности, max-age установлен на какое-то далекое будущее количество секунд) достаточно для моего статического контента? Я хотел бы избежать использования Истекает, но должен ли я установить оба?

1 ответов


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

почти все серверные платформы будут динамически вычислять заголовок Expires для вас.