我可以获得 HTTP 文件修改的日期吗?

发布于 2024-11-18 19:06:20 字数 75 浏览 3 评论 0原文

我正在尝试检查自上次检查以来文件(在网络上)是否被修改。是否可以通过获取 http 标头来读取上次修改(或上传)文件的时间来做到这一点?

I'm trying to check if a file (on web) was modified since the last time I checked. Is it possible to do this by getting http headers to read the last time the file was modified (or uploaded)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦中的蝴蝶 2024-11-25 19:06:20

您可以使用内置的 Net::HTTP 库来为您完成大部分工作:

require 'net/http'

Net::HTTP.start('stackoverflow.com') do |http|
  response = http.request_head('/robots.txt')

  response['Last-Modified']
  # => Sat, 04 Jun 2011 08:51:44 GMT
end

如果您愿意,您可以使用 Time.parse 将其转换为正确的日期。

You can use the built-in Net::HTTP library to do most of this for you:

require 'net/http'

Net::HTTP.start('stackoverflow.com') do |http|
  response = http.request_head('/robots.txt')

  response['Last-Modified']
  # => Sat, 04 Jun 2011 08:51:44 GMT
end

If you want, you can convert that to a proper date using Time.parse.

单挑你×的.吻 2024-11-25 19:06:20

正如 @tadman 在他的回答中所说,HTTP“HEAD”请求是检查最后修改日期的正确方法。

您还可以通过使用“IF -*" 修饰符标头。

使用哪个取决于您是否打算立即下载该页面。如果您只想要日期,请使用 HEAD。如果您想要更改内容,请使用带有“IF-*”标头的 GET。

As @tadman says in his answer, a HTTP "HEAD" request is the proper way to check the last modification date.

You can also do it using a conditional GET request using the "IF-*" modifier headers.

Which to use depends on whether you intend to immediately download the page. If you just want the date use HEAD. If you want the content if there has been a change use GET with the "IF-*" headers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文