Cookies -
небольшие файлы сохраняемые на машине клиента, позволяющие хранить персональную
информацию для каждого пользователя на стороне клиента. В Perl для работы с
Cookies используется модуль CGI::Cookie
С помощью
Cookies Вы можете сохранять на стороне клиента информацию ввиде ключ-занчение. В
какой-то степени Cookies можно сравнивать с передачей параметров запроса методом
POST, но передаваемые значения в случае Cookies будут храниться на компьютере
пользователя, что позволяет идентифицировать любого клиента, зашедшего на Ваш
сайт второй или более раз.
В основном
Cookies применяются для аутентификации пользователя ресурса. Т.е. в Cookies
можно хранить имя пользователя, пароль, или идентификатор сессии пользователя.
Таким образом, зарегистрированный на вашем сайте пользователь может входить в
свою область идентификации не вводя каждый раз пароль.
Единтефикация
пользователя, конечно, не единственное применение Cookies. Уважаемый читатель
может пользоваться Cookies для каких-то своих, ему ведомых целей.
Итак, как
можно (и нужно) работать с Cookies на Perl?
Во-первых,
для работы необходимо подключить модуль:
use
CGI::Cookie;
Этот модуль позволит
Вам получить доступ для манипуляций с Cookies.
Вторым шагом
может служить запись Cookies: Сначала надо создать Cookie:
$c = new CGI::Cookie(-name
=> 'SOMENAME',
-value => 'SOMEVALUE',
-expires =>
'+3M',
-domain => '.someserver.com',
-path => '/cgi-bin'
-secure =>
1
);
Ключи
-name и -value передают пользователю данные которые Вы хотите
записать пользователю в формате Ключ - Значение соответственно. Ключ
-expires указывает время жизни Cookie на машине пользователя. В данном
примере время жизни 3 месяца. Если время жизни устанавливается в ноль то Cookie
существует только тогда, когда запущен браузер и не записывается на диск. После
закрытия браузера такой Cookie аннулируется. Ключ -domain указывает
полное или частичное имя сервера, для которого Cookie имеет силу. Браузер
возвратит Cookie любому хосту, который соответствует полному или частичному
имени указанному в этом ключе. На-пример, если Вы укажете имя домена
.somesrver.com, то Cookie будет возвращено любому поддомену этого домена,
будь то www.somesrver.com или vasya.somesrver.com. Если же этот
ключ не определен, то будет установлено имя хоста по умолчанию, с которого был
записан Cookie. Ключ -path служит для указания пути к скриптам которые
используют этот Cookie. Если Вы указываете путь /cgi-bin, то все скрипты
в этом каталоге и в его подкаталогах получат Cookie, но скрипты расположенные в
других каталогах, не являющихся подкаталогами /cgi-bin этот Cookie не
получат. Если установлен ключ -secure, то Ваш Cookie будет
передаваться только по протоколу SSL. По обычному HTTP протоколу он передаваться
не будет.
Дальше
нобходимо передать созданный Cookie браузеру пользователя:
print
header(-cookie=>$c);
Теперь как
получить Cookie...
%cookies = fetch
CGI::Cookie;
В результате
этой операции мы получим хэш со значениями переданного от пользователя Cookie.
Далее мы можем манипулировать полученными значениями
$SOMECOOKIE =
$cookies{'SOMENAME'}->value;
После этой
операции переменная $SOMECOOKIE будет иметь значение 'SOMEVALUE'.
|