Суть, есть велосипедик очередной, проверяет изменения на веб страничках, это я так узнаю про новости, проверяет сейчас в лоб, скачивает страницу и с горем пополам извлекает текст и делается нечто вроде diff
от предыдущей сохранённой страницы, совпадающий текст заменяется *
звёздочками так я вижу что изменилось на странице, типа вот так
Всё бы ладно, но в большинстве случаев, обновлений на страницах нет. Вот все кнопки что коричневые это значит что на странице ничего не изменилось. Но узнаёт программа про это, только целиком скачав страницу и сравнив с предыдущей копией в лоб. Подумалось что правильнее будет узнавать какой Last-Modified
и на основании его уже качать или не качать новые данные со страницы. Вопрос, Last-Modified
может врать? Если да, то как часто это делает. Может там неписаные правила какие настройки вебсерверов.
И сразу второй вопрос, нужно ли сначала делать запрос If-Modified-Since
для явного указания что я хочу узнать изменилась ли страница с предыдущей даты конкретной или просто можно читать Last-Modified
и сравнивать даты чисто на своей стороне, в смысле может ли быть что Last-Modified
вернётся новым тогда и только тогда когда был запрос с If-Modified-Since
?
Хочется просто пропускать загрузку страниц для проверки, если они реально без обновлений. В правильную ли я сторону думаю?
Я параллельно сам читаю всякое, но думаю спросить лишним не будет =)