як заборонити

Що таке кешування?
Це збереження файлу сервера у клієнта на певний час.

Для чого?

як заборонити
Для мінімізації споживання трафіку і зниження навантаження на сервер.

Так, це дуже корисна функція і браузери дуже люблять нею користуватися (за замовчуванням вони кешують все підряд), але тепер уявіть: у нас є новинний портал, на якому часто додаються новини. Слідчо якщо браузер клієнта закешірует сторінку новин, то він ризикує пропустити якусь важливу новину ..

Що робити?
Можна заборонити браузеру кешувати контент цієї (але не потрібно забороняти кешувати все підряд!) Сторінки. І тут виникає безліч проблем ..

Як робити не треба:

У багатьох книжках і на багатьох ресурсах призводять шматок коду php, який повинен заборонити браузеру кешувати сторінку:

Чому?
Розглянемо цей код докладніше:

"Cache-Control: no-cache" - не забороняє кешування.
У перекладі на людську мову це означає наступне:
"Ти можеш закешовану контент цієї сторінки, але перед використанням кешу перевірити не оновилася ця сторінка на сервері."

"Expires." - цей заголовок означає наскільки актуальна ця сторінка. Тобто коли потрібно її перезапроса з сервера.
У коді вище в цьому заголовку вказана дата з минулого. Знову ж таки, поставте себе на місце пошукового робота.

Як зробити правильно?

Насправді для заборони кешування достатньо всього 2х рядків ..

header ( "Cache-Control: no-store");
header ( "Expires:". date ( "r"));

"No-store" - на відміну від "no-cache" повністю забороняє браузеру кешувати сторінку.
Або ж можна зробити так:

header ( "Cache-Control: no-store, no-cache, must-revalidate");
header ( "Expires:". date ( "r"));

Так само навпаки можна явно дозволити браузеру кешувати документ:

header ( "Cache-Control: public");
header ( "Expires:". date ( "r", time () + 3600));

Наприклад якщо у браузера будуть сумніви: чи потрібно кешувати контент, то керуючись заголовком "Cache-Control: public" він його закешірует.
У цьому прикладі браузер закешірует документ на 3600 секунд.

Дякуємо за увагу. До нових зустрічей :)

Схожі статті