有没有办法找出网页更改后经过了多长时间?
例如,
我的主页位于:www.mywebsitenotupdated.com
有没有办法找出这个html页面上传到服务器的时间?
非常重要,我无法访问服务器;只是指向网页的链接。
答案 0 :(得分:64)
不,您只是通过访问该页面,无法知道页面上次更新或上次更改或上传到服务器的时间(根据解释,可能是三种不同的事情)。
服务器可以(并且应该根据HTTP 1.1协议)发送Last-Modified
header,您可以通过多种方式找到它,例如:使用Rex Swain’s HTTP Viewer。但是,根据协议,这只是“源服务器认为变体上次修改的日期和时间”。协议实际上补充说:“此标头字段的确切含义取决于源服务器的实现和原始资源的性质。对于文件,它可能只是文件系统上次修改时间。对于具有动态包含部分的实体,它可能是其组成部分的最后一组最后修改时间。对于数据库网关,它可能是记录的最后更新时间戳。对于虚拟对象,它可能是内部状态最后一次更改。“
实际上,网页通常是从内容管理系统或其他方式动态创建的,在这种情况下,Last-Modified
标题通常会显示创建响应的数据标记,通常非常接近请求的时间。这意味着在这种情况下标题实际上是无用的。
即使在“静态”页面的情况下(服务器只是选取与请求匹配的文件并发送它),Last-Modified
日期戳通常表示对服务器上文件的最后一次写访问。这可能与从备份副本还原文件的时间,或者在服务器上编辑文件而不对内容进行任何更改的时间,或者上载到服务器上的时间有关,可能会替换旧的相同的副本。在这些情况下,假设时间戳在技术上是正确的,它表示页面未被更改的时间(但不一定是上次更改的时间)。
答案 1 :(得分:51)
打开浏览器控制台(?)并输入以下内容:
javascript:alert(document.lastModified)
答案 2 :(得分:11)
还有另一种方法可以找到页面更新,这对某些场合很有用(如果有效:)。
如果网页已被Google编入索引,或者Wayback Machine,您可以尝试找出他们保存的日期(这些方法不适用于任何页面,并且有一些限制,在此webmasters.stackexchange question's answers中进行了广泛调查。但在许多情况下,他们可以帮助您找出页面更新日期:
Saved 6 times between June 7, 2014 and November 23, 2016.
,您可以查看每个日期的所有已保存副本答案 3 :(得分:4)
要检查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
Date
非常重要,因为它会报告服务器时间,而不是当地时间。此外,并非每个服务器都发送Last-Modified
(例如,超级用户似乎不会这样做)。
答案 4 :(得分:1)
通过https://gist.github.com/EronHennessey/6996195
执行此操作的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)
脚本的其余部分包括一个示例,即存档页面并检查新版本的更改,并通过电子邮件提醒某人。
答案 5 :(得分:0)
我写了一篇关于此的博客,其中显示了检查网站上次更新日期和时间的一些简单步骤。 https://sachinapatel.wordpress.com/ 你可以在第一篇博客上查看它
答案 6 :(得分:-1)