如何查找网页的最新更新时间


74

有没有一种方法可以找出自更改网页以来经过了多少时间?

例如,我有一个网页托管在: www.mywebsitenotupdated.com

有没有一种方法可以确定何时将此HTML页面上载到服务器?

我无权访问服务器;只是该网页的链接。

Answers:


72

不,您仅通过访问页面就无法知道页面的最后更新时间,最后更改时间或上载到服务器的时间(根据解释的不同,这可能是三种不同的东西)。

服务器可以并且应该(根据HTTP 1.1协议)发送Last-Modified标头,您可以通过多种方式找到标头,例如使用Rex Swain的HTTP Viewer。但是,根据协议,这仅仅是

“原始服务器认为该变体上次修改的日期和时间”。

该协议实际上增加了:

“此标头字段的确切含义取决于原始服务器的实现和原始资源的性质。对于文件,可能只是文件系统的最后修改时间。对于具有动态包含的零件的实体,它可能是其零件的最后修改时间集合中的最新时间。对于数据库网关,它可能是记录的最后更新时间戳。对于虚拟对象,这可能是内部状态最后一次更改。”

实际上,通常是从内容管理系统或其他方式动态创建网页,在这种情况下,Last-Modified标头通常会显示创建响应的数据戳记,通常与请求时间非常接近。这意味着在这种情况下,标头实际上是无用的。

即使在“静态”页面的情况下(服务器只是简单地选择一个与请求匹配的文件并发送),Last-Modified日期戳通常仅指示对服务器上文件的最后一次写访问。这可能与从备份副本还原文件的时间有关,或者与在服务器上编辑文件而不对内容进行任何更改的时间有关,或者与文件上载到服务器的时间(可能替换了较旧的文件)有关。相同的副本。在这些情况下,假设时间戳在技术上是正确的,则表示未更改页面的时间(但不一定是最后一次更改的时间)。


Last-Modified标头是正确的,但是可以根据服务器对HEAD请求的响应并基于对特定主机的服务器及其内容以及生成方式的了解来做出一些有根据的猜测。窥探他们的页面并在连接上带有嗅探器可以发现很多东西。
锡人

61

打开浏览器控制台()并输入以下内容:

javascript:alert(document.lastModified)

13
您也可以在控制台中将其打印出来。只需输入document.lastModified
daamsie,2014年

7
下面的答案实际上应该是公认的答案,因为动态页面是动态生成的,在这种情况下,此命令毫无用处。尽管对于静态页面,这是一个有用的命令(如果可以确定页面是真正静态的)。
Joyrex 2015年

13
你好。当我搜索此文件时,在控制台中:我得到系统的当前日期和时间:javascript:alert(document.lastModified)不是实际日期
raja777m

2
@ raja777m也许您正在尝试使用此方法创建动态网页
Mostafiz Rahman

如果网站移动了服务器,这将显示错误的数据,不是吗?
伊欧因(Eoin)

17

还有另一种查找页面更新的方法,该方法在某些情况下可能有用(如果可行:)。

如果页面已被Google或Wayback Machine索引,则您可以尝试找出它们保存了什么日期(这些方法不适用于任何页面,并且存在一些局限性,对此进行了广泛研究在这个webmasters.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问题页面搜索给出的结果是2014年5月14日-这是问题创建日期:在此处输入图片说明
  2. Wayback机器方式:通过链接https://web.archive.org/web/*/www.example.com
    • 对于此stackoverflow页的Wayback机器,我们Saved 6 times between June 7, 2014 and November 23, 2016.可以得到更多结果:,并且您可以查看每个日期的所有保存副本

Wayback机器是一个了不起的工具!它告诉您,给定页面的更新时间,但是您也可以访问此页面执行的不同快照。您可以正确地检查您感兴趣的部分是旧的还是新的。Wayback机器是此问题的真正答案。
罗扎·法比恩

1
Wayback Machine的API可让您按归档顺序查看页面所有版本的列表。然后,您可以扫描其中的几个以确定该页面何时不再存在。但是您必须提取每个版本并进行差异检查,以查看上次修改的时间。
Marc Maxmeister '18

4

要检查Last Modified标题,可以使用httpiedocs)。

安装

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

Date重要性,因为这会报告服务器时间,而不是您的本地时间。同样,并非每个服务器都发送Last-Modified(例如,超级用户似乎不这样做)。


1

这是一种Python方式

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)

该脚本的其余部分包括一个示例,该示例存档页面并检查新版本是否有更改,并通过电子邮件提醒某人。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.