我想检查一下某个位于网络上的文件上次是否被修改过。有没有可能通过获取http头信息来读取该文件的最后修改时间(或上传时间)来实现?
我想检查一下某个位于网络上的文件上次是否被修改过。有没有可能通过获取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
将其转换为一个正确的日期。正如@tadman在他的答案中所说,HTTP "HEAD"请求是检查最后修改日期的正确方式。
您还可以使用条件GET请求并使用“IF-*”修饰符标头进行操作。
使用哪种方法取决于您是否打算立即下载页面。如果您只想要日期,请使用HEAD。如果您想要内容并且有所更改,请使用带有“IF-*”标头的GET。