Thanks to visit codestin.com
Credit goes to developer.mozilla.org

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Кешируемые методы

Кешируемые ответы - это HTTP-ответы, которые могут быть закешированы, то есть сохранены для дальнейшего восстановления и использования позже, тем самым снижая число запросов к серверу. Не все HTTP-ответы могут быть закешированы. Вот несколько ограничений:

  • Метод, используемый в запросе, кешируемый, если это GET или HEAD. Ответ для POST или PATCH запросов может также быть закеширован, если указан признак "свежести" данных и установлен заголовок Content-Location, но это редко реализуется. (Например, Firefox не поддерживает это согласно https://bugzilla.mozilla.org/show_bug.cgi?id=109553.) Другие методы, такие как PUT и DELETE не кешируемые, и результат их выполнения не кешируется.
  • Коды ответа, известные системе кеширования, которые рассматриваются как кешируемые: 200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501.
  • Отсутствуют специальные заголовки в ответе, которые предотвращают кеширование: например, Cache-Control.

Обратите внимание, что некоторые некешируемые запросы-ответы к определённым URI могут сделать недействительным (инвалидируют) предыдущие закешированные ответы на тех же URI. Например, PUT к странице pageX.html инвалидируют все закешированные ответы GET или HEAD запросов к этой странице.

Когда и метод запроса и статус ответа кешированы, то ответ к запросу тоже может быть закеширован:

GET /pageX.html HTTP/1.1
(…)

200 OK
(…)

Запрос PUT не может быть закеширован. Более того, он инвалидирует закешированные данные запросов к тому же URI, сделанных через HEAD или GET:

PUT /pageX.html HTTP/1.1
(…)

200 OK
(…)

Специальный заголовок Cache-Control в ответе может предотвратить кеширование:

GET /pageX.html HTTP/1.1
(…)

200 OK
Cache-Control: no-cache
(…)

Материалы для изучения

Основные

Технические

  • Описание общих кешируемых методов: GET, HEAD
  • Описание общих некешируемых методов: PUT, DELETE, often POST