Как узнать, когда веб-страница была обновлена в последний раз?


есть ли способ узнать, сколько времени прошло с момента изменения веб-страницы?

например, У меня есть страница, размещенная по адресу:www.mywebsitenotupdated.com

есть ли способ узнать, когда эта html-страница была загружена на сервер?

очень важно, у меня нет доступа к серверу, просто ссылка на страницу.

7 57

7 ответов:

нет, вы не можете знать, когда страница была в последний раз обновлена или в последний раз изменена или загружена на сервер (что может, в зависимости от интерпретации, быть тремя разными вещами) просто путем доступа к странице.

сервер может и должен (согласно протоколу HTTP 1.1) отправить Last-Modified заголовок, который вы можете узнать несколькими способами, например, используя просмотрщик HTTP Рекса Суэйна. Однако, согласно протоколу, это всего лишь " дата и время, в которое начало сервер считает, что вариант был изменен в последний раз". И протокол реально добавляет: "точное значение этого поля заголовка зависит от реализации сервера и происхождение исходного ресурса. Для файлов это может быть только время последнего изменения файловой системы. Для объектов с динамически включенными частями это может быть самое последнее время из набора последних изменений для его составных частей. Для шлюзов базы данных это может быть отметка времени последнего обновления записи. Для виртуальных объекты, это может быть последний раз, когда внутреннее состояние изменилось."

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

даже в случае "статической" страницы (сервер просто подбирает соответствующий файл запрос и отправляет его), то Last-Modified штамп даты обычно указывает только последний доступ на запись к файлу на сервере. Это может относиться ко времени, когда файл был восстановлен из резервной копии, или времени, когда файл был отредактирован на сервере без внесения каких-либо изменений в содержимое, или времени, когда он был загружен на сервер, возможно, заменив старую идентичную копию. В этих случаях, предполагая, что отметка времени является технически правильной, она указывает время, после которого страница имеет не был изменен (но не обязательно время последнего изменения).

Откройте консоль браузера (?) и введите следующее:

javascript:alert(document.lastModified)

есть еще один способ найти обновление страницы, которое может быть полезно для некоторых случаев (если работает:).

если страница была проиндексирована Google, или Wayback Machine вы можете попробовать узнать, какие даты были (были) сохранены ими (эти методы не работают ни для одной страницы и имеют некоторые ограничения, которые широко исследуются в этом веб-мастерах.stackexchange ответы на вопросы. Но во многих случаях они могут помочь вам выяснить странице дата (ы) обновления:

  1. Google путь: перейти по ссылке https://www.google.com.ua/search?q=site%3Awww.example.com&biw=1855&bih=916&source=lnt&tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2000%2Ccd_max%3A&tbm=
    • вы можете изменить текст в поле поиска по любому URL страницы вы хотите.
    • например, текущая страница вопроса stackoverflow поиск дает нам в результате 14 мая 2014 года - это дата создания вопроса: enter image description here
  2. обратный путь машины: перейти по ссылке https://web.archive.org/web/*/www.example.com
    • для этой машины обратного хода страницы stackoverflow дает больше результатов: Saved 6 times between June 7, 2014 and November 23, 2016., и вы можете просмотреть все сохраненные копии для каждой даты

проверки Last Modified заголовок, вы можете использовать httpie ( docs).

установка

pip install httpie --user

использование

$ http -h https://martin-thoma.com/author/martin-thoma/ | grep 'Last-Modified\|Date'
Date: Fri, 06 Jan 2017 10:06:43 GMT
Last-Modified: Fri, 06 Jan 2017 07:42:34 GMT

The Date важно, так как это сообщает Время сервера, а не ваше местное время. Кроме того, не каждый сервер отправляет Last-Modified (например, суперпользователь, кажется, не делает этого).

Я написал блог об этом, в котором показаны некоторые простые шаги, чтобы проверить дату и время последнего обновления вашего сайта. https://sachinapatel.wordpress.com/ Вы можете проверить это на Первом блоге

питонический способ сделать это из https://gist.github.com/EronHennessey/6996195

import httplib
import yaml
c = httplib.HTTPConnection(address)
c.request('GET', url_path)
r = c.getresponse()
# get the date into a datetime object
lmd = r.getheader('last-modified')
if lmd != None:
   cur_data = { url: datetime.strptime(lmd, '%a, %d %b %Y %H:%M:%S %Z') }
else:
   print "Hmmm, no last-modified data was returned from the URL."
   print "Returned header:"
   print yaml.dump(dict(r.getheaders()), default_flow_style=False)

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

для меня это был

article:modified_time

в исходный код страницы.

View Page Source