Введення в Cookies.

Що таке cookie?

Cookie є рішенням однієї з спадкових проблем HTTP специфікації. Ця проблема полягає в непостійності з'єднання між клієнтом і сервером, як при FTP або Telnet сесії, тобто для кожного документа (або файла) при передачі по HTTP протоколу надсилається окремий запит. Включення cookie в HTTP протокол дало часткове рішення цієї проблеми.

Cookie це невелика порція інформації, яку сервер передає клієнтові. Клієнт (броузер) буде зберігати цю інформацію і передавати її серверу з кожним запитом як частина HTTP заголовка. Деякі cookie зберігаються тільки протягом однієї сесії, вони віддаляються після закриття броузера. Інші, установлені на деякий період часу, записуються у файл. Зазвичай цей файл називається 'cookie.txt'.

Що можна робити за допомогою cookie?

Самі по собі cookies не можуть робити нічого, це тільки лише деяка інформація. Проте, сервер може використовувати міститься в cookies інформацію. Наприклад, у випадку авторизованого доступу до чого або через WWW, в cookies зберігається login і password протягом сесії, що дозволяє не вводити їх при запиті кожного запаролірован документа. Інший приклад: cookies можуть використовуватися для побудови персоналізованих сторінок. Найчастіше зустрічається таке – на деякому сервері Вас просять ввести своє ім'я, і кожного разу, коли Ви заходите на першу сторінку цього сервера, Вам пишуть щось типу "Hello, your_name! ". На використанні cookies також часто будують функцію оформлення замовлення в онлайнових магазинах, зокрема, в Амазоне, така своєрідна віртуальна корзина покупця, як у звичайному реальному супермаркеті.

Які броузери підтримують механізм cookies?

Не всі, звичайно, проте найпопулярніші підтримують. Я точно знаю, що Netscape (починаючи з самої першої версії), Microsoft IE (трешка і четвірка – точно, про попередні не знаю), Mosaic

Установка cookie.

Як виставляти cookies клієнту залежить від того, як вони будуть використовуватися надалі. Це можна робити як за допомогою скриптів, так і за допомогою META-тегів HTML. Можна маніпулювати часом життя виставлених cookies і встановлювати місце, в якому установки дійсні. Загальний формат установки такий:

 Set-Cookie: NAME = value; EXPIRES = date; DOMAIN = domain_name; PATH = path; SECURE

Установка cookie за допомогою HTML.

Найпростіший спосіб виставити cookie – використовувати відповідний META-таг в заголовку <HEAD> </ HEAD> будь-якого статичного HTML документа. Це виглядає наступним чином:

 <META HTTP-EQUIV = "Set-Cookie" CONTENT = "NAME = value; EXPIRES = date;
	DOMAIN=domain_name; PATH=path; SECURE">

Установка cookie з використанням Perl / CGI.

Інший спосіб виставити cookie – за допомогою серверного скрипта. На Perl це буде виглядати приблизно так: перед тим як видавати серверний відповідь генерується HTTP заголовок

  print "Content-type: text/htmln";
print "Set-Cookie: username = aaa13; expires = Friday ,31-Dec-99 23:59:59
GMT; path = / win / internet / html /; domain = citforum.ru; nn ";

Щоб прочитати скриптом значення cookie, яке було встановлено раніше, і відповідним чином виконати скрипт, використовується змінна оточення HTTP_COOKIE. На Perl це буде виглядати так:

  $cookie = $ENV{'HTTP_COOKIE'};

При використанні SSI для перегляду значення cookie можна застосувати директиву:

  <!--#echo var="HTTP_COOKIE"-->

Установка декількох cookie одночасно.

Як за допомогою HTML, так і за допомогою скриптів можна встановлювати декілька cookie разом:

HTML:

 <META HTTP-EQUIV = "Set-Cookie" CONTENT = "NAME = value; EXPIRES = date;
		 DOMAIN=domain_name; PATH=path; SECURE">
<META HTTP-EQUIV = "Set-Cookie" CONTENT = "NAME = value; EXPIRES = date;
		 DOMAIN=domain_name; PATH=path; SECURE">

Perl/CGI:

  print "Content-type: text/htmln";
  print "Set-Cookie: NAME=value; EXPIRES=date; PATH=path;
		 DOMAIN=domain_name; SECUREn";
  print "Set-Cookie: NAME=value; EXPIRES=date; PATH=path;
		 DOMAIN=domain_name; SECUREnn";

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


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

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

Ваш отзыв

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

*

*