
- •Лабораторна робота № 1. Синхронна передача даних в Internet по протоколу http. Використання кешування і cookie для оптимізації обміну даними.
- •1. Теоретичні відомості 1.1. Основи html
- •1.1.1 Синтаксис Web-форм
- •1.2. Основи css
- •1.2.1.Зв'язані листи стилів
- •1.4. Використання Cookie
- •1.4.1 Формат і синтаксис поля "Set-Cookie"
- •1.4.2 Формат і синтаксис поля "Cookie"
- •1.4.3. Способи запису значень cookie
- •1.4.3.1. Запис cookie за допомогою meta-тегів
- •1.4.3.2. Запис cookie за допомогою JavaScript
- •1.5. Кешування Web-ресурсів
- •1.5.1. Правила кешування
- •2.Завдання
- •3. Контрольні питання:
- •1. Автоматизована система вУу
- •2. Автоматизована система торгової організації
- •3. Автоматизована система лікарні
- •4. Автоматизована система підприємства пасажирського транспорту
- •5. Автоматизована система проектної організації
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>