HTTP заголовки - давайте внесем ясность

Антоний Казанский
На сайте с 12.04.2007
Offline
786
1282

Итак, господа, давайте коллективно разберемся, как корректно настроить ключевые http заголовки.

Речь идет о заголовках Date, Last-Modified и Expires

Первый - дата создания, второй - дата последнего изменения, третий - актуальность страницы.

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

У большинства сайтов значения Date и Last-Modified совпадают, с одной стороны, верно, ведь адреса на динамических CMS-ках динамические и фактически любое изменение пересоздает страницу, тут сразу встает вопрос надо ли хранить первоначальную дату создания страницы? Я думаю, надо, иначе в заголовке DATE пропадает всякий смысл.

Далее Expires - с ним еще интереснее. У большинства сайтов там вообще дата 1981 год.. судя по всему это какая-то служебная настройка которая потом вообще не изменяется и носит формальный характер. Но что тогда вписывать сюда? Дата вероятного изменения? Как определить дату актуальности web страницы?

Поделитесь опытом, как вы решаете эти вопросы?

√ SEO продвижение ► https://akazansky.ru - экспертный аудит сайтов ( https://akazansky.ru/audit-sajtov ), внедрение эффективных решений цифрового маркетинга. Разговоры о SEO и не только: культурно, вежливо, доброжелательно ► https://t.me/seotusovochka
izbushka
На сайте с 08.06.2007
Offline
110
#1

Заголовок Date показывает время на сервере, когда сервер его послал. К документу не имеет отношения.

Заголовок Last-Modified - дата последнего измения док-та.

Заголовок Expires - показывает, до когда можно кешировать документ. Если дата в прошлом - кешировать его не надо.

Антоний Казанский
На сайте с 12.04.2007
Offline
786
#2
izbushka:
Заголовок Date показывает время на сервере, когда сервер его послал. К документу не имеет отношения.
Заголовок Last-Modified - дата последнего измения док-та.
Заголовок Expires - показывает, до когда можно кешировать документ. Если дата в прошлом - кешировать его не надо.

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

Лучше если бы привели конкретный пример и на нем разъяснили.

Спасибо.

izbushka
На сайте с 08.06.2007
Offline
110
#3

Как писать - решать вам. Если вам не надо чтоб клиенты тягали часто какую-то статическую страницу - ставите Expired побольше. Теоретически, при идеальных условиях, клиент не будет проверять обновления, пока не настанет Expired дата. Но в реальности кеши стираются и обновления будут чаще.

Если нужно чтоб при каждом обращении страница тянулась заново - Expired в прошлом.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий