HTTP: делает ли заголовок ETag заголовок Cache-Control устаревшим?Как убедиться, что Cache-Control не вреден? - PullRequest
0 голосов
/ 06 марта 2019

Определение заголовка ETag (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag):

Заголовок ответа ETag HTTP является идентификатором для определенной версии ресурса. Он позволяет кэшировать более эффективно и экономит пропускную способность, каквеб-серверу не нужно отправлять полный ответ, если содержимое не изменилось. С другой стороны, если содержимое изменилось, etags полезны для предотвращения перезаписи друг друга при одновременном обновлении ресурса («столкновения в воздухе»).).

Определение заголовка Cache-Control (https://developer.mozilla.org/de/docs/Web/HTTP/Headers/Cache-Control):

Поле общего заголовка Cache-Control используется для указания директив для механизмов кэширования в обоих запросах иответы.

Таким образом, заголовок ETag сообщает браузеру о ресурсе, чтобы он отправил на сервер один HTTP-запрос и спросил, изменился ли хэш файла. Если да, загрузите новый. Отлично.если установлен заголовок ETag, зачем мне больше Cache-Control (кроме заголовка Expires, который может помочь избежать этого единственного запроса)?

Так что, если мне все равно придется установить заголовок Cache-Control, это может быть только вредно, верно?Я думаю, что наиболее подходящим значением будет:

Cache-Control: must-revalidate

Но я не уверен, что это вызывает ненужные дополнительные действия.

1 Ответ

1 голос
/ 06 марта 2019

После некоторых исследований я нашел отличный учебник Алекса Барашкова по Medium : "Лучшие практики для настройки управления кэшем для вашего сайта" .

Алекс пишет:

Я рекомендую применить Cache-Control: no-cache к html-файлам. применение «No-cache» не означает, что кеша вообще нет, это просто говорит браузеру проверить ресурсы на сервере перед его использованием из кеша. Вот почему мы должны использовать его с Etag, поэтому браузеры отправит простой запрос и загрузит дополнительные 80 байтов для проверки состояние файла.

...