Войти
VTEM SlideshowVTEM SlideshowVTEM Slideshow


Cookies и Perl

 

Что такое cookie?

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

Cookie это небольшая доза информации, которую сервер передает пользователю. Клиент (броузер) будет хранить эту информацию и передавать ее серверу с каждым запросом как часть HTTP заголовка. Некоторые cookie хранятся в течение одной сессии, они удаляются после закрытия браузера. Другие, установленные на некоторый период, записываются в специальный файл. Обычно этот файл называют - 'cookie.txt'.

Что можно делать с помощью cookie?

Сами по себе cookies не делают ничего, это только опредиленная информация. Однако, веб-сервер может на содержащуюся в cookies информацию. Например, в случае авторизованного доступа к чему то через WWW., в cookies сохраняется логин и пароль в течение этой сессии, что позволяет не вводить данные при запросе каждого паролированого документа. Другой пример:  это когда cookies могут использоваться для построения персонализированных страниц. Такое встречается чаще всего - на какомто сервере Вас просят ввести имя, и каждый раз, когда пользователь посещает первую страницу сервера, Вас предупреждают что-то типа - Hello, your_name. На использование cookies чаще делают функцию оформления заказа в онлайн - магазинах, в частности, в Амазоне, такая виртуальная корзина, как в реальном супермаркете. Самые низкие цены на качественный и надежный хостинг сайтов в Украине!!!

Какие браузеры поддерживают механизм cookies?

Не все, но однако самые популярные поддерживают. Точно знаю, что Netscape (с самой первой версии), Microsoft IE (3 и 4 - точно, про предыдущие как то  не знаю), 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"><hr width="1" style="width: 1px;" />

Установка cookie с использованием Perl/CGI.

Другой способ настроить cookie - при помощи серверного скрипта. На Perl это будет смотреться примерно так: перед тем как выдать серверный ответ генерируется HTTP заголовок

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

Чтобы прочитать скриптом значение cookie, которое установлено ранее, и опредиленным образом выполнить скрипт, используется переменная окружения HTTP_COOKIE. На Perl это обычно выглядит так:

  $cookie = $ENV{'HTTP_COOKIE'};

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

  <!--#echo var="HTTP_COOKIE"--><hr width="1" style="width: 1px;" />

Установка нескольких 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">
</pre>
<p>Perl/CGI:</p>
<pre>  print "Content-type: text/html\n";
  print "Set-Cookie: NAME=value; EXPIRES=date; PATH=path;
		 DOMAIN=domain_name; SECURE\n";
  print "Set-Cookie: NAME=value; EXPIRES=date; PATH=path;
		 DOMAIN=domain_name; SECURE\n\n";
</pre>"</pre>"

Hosting tools

Who's Online

Сейчас 15 гостей и ни одного зарегистрированного пользователя на сайте