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