Книга: Программирование на языке Ruby
19.1.3. Куки
19.1.3. Куки
Мы уже упоминали, что HTTP — протокол без состояния. Это означает, что после того как сервер закончил обрабатывать запрос, он не может сказать, пришел ли следующий запрос от того же или какого-либо другого браузера. Тут-то и приходят на помощь куки (cookies) — способ, быть может, несколько грубоватый, сохранить состояние между последовательными запросами от одного и того же браузера.
Механизм куков работает следующим образом. Сервер посылает браузеру команду (в виде HTTP-заголовка) с просьбой сохранить пару имя-значение. Данные могут храниться в памяти или на диске. При каждом последующем запросе к любому серверу из домена, указанного в куке, браузер пошлет сохраненные данные в HTTP-заголовке.
Можно, конечно, читать и формировать куки вручную, но, как вы, наверное, догадались, в этом нет необходимости, поскольку библиотека CGI предоставляет класс Cookie
, который инкапсулирует все технические детали.
require "cgi"
lastacc = CGI::Cookie.new("kabhi",
"lastaccess=#{Time.now.to_s}")
cgi = CGI.new("html3")
if cgi.cookies.size < 1
cgi.out("cookie" => lastacc) do
"Hit refresh for a lovely cookie"
end
else
cgi.out("cookie" => lastacc) do
cgi.html do
"Hi, you were last here at: "+
"#{cgi.cookies['kabhi'].join.split(' = ')[1]}"
end
end
end
Здесь создается кук "kabhi"
, ключ которого "lastaccess"
содержит текущее время. Если у браузера уже был такой кук, то выводится его значение. Куки хранятся в хэше, который является переменной экземпляра в классе CGI. Каждый кук может содержать несколько пар ключ-значение, поэтому при доступе к куку по имени вы получаете массив.
- Что такое куки-стаффинг?
- Куки является единственным способом отслеживания партнерского трафика и конверсий?
- 3.8. «Флэш-моб» – лекарство от скуки или интригующая рекламная акция?
- Что такое куки и почему они важны?
- Следует ли мне избегать партнерских программ с коротким временем жизни куки?
- Где я могу найти информацию для дальнейшего обучения?
- I. Основы
- III. Темы для углубленного изучения
- Как вирус попадает в компьютер
- У меня будет 100 %-ный пассивный доход?
- Что такое партнерский маркетинг?
- 18.2.9. Библиотека Open-URI