Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11-0223_ПЗМПД_l1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.66 Mб
Скачать

1.5.1. Правила кешування

1. Якщо заголовки відповіді забороняють зберігати кеш, то він не буде збережений.

2. Якщо запит буде захищений (HTTPS) або ж буде запитом на аутентифікацію, то він не кешується.

3. Закешований зміст вважатиметься актуальним, якщо: o не закінчився час зберігання кеша;

o якщо закешований зміст не оновлювався на сервері. Актуальний зміст з кеша передається в браузер без звернення до сервера.

4. Якщо закешований зміст застаріє згідно інформації в браузері, то буде зроблено запит до сервера для перевірки актуальності цього змісту, з зазначенням дати модифікації збереженого контенту в заголовку "If-Modfied- Since". У випадку, якщо в кеші містяться актуальні дані, сервер поверне відповідь "304: Not Modified", інакше перешле оновлені дані.

5. При певних обставинах - наприклад, коли за відсутності підключення до мережі - кеш видаватиме закешований зміст без перевірки на сервері.

Управління кешуванням здійснюється за допомогою HTTP-заголовків, або META-тегів. Доречніше використовувати HTTP-заголовки, оскільки META-теги розташовуються в HTML-документі і не завжди читаються Proxy-сервером. Заголовки HTTP посилаються у відповіді сервера перед HTML-контентом, і тому можуть бути прочитані не тільки браузером, але і проміжними проксі-серверами, наприклад Squid 4.2.

6. Кешуються тільки запити по методу GET з прив'язкою до вказаного в запиті URL.

7. Дані, отримані по протоколу HTTPS, ніколи не кешуються.

1.5.2. Управління кешуванням за допомогою HTTP-заголовків

Починаючи з HTTP 1.1 був введений новий заголовок відповіді Cache-Control, для контролю кешування змісту, і Expires - для обмеження часу зберігання кеша.

Заголовок відповіді Cache-Control може включати наступні директиви:

• max-age=[секунди] - визначає максимальний час актуальності закешованого змісту, протягом якого він не вважатиметься застарілим.

• no-cache - вказує кешу кожного разу робити додатковий запит до сервера для перевірки актуальності закешованого змісту.

• no-store - забороняє кешувати зміст в будь-якому випадку.

• must-revalidate - вказує проксі-серверу керуватись вашим правилам перевірки актуальності кеша незалежно від налаштувань кеша. Наприклад:

Cache-Control: max-age=3600, must-revalidate

Заголовок "Expires" вказує до якого часу зміст буде актуальним. Після закінчення зазначеного терміну браузер або проксі-сервер завжди перевіряє актуальність закешованого змісту. Приклад заголовку:

Expires: Fri, 30 Oct 1998 14:19:41 GMT

Для заборони кешування використовуються наступні команди Cache-Control: no-cache, max-age=0, no-store Expires: Sat, 26 Jul 1998 05:00:00 GMT (вказана минула дата) Іншим способом заборони кешування є використання унікального URL, для чого в нього додають параметр з випадковим значенням.

1.5.3. Управління кешуванням за допомогою META-тегів

В цьому випадку використовуються відповідні META-теги, що розташовуються в елементі <HEAD>...</HEAD> будь-якого HTML документа, наприклад:

<html> <head>

<META HTTP-EQUIV="Cache-Control" CONTENT="max-age=30, must-revalidate"/> <META HTTP-EQUIV="Expires" CONTENT="Wed, 17 Feb 2010 10:00:00 GMT"/> <META HTTP-EQUIV="Last-Modified" CONTENT="Mon, 29 Jun 1998 02:28:12 GMT"/>

</head>

<body>

Управління кешуванням за допомогою META-тегів.

</body> </html>