Pусский
English

FAQ. Продукты и решения Blue Coat » ПРОДУКТЫ » --- CacheFlow

« Назад

Срок годности объекта в кэше  02.03.2012

Ответ

Есть несколько способов как браузер или ProxySG могут определить, должны ли они воспроизводить объект из кэша или получать новую копию с веб-сервера.

Способ 1: Last-Modified

Сервер сообщает браузеру, какую версию файла он посылает. Сервер может возвращать дату последнего изменения вместе с файлом следующим образом:

Last-modified: Fri, 16 Mar 2007 04:00:25 GMT

Содержимое файла (это может быть изображение, HTML, CSS, JavaScript ...)

Теперь браузер знает, что файл был создан 16 Марта 2007 года. В следующий раз, когда браузеру будет нужен данный файл, он может сделать специальную проверку с сервером. Отправка коротких сообщений Not Modified намного быстрее, чем скачивание файла заново, особенно для гигантского JavaScript или изображений.

Способ 2: ETag

Сравнение версий с изменением времени в целом работает, но может привести к проблемам. Например, если часы сервера изначально настроены неправильно, а затем были исправлены, или если был переход на летнее время.

В этом случаем может помочь ETags. ETag является уникальным идентификатором для любого файла, и ведет себя как хэш или fingerprint: каждый файл получает уникальный fingerprint, и если вы измените файл (даже на один байт), fingerprint также изменится.

Вместо того, чтобы отсылать изменение времени, сервер может оотсылать ETag (fingerprint):

ETag: ead145f

Содержимое файла (это может быть изображение, HTML, CSS, JavaScript ...)

ETag может быть любой строкой, которая однозначно идентифицирует файл.

Способ 3: Expires

Проверка сервером при кэшировании файлов  является эффективным методом, минус в зависимости от  проверки с сервером. Если мы знаем когда истекает срок действия файла, то мы продолжаем использовать его до этой даты. Как только она истекает, мы связываемся с сервером для новой копии файла, с новым сроком действия. Заголовок выглядит следующим образом:

Expires: Tue, 20 Mar 2007 04:00:25 GMT

Содержимое файла (это может быть изображение, HTML, CSS, JavaScript ...)

Способ 4: Max-Age

Использование истечения срока годности эффективно, но оно должно вычисляться для каждой даты. Заголовок Max-Age позволяет нам сказать: "Срок действия файла истекает через 1 неделю с сегодняшнего дня", что проще, чем установка точной даты.

Max-Age измеряется в секундах.

1 день = 86400 секунд

1 неделя = 604800 секунд

1 месяц = 2629000 секунд

1 год = 31536000 (фактически бесконечное время в Интернете)

Иногда сервер должен контролировать кэширование определенных ресурсов. Для этого используются дополнительные заголовки.

Cache-Control: Public. Файл может быть сохранен в кэше на прокси и другом промежуточном сервере.

Cache-Control: Private. Означает, что файл отличается для разных пользователей (например, их персональная страница). Браузер пользователя может его кэшировать в отличие от публичного прокси-сервера.

Cache-Control: No-cache означает, что файл не должен кэшироваться. Это полезно для результатов поиска, где URL тот же, но содержание может измениться.

Источник: https://kb.bluecoat.com/index?page=content&id=FAQ1872



Разделы статей

Компания Web Control. Тел./факс: +7 (495) 925-7794
email: info@web-control.ru, 107023, г. Москва, Электрозаводская ул., д. 24
Яндекс.Метрика