首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用Last-Modified标头值的情况下获取网站上文件的修改日期

在不使用Last-Modified标头值的情况下获取网站上文件的修改日期
EN

Stack Overflow用户
提问于 2011-10-12 05:31:06
回答 3查看 2.5K关注 0票数 3

我正在尝试编写一个bash shell脚本,该脚本将评估远程网站上文件的修改日期,如果文件比本地副本更新,则下载该文件。脚本的一部分已经写好了。已开发的part使用header Last-Modified参数。如果标头中没有Last-Modified参数,我需要有一个替代方案。有没有人知道一种方法,使用bash shell脚本或python来获取网站上as文件的最后修改日期,而不使用标题中的Last-Modified参数?

谢谢。

詹姆斯

EN

回答 3

Stack Overflow用户

发布于 2012-02-20 13:22:49

正如其他人在这里提到的,很难信任文件上次更新时间的Last-Modified头文件。

如果你不介意下载文件的全部内容,你可以存储文件的md5散列。如果在随后的调用中有所不同,您就知道文件的内容发生了变化。

在Bash shell中,您可以执行以下操作:

代码语言:javascript
复制
curl -s www.google.com | md5

使用优秀的python Requests库:

代码语言:javascript
复制
import requests
import hashlib

r = requests.get('http://www.example.com')
hash = hashlib.md5(r.text).hexdigest()
票数 2
EN

Stack Overflow用户

发布于 2011-10-12 05:42:19

如果您通过http检索数据,则不能保证您所请求的内容对应于一个物理文件或具有“最后修改”日期概念的任何其他内容,因此在http协议中没有办法(除了最后修改日期)知道。如果没有足够新的本地副本,您可能希望检索该文件-并且您必须根据自己的目的来决定什么是“足够新”。

如果您在主机上有一个用户帐户,并且可以通过ssh或类似程序远程登录,则可以检查实际文件的mod日期。

票数 0
EN

Stack Overflow用户

发布于 2011-10-12 10:53:26

在我看来,您基本上是在维护一个缓存。HTTP不仅仅有Last-Modified头来促进缓存,但逻辑并不那么简单。W3C有一个关于如何实现缓存的discussion,你可能会发现它很有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7732779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档