Робота з cookie в javascript - life-prog

1 Призначення і структура Cookie

Cookie - це невеликі блоки текстової інформації, содержаціе дані про клієнта, які Web-сервер створює на комп'ютері клієнта. За однією з версій ця назва походить від англійського слова cookie, що означає домашнє печиво, тобто печиво, яке у кожної господині має свої особливості.

Механізм Cookie був розроблений компанією Netscape в якості компенсації відсутності реального сеансу роботи між браузером і сервером в рамках протоколу HTTP.

Відповідно до моделі взаємодії "клієнт-сервер", яка обрана для цього протоколу, клієнт і сервер встановлюють з'єднання тільки на момент обслуговування одного запиту клієнта. Розглянемо випадок, коли для звернення до інформаційних ресурсів сервера потрібно аутентифікація користувача. У локальній системі досить один раз ввести ідентифікатор і пароль, щоб отримати дозвіл на роботу. Інтерфейс користувача, який постійно пов'язаний з системою доступу, забезпечує сеанс, в рамках якого діє аутентифікація.

При роботі в Web сервер після відповіді на запит "забуває" про клієнта. Це означає, що аутентифікацію потрібно проходити кожного разу при зверненні до ресурсу.

Спочатку вихід з положення був знайдений у вигляді прихованих полів HTML-форми. Запроваджена при першому зверненні інформація передавалася клієнтом і сервером один одному при кожному зверненні. Але цей підхід незручний тим, що постійно потрібно викликати скрипт, який буде обробляти поля форм.

Рішення було знайдено у вигляді механізму Cookie. Суть його полягає в наступному: після звернення до сервера браузер у відповіді сервера в заголовку HTTP-повідомлення отримує Cookie. Ці дані зберігаються браузером на своєму магнітному диску і при наступному зверненні до сервера передаються в заголовку HTTP-запиту без зміни.

В налаштуваннях броузера Cookie повинні бути дозволені. Кожен файл Cookie не може перевищувати 4 КБ (інакше початкові записи видаляються, щоб звільнити місце новим), всього файлів може зберігатися до 400, причому, не більше 20 з одного сервера (інакше старіші файли видаляються).

Коли запитується документ з сервера, браузер перевіряє свої Cookie на предмет відповідності домену сервера та іншої інформації. У разі, якщо знайдені задовольняють всім умовам Cookie, браузер посилає їх сервера у вигляді HTTP-заголовка:

Розглянемо перші два способи, доступні на стороні клієнта.

2 Створення Cookie за допомогою тега

Тег задає метатегі, які використовуються для зберігання інформації, призначеної для браузерів і пошукових систем. Наприклад, механізми пошукових систем звертаються до метатегам для отримання опису сайту, ключових слів та інших даних. Дозволяється використовувати більш ніж один метатег, всі вони розміщуються в контейнері заголовка .
Як правило, параметри будь-якого метатега зводяться до парам <имя=значение>, в яких ім'я задається за допомогою ключових слів NAME або HTTP-EQUIV, а значення - за допомогою ключового слова CONTENT.

Метатегі з параметром HTTP-EQUIV дозволяють створювати HTTP-заголовки, при цьому параметр HTTP-EQUIV задає ім'я, а параметр CONTENT - вміст HTTP-заголовка.

Що стосується метатегов з параметром NAME, то принципово немає ніяких обмежень на використання значень цього параметра, за винятком того, що існує негласна домовленість між творцями пошукових систем і роботів про те як використовувати деякі значення.