Могу ли я узнать дату изменения файла HTTP? - PullRequest
6 голосов
/ 04 июля 2011

Я пытаюсь проверить, был ли файл (в сети) изменен с момента последней проверки. Возможно ли это сделать, заставив заголовки http прочитать последний раз, когда файл был изменен (или загружен)?

Ответы [ 2 ]

10 голосов
/ 04 июля 2011

Вы можете использовать встроенную библиотеку 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.

3 голосов
/ 05 июля 2011

Как говорит @tadman в своем ответе, HTTP-запрос "HEAD" HTTP - это правильный способ проверить дату последнего изменения.

Вы также можете сделать это, используя условный запрос GET , используя заголовки модификатора "IF- *".

Выбор зависит от того, намереваетесь ли вы немедленно загрузить страницу. Если вы просто хотите дату, используйте ГОЛОВУ. Если вы хотите, чтобы содержимое было изменено, используйте GET с заголовками «IF- *».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...