Кешування без секретів, Різне, Інтернет-технології, статті

FireFalcon, www.web-anatomy.f2s.com/

Скільки разів писано і переписано про тегу . Здавалося б, все! Досить! Закрили тему! Але ні! Адже не все сказали! Вірніше, подекуди все, але це спробуй знайди ще. Потикався у всякі Rambler’и і Яndex’и

Отже, поговоримо про кешуванні. Власне, для чого воно потрібне всім нам, бідним користувачам інтернету, як середовища існування. Скорочення трафіку – ось вона, користь! Ну навіщо нам десять раз на день заново качати з мережі першу сторінку якого-небудь каталога, коли можна акуратненько покласти її в кеш і забути про повільної завантаженні для цього сайту? Під-от, саме так і роблять. Заглибимося в проблему.

Всім відомо, що різних версіях протоколів HTTP застосовуються свої директиви управління кешуванням. Cache-Control – директива протоколу HTTP 1.1. А параметри в неї ось такі:

<meta http-equiv=”Cache-Control” content=”[no-cache],
[public], [private], [no-store], [no-transform], [must-revalidate], [proxy-revalidate], [max-age=n]”>

Всі перераховані атрибути (крім взаємовиключних) можна перераховувати через кому. Розумію, не все ясно, зараз дещо поясню.

1. Заборона на кешування взагалі (документ не буде кешуватися ні proxy-сервером, ні браузером):

<meta http-equiv=”Cache-Control” content=”no-cache”>

2. Документ буде кешуватися браузером, але не буде кешуватися proxy-сервером:

<meta http-equiv=”Cache-Control” content=”private”>

3. Документ буде кешуватися, навіть якщо й не повинен, начебто, за звичайних обставин:

<meta http-equiv=”Cache-Control” content=”public”>

4. Документ кешується, але не зберігається в архіві:

<meta http-equiv=”Cache-Control” content=”no-store”>

5. Можна прямо сказати браузеру: “Обнови-но мені цю сторінку”. (В параметрі max-age зазначено, на скільки секунд кешується документ). Може бути корисно при використанні PHP для програмного оновлення сторінок:

<meta http-equiv=”Cache-Control” content=”max-age=3600, must-revalidate”>

6. А можна сказати це тільки проксі-сервера:

<meta http-equiv=”Cache-Control” content=”max-age=3600, proxy-revalidate”>

У спадок від протоколу HTTP 1.0 нам дістався дуже простий спосіб управління кешуванням, визначається директивою Pragma. Дана штука є спільною директивою заголовка HTTP-повідомлення в HTTP 1.0, та інших значень, крім no-cache, не має:

<meta http-equiv=”Pragma” content=”no-cache”>

У протоколі HTTP 1.1 дана директива замінена директивою Cache-Control зі значенням no-cache. Більшість серверів і клієнтів підтримують цю директиву і правильно її відпрацьовують.

Для заборони на кешування іноді не достатньо застосування директив управління кешуванням. Так, Netscape кешує документи або їх компоненти навіть при наявності директив Cache-Control і Pragma. Для того, щоб змусити перечитати компонент сторінки (адже він виходить з сервера за самостійним HTTP-запиту) можна встановити директиву Expires.

Ось такий от вийшла розмова про кешуванні. А з тегом META ми ще зустрінемося. І не раз …

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*