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

时间:2011-07-04 17:42:02

标签: ruby http http-headers

我正在尝试检查自上次检查后文件(在网络上)是否被修改。是否可以通过在上次修改(或上传)文件时读取http标头来实现此目的?

2 个答案:

答案 0 :(得分:10)

您可以使用内置的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将其转换为正确的日期。

答案 1 :(得分:3)

正如@tadman在答案中所说,HTTP "HEAD" request是检查上次修改日期的正确方法。

您也可以使用conditional GET request使用“IF- *”修饰符标题来完成此操作。

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