LINUX.ORG.RU

Last-Modified

 


0

1

У меня есть наколеночный скрипт который проверяет на лоре темы на предмет поступления сообщений, по пар-ру Last_Modified. Короче отслеживает. Попробовал его на других сайтах, и обнаружил, что, на некоторых, сервер модифицирует документы безо всякой надобности и скрипт не работает как надо. Собственно, х с ним, со скриптом, это игрушка, надо будет — перепишу по другому как-нибудь, а интересует именно, нах*я серверные приложения изменяют документ безо всякой надобности?

HTTP заголовок Last-Modified сообщает клиенту время последнего изменения страницы (объекта). Если клиент (браузер, поисковый робот) получил заголовок Last-Modified, то при следующем обращении к адресу, при условии, что страница (объект) есть в локальном кеше, он добавит вопрос If-Modified-Since (не изменилась ли страница после даты, полученной в Last-Modified). В свою очередь сервер, получив запрос If-Modified-Since должен сверить полученную временную метку с временем последнего изменения страницы и, если страница не изменялась ответить 304 Not Modified.

Если страница не изменилась, то сервер прекратит передачу данных после отправки заголовков с кодом 304 Not Modified, тело страницы, изображения и другие объекты передаваться не будут.

Для статических файлов такой концепт подходит, и с этим сам сервер справляется искаропки. А для динамических страниц сам разработчик должен позаботиться о правильном поведении его приложения. И если в контексте однотипного контента, форум, чат, RSS-фид - это еще не сложно. То отслеживание изменения большого количества разноплановых блоков на ОДНОЙ странице (последние новости, последние комментарии, еще какая-нибудь хрень) усложнит реализацию и дальнейшую поддержку приложения в разы. Поэтому все тупо кидают 200 OK каждый раз.

Чтобы показывать обновы, проще хранить хешсумму содержимого контента с предыдущего обращения к конкретному УРЛ, всеравно через равные промежутки ходим проверять. Ну и сравнивать - если старая и новая хешсуммы одинаковые, то и показывать нечего.

deep-purple ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.