Кэширование на уровне протокола HTTP выполняется с помощью заголовков и методов, которые позволяют клиенту и серверу определять, нужно ли повторно загружать ресурс или использовать его из локального кэша. Ключевые механизмы:
Заголовки кэширования от сервера:
Cache-Control
: Определяет директивы кэширования, например, максимальный срок жизни ресурса (max-age
), разрешение на кэширование (public
, private
), запрет кэширования (no-cache
, no-store
), требование перепроверки (must-revalidate
).Expires
: Устаревший заголовок, указывающий дату и время, после которого ресурс считается устаревшим. Переопределяется Cache-Control
с max-age
.ETag
: Сущность-тэг (Entity Tag) - уникальный идентификатор версии ресурса, генерируемый сервером.Last-Modified
: Дата и время последнего изменения ресурса на сервере.Заголовки условных запросов от клиента:
If-None-Match
: Клиент отправляет один или несколько ETag
тех версий ресурса, которые у него есть в кэше. Если ни один из них не совпадает с текущим ETag
на сервере, сервер отправляет весь ресурс с кодом 200 OK. Если совпадает, сервер возвращает 304 Not Modified без тела ответа, и клиент использует версию из кэша.If-Modified-Since
: Клиент отправляет дату последнего изменения ресурса, имеющегося в кэше. Если ресурс на сервере был изменен после этой даты, сервер отправляет весь ресурс с кодом 200 OK. В противном случае возвращается 304 Not Modified.Алгоритм кэширования:
Cache-Control
, Expires
, ETag
, Last-Modified
.Cache-Control
(max-age
) или Expires
, клиент использует ресурс из кэша без запроса к серверу (кэш попадание - Hit).If-None-Match
(с сохраненным ETag
) и/или If-Modified-Since
(с сохраненным Last-Modified
).ETag
/Last-Modified
показала совпадение), сервер отвечает 304 Not Modified.Кэширование на уровне протокола HTTP выполняется с помощью заголовков и методов, которые позволяют клиенту и серверу определять, нужно ли повторно загружать ресурс или использовать его из локального кэша. Ключевые механизмы:
Заголовки кэширования от сервера:
Cache-Control
: Определяет директивы кэширования, например, максимальный срок жизни ресурса (max-age
), разрешение на кэширование (public
, private
), запрет кэширования (no-cache
, no-store
), требование перепроверки (must-revalidate
).Expires
: Устаревший заголовок, указывающий дату и время, после которого ресурс считается устаревшим. Переопределяется Cache-Control
с max-age
.ETag
: Сущность-тэг (Entity Tag) - уникальный идентификатор версии ресурса, генерируемый сервером.Last-Modified
: Дата и время последнего изменения ресурса на сервере.Заголовки условных запросов от клиента:
If-None-Match
: Клиент отправляет один или несколько ETag
тех версий ресурса, которые у него есть в кэше. Если ни один из них не совпадает с текущим ETag
на сервере, сервер отправляет весь ресурс с кодом 200 OK. Если совпадает, сервер возвращает 304 Not Modified без тела ответа, и клиент использует версию из кэша.If-Modified-Since
: Клиент отправляет дату последнего изменения ресурса, имеющегося в кэше. Если ресурс на сервере был изменен после этой даты, сервер отправляет весь ресурс с кодом 200 OK. В противном случае возвращается 304 Not Modified.Алгоритм кэширования:
Cache-Control
, Expires
, ETag
, Last-Modified
.Cache-Control
(max-age
) или Expires
, клиент использует ресурс из кэша без запроса к серверу (кэш попадание - Hit).If-None-Match
(с сохраненным ETag
) и/или If-Modified-Since
(с сохраненным Last-Modified
).ETag
/Last-Modified
показала совпадение), сервер отвечает 304 Not Modified.Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.