Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4-1 Електрона комерція / 27 марта КУКИ.docx
Скачиваний:
61
Добавлен:
02.02.2021
Размер:
79.52 Кб
Скачать

Назначение cookies

Cookies - это текстовая информация небольшого объема, которая сохраняется на компьютере пользователя по запросу WEB сервера и предается ему при повторных посещениях. Основным назначением cookies является:

Существуют три способа создания cookie:

  1. При помощи поля в заголовке HTTP ответа. В этом случае сервер передает в HTTP ответе одно или несколько полей Set-Cookie: <определение cookies> . Пример заголовка HTTP ответа сервера:

HTTP/1.0 200 OK

Date: Thu, 22 Dec 2005 06:41:30 GMT

Expires: Thu, 01 Jan 1970 00:00:01 GMT

Content-type: image/gif

Set-Cookie: ruid=AjkABppKqkPzAAAAAZEAnFyrv; path=/; domain=.rambler.ru; expires=Sun, 20-Dec-15 06:41:30 GMT

 При помощи META тега в заголовке HTML страницы. Тег имеет вид <META HTTP-EQUIV="Set-CookieCONTENT=" определение cookies", Данный тег эквивалентен полю Set-Cookie в заголовке HTTP ответа;

  1. При помощи скриптов  HTML страницы. В JavaScript, для доступа к  cookie предусмотрено свойство document.cookie. Рассмотрим простейший скрипт, который выводит на странице текущее значение document.cookie, а затем создает cookie с именем «test-cookie-1»

<html>

<head>

<SCRIPT LANGUAGE="JavaScript">

 document.write("Cookie text = '" + document.cookie+"'"); 

 document.cookie = "data=test-cookie-1-data; expires=Thursday, 14-Feb-2007 18:49:21 GMT";

</script>

</head>

<body>

</body>

</html>

Первый запуск примера должен отобразить пустую строку, второй и последующие – строку «data=test-cookie-1-data». Файл с данным примером прилагается к статье, имя файла - cookie-1.htm. Пример еще пригодится для тестирования анализатора cookies, речь о котором пойдет далее.

Работа куки [править]Установка куки

Запрашивая страницу, браузер отправляет веб-серверу короткий текст с HTTP-запросом. Например, для доступа к странице http://www.example.org/index.html, браузер отправляет на сервер www.example.org следующий запрос:

GET /index.html HTTP/1.1 Host: www.example.org

браузер

сервер

Сервер отвечает, отправляя запрашиваемую страницу вместе с текстом, содержащим HTTP-ответ. Там может содержаться указание браузеру сохранить куки:

HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value   (содержимое страницы)

браузер

сервер

Строка Set-cookie отправляется лишь тогда, когда сервер желает, чтобы браузер сохранил куки. В этом случае, если куки поддерживаются браузером и их приём включён, браузер запоминает строку name=value (имя = значение) и отправляет её обратно серверу с каждым последующим запросом. Например, при запросе следующей страницы http://www.example.org/spec.html браузер пошлёт серверу www.example.org следующий запрос:

GET /spec.html HTTP/1.1 Host: www.example.org Cookie: name=value Accept: */*  

браузер

сервер

Этот запрос отличается от первого запроса тем, что содержит строку, которую сервер отправил браузеру ранее. Таким образом, сервер узна́ет, что этот запрос связан с предыдущим. Сервер отвечает, отправляя запрашиваемую страницу и, возможно, добавив новые куки.

Значение куки может быть изменено сервером путём отправления новых строк Set-Cookie: name=newvalue. После этого браузер заменяет старое куки с тем же name на новую строку.

Строка Set-Cookie, как правило, добавляется к HTTP-ответу не самим HTTP-сервером, а CGI-программой, работающей вместе с ним. HTTP-сервер только отправляет браузеру результат работы такой программы.

Куки также могут устанавливаться программами на языках типа JavaScript, встроенными в текст страниц, или аналогичными скриптами, работающими в браузере. В JavaScript для этого используется объект document.cookie. Например, document.cookie = "temperature=20" создаст куки под именем «temperature» и значением 20.[17]

Атрибуты куки

NAME=VALUE - строка символов, исключая перевод строки, запятые и пробелы. NAME-имя cookie, VALUE - значение. Не допускается использование двоеточия, запятой и пробела.

expires=DATE - время хранения cookie, т.е. вместо DATE должна стоять дата в формате "expires=Monday, DD-Mon-YYYY HH:MM:SS GMT", после которой истекает время хранения cookie. Если этот атрибут не указан, то cookie хранится в течение одного сеанса, до закрытия броузера.

domain=DOMAIN_NAME - домен, для которого значение cookie действительно. Например, "domain=cit-forum.com". В этом случае значение cookie будет действительно и для домена cit-forum.com, и для www.cit-forum.com. Если этот атрибут опущен, то по умолчанию используется доменное имя сервера, на котором было задано значение cookie.

path=PATH - этот атрибут устанавливает подмножество документов, для которых действительно значение cookie. Например, указание "path=/win" приведет к тому, что значение cookie будет действительно для множества документов в директории /win/, в директории /wings/ и файлов в текущей директории с именами типа wind.html и windows.shtml. Для того, чтобы cookie отсылались при каждом запросе к серверу, необходимо указать корневой каталог сервера, например, "path=/".

Если этот атрибут не указан, то значение cookie распространяется только на документы в той же директории, что и документ, в котором было установлено значение cookie.

secure - если стоит этот маркер, то информация cookie пересылается только через HTTPS (HTTP с использованием SSL - Secure Socket Level), в защищенном режиме. Если этот маркер не указан, то информация пересылается обычным способом.

Образец HTTP-ответа google.com, содержащего куки с атрибутами.

Соседние файлы в папке 4-1 Електрона комерція
  • #
    02.02.2021501.21 Кб6111.1 singleton_0001.wmv
  • #
    02.02.20219.48 Mб6112. изменения в юзерах. создание внешних ключей_0001.wmv
  • #
    02.02.20212.92 Mб6112.1 изменения в юзерах. создание внешних ключей_0001.wmv
  • #
    02.02.202110.96 Mб612 Создание базы и таблицы юзеров_0001.wmv
  • #
  • #
    02.02.202179.52 Кб6127 марта КУКИ.docx
  • #
    02.02.20213.88 Mб613 создание таблицы товаров_0001.wmv
  • #
    02.02.20215.45 Mб614 Создание таблицы Cart_0001.wmv
  • #
    02.02.202110.37 Mб615 создание домена проекта, основы работы с денвером_0001.wmv
  • #
    02.02.20216.75 Mб616 защита папки конфигов_0001.wmv
  • #
    02.02.20218.13 Mб617 создание и подключение шаблона главной страницы_0001.wmv