Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11650
Последний выпуск: 19.06.2015

Введение в 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/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"-->

Установка нескольких 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/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";

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
11 апреля 2006, 21:45:26
Какието лаги с датой!
Такой вопрос: Дата в любом формате?
А то в IE работает только с одним "нестандартным" форматом..
Помогите кто Разрулил!)
2.
Аноним
Мне нравитсяМне не нравится
3 апреля 2006, 18:19:09
Маша, установи просто EXPIRE=date();
где date() - настоящее время.
3.
Аноним
Мне нравитсяМне не нравится
20 января 2006, 23:33:44
А мне нужно эти самые cookies удалить, что бы я могла поьзоваться форумом, но представляю как это зделать! Подскажите пожалуйста.
4.
Аноним
Мне нравитсяМне не нравится
19 января 2006, 15:51:51
У меня проблема схожая с пользователем Филлипом:

Не ставятся куки (cookies) на IE6 использую setcookies!!!!!!!!

Я обнаружил что куки не ставится на мой IE6, проверил на NN, Mozilla,
Opera - везде работает.

С других сайтов куки в IE устанавливает, через локальный апач данный скрипт
также работает!
В Privacy стоит Accept All Cookies.

Использую самый простой скрипт

<?
setcookie ("cookiescheck", "yes", time()+36000);
print "!!!";
?>
5.
Аноним
Мне нравитсяМне не нравится
3 ноября 2005, 19:15:41
Нормально, для начала пойдет :)
6.
Аноним
Мне нравитсяМне не нравится
25 июля 2005, 12:54:27
Проблема в следующем. Есть некий интернет магазин. Всё там работает и у всех компьютеров в сети, кроме одного. Не могу понять почему, но именно на нем не сохраняются кукисы. Перепробовал всё и в свойствах обозревателя поставил "принимать все кукисы" и объём папки сделал 200 метров - не работает и всё. Что можете подсказать ? Заранее благодарю.
p.s. У меня такое впечатление, что это может сама винда глючить ?! :(
7.
Аноним
Мне нравитсяМне не нравится
8 мая 2005, 20:37:12
как написать код сохранения COOKIE в VB.NET ?
8.
Аноним
Мне нравитсяМне не нравится
24 февраля 2005, 11:07:03
Куки можно добавлять/изменять/удалять из JavaScript
9.
Аноним
Мне нравитсяМне не нравится
24 февраля 2005, 10:49:13
Все это хороше и красиво.А что делать,когда попытка поставить куку указанными методами(или восспользоватья ее содержанием) не представляется возможнным по причине отказа хостера провести серверные включения или ограничить оные
10.
Аноним
Мне нравитсяМне не нравится
7 декабря 2004, 16:44:48
> несколько не понятно, зачем они нужны
Для хранения временной информации.

По поводу паролей - это, имхо - пребор.
Как минимум - можно сохранять номер сессии PHP у клиента,
а на сервере с его помощью, проверять данные пользователя.
Разумеется, и здесь надо подумать об безопасности: сделать, например, такую авторизацию: у клиента такой-то IP, такой-то браузер, и он предоставил номер такой-то сессии - похож на своего. ;)
11.
Аноним
Мне нравитсяМне не нравится
27 октября 2004, 04:31:50
Что тут не понятного? Все понятнор наеписано что с ними делать - вход в почтовый акканунт например, имя пользователя сохраняется там, магазин - количество и сам товар тоже сохраняются, а затем удалются если оформил покупку, подсчет посетителей - чтоб знать что ты уже был седня и засчитать тебя как хит-счет
12.
Аноним
Мне нравитсяМне не нравится
10 сентября 2004, 17:04:21
Ммм...несколько не понятно, зачем они нужны и что с ними можно делать)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог