Ответ 1
Заголовки кэширования на стороне сервера должны выглядеть так:
Expires: Tue, 03 Jul 2001 06:00:00 GMT
Last-Modified: {now} GMT
Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate
Избегайте переписывания URL-адресов на клиенте, поскольку он загрязняет кеши и вызывает другие странные семантические проблемы. Кроме того:
-
Используйте один заголовок
Cache-Control
(см. rfc 2616), потому что поведение с несколькими записями undefined. Также специальные записи MSIE во втором управлении кешем в лучшем случае избыточно. -
no-store
относится к безопасности данных. (это означает, что не записывать это на диск - кэши по-прежнему позволяют хранить ответ в памяти). -
Pragma: no-cache
не имеет смысла в ответе сервера - это заголовок запроса, означающий, что любые кэши, получающие запрос, должны пересылать его в начало. -
Использование
Expires (http/1.0)
иcache-control (http/1.1)
не является избыточным, поскольку существуют прокси-серверы, которые говорят только на http/1.0 или будут понижать протокол. -
Технически последний измененный заголовок является избыточным в свете
no-cache
, но это хорошая идея оставить его там. -
Некоторые браузеры будут игнорировать последующие директивы в заголовке управления кешем после того, как они натолкнут тот, который они не распознают, поэтому сначала поставьте важный материал.