zkrvndm
@zkrvndm
Архитектор решений

Как проверить не изменился ли файл по ссылке?

Мне не проблема сделать такую проверку в лоб - скачал fetch-ем и сверил.
Но можно ли факт изменения файла определить не скачивая весь файл целиком?
Возможно существуют какие-то специальные заголовки для проверки факта изменения?

P. S. Одно дело проверять в лоб файл весом в пару килобайт и совсем другое, если там больше 200 мегабайт.
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
zkrvndm
@zkrvndm Автор вопроса
Архитектор решений
Всем спасибо, похоже я нашел решение. На равне с типами запроса GET, POST и другими оказывается существует еще тип запроса HEAD. Этот тип запроса позволяет запросить заголовки ответа, без самого тела ответа.

Соответственно факт изменения файла можно проверить через сверку заголовка ETag:
(await fetch('/', { method: 'HEAD' })).headers.get('ETag');

Заголовок HTTP ответа ETag является идентификатором специфической версии ресурса. Если ресурс по заданному URL изменился, будет сгенерированно новое значение Etag. Поэтому Etag чем-то похож на отпечаток ("fingerprints") и позволяет быстро определить являются ли два представления ресурса одними и теме же.

https://developer.mozilla.org/ru/docs/Web/HTTP/Hea...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы