Как браузер определяет, какие ресурсы нужно кэшировать?
Ответ от нейросети
sobes.tech AI
Браузер опирается на HTTP-заголовки ответа сервера:
-
Cache-Control: Определяет общие правила кэширования. Например,max-age=<секунды>указывает время жизни ресурса в кэше,no-cacheтребует валидации с сервером перед использованием, аno-storeзапрещает кэширование.Cache-Control: max-age=3600, public -
Expires: Устаревший заголовок, указывает точную дату и время окончания срока действия кэша. Более низкий приоритет, чемCache-Control.Expires: Tue, 01 Jan 2024 12:00:00 GMT -
ETag(Entity Tag): Уникальный идентификатор версии ресурса. Браузер отправляет его серверу в заголовкеIf-None-Matchпри повторном запросе. ЕслиETagсовпадает, сервер возвращает 304 Not Modified.ETag: "abcdef123456" -
Last-Modified: Дата и время последнего изменения ресурса. Браузер отправляет его серверу в заголовкеIf-Modified-Since. Если ресурс не был изменен с указанной даты, сервер возвращает 304.Last-Modified: Mon, 31 Dec 2023 10:00:00 GMT
Браузер также учитывает свой внутренний кэш, его размер и политики очистки. Если ресурс уже есть в кэше и не просрочен согласно HTTP-заголовкам, он используется без повторного запроса к серверу. В противном случае, или если требуется валидация (например, при Cache-Control: no-cache или наличии ETag/Last-Modified), браузер делает запрос к серверу.