47. Кэширование в HTTP (Курс Компьютерные сети)
Современные Web-браузеры поддерживают кэширование редко меняющихся ресурсов, что позволяет сократить время загрузки web-страниц. Поддержка кэширования встроена в протокол HTTP.
Для определения, можно ли использовать копию ресурса из кэша, используется заголовок Expires, например:
Expires: Sun, 12 Jun 2016 10:35:18 GMT
Также можно использовать эвристику на основе заголовка Last-Modified.
Запрос GET с условием (Conditional GET) – запрос Web-серверу передать ресурс, если он изменился с указанного времени.
Ответы на запрос GET с условием:
- Ресурс не изменился: короткое сообщение со статусом 304 Not Modified.
- Ресурс изменился: полная передача измененной версии ресурса, статус ответа 200 ОК.
Определение изменения ресурса в запросе Get с условием:
- По дате последнего изменения ресурса: заголовок If-Modified-Since (HTTP версия 1.0).
- По тэгу (хэшу) ресурса: заголовок If-None-Match (HTTP версия 1.1)
В HTTP версии 1.1 появился новый заголовок для управления кэшем Cache-Control. Возможные значения:
- no-store
- no-cache
- public
- private
- max-age=X (время в секундах)
Кроме кэша браузера, ресурсы могут быть сохранены на прокси-серверах и обратных прокси-серверах.
Автор: Андрей Созыкин
{$ noItemsMessage $}