English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby 基础教程

Ruby 高级教程

Cookie CGI Ruby

Протокол HTTP является протоколом без состояния. Но для коммерческого веб-сайта он нуждается в поддержании информации о сеансе между различными страницами.

Если пользователю нужно перейти на новую страницу в процессе регистрации на сайте, но при этом не терять ранее введенную информацию.

В этой ситуации Cookie很好地解决了我们的问题.

Как работает Cookie?

Practически все веб-дизайнеры используют Cookie при разработке веб-сайтов, потому что они хотят предоставить пользователям более удобную и человеческую среду для просмотра веб-сайта, а также более точно собирать информацию о посетителях.

Запись и чтение

Коллекция Cookies является集合,ассоциированной с объектами Response и Request, использование требует добавления перед ними Response или Request.

Синтаксис для отправки Cookies клиенту обычно такой:}}

Когда устанавливается набор Cookies, который не существует, он создается на клиенте, если Cookies уже существует, то он будет заменен. Поскольку Cookies отправляются как часть заголовков HTTP-транспорта клиенту, поэтому код для отправки Cookies клиенту обычно ставится перед метками HTML-файла, отправляемого браузеру.

Если пользователь хочет читать Cookies, то он должен использовать набор Cookies объекта Request, его использование方法是: следует отметить, что только до того, как сервер не начнет передавать данные браузеру, браузер может обмениваться данными набора Cookies с сервером, как только браузер начнет принимать данные, переданные сервером, обмен данными Cookies останавливается, чтобы избежать ошибок, следует добавить в программу перед response.Buffer=True.

Свойства набора

  • 1. Атрибут Expires:Этот атрибут используется для установки срока действия Cookies, в течение которого, если открыть страницу, можно вызвать сохраненные Cookies, после истечения этого срока Cookies автоматически удаляются. Например: Устанавливает срок действия Cookies до 1 апреля 2004 года, по истечении срока они автоматически удаляются. Если для Cookies не установлено значение срока действия, то их жизнь начинается с открытия браузера и заканчивается с его закрытием, после каждого выполнения жизнь заканчивается, и при следующем выполнении начинается заново.

  • 2. Атрибут Domain:Этот атрибут определяет уникальность передачи данных Cookies. Если передается только один Cookies для _blank">首页搜狐, то можно использовать следующий код:

  • 3. Атрибут Path:Определяет, что Cookies будут отправляться только на указанные запросы по пути, если атрибут Path не установлен, то используется defaultManager_path приложения.

  • 4. Атрибут Secure:Определяет, могут ли пользователи читать Cookies.

  • 5. Name=Value : Cookies устанавливаются и ищутся в виде пар ключ=значение.

Обработка Cookies в Ruby

Вы можете создать объект, называемый cookie, и хранить текстовую информацию, отправить эту информацию браузеру, чтобы установить заголовок cookie с помощью CGI.out:

Онлайн пример

#!/usr/bin/ruby
 
require "cgi"
cgi = CGI.new("html4")
cookie = CGI::Cookie.new("name" => "mycookie",
                         "value" => "Zara Ali"
                         "expires" => Time.now + 3600
cgi.out('cookie' => cookie) do
   cgi.head + cgi.body { "Cookie stored" }
end

Далее мы возвращаемся на эту страницу и находим значение cookie, как показано ниже:

Онлайн пример

#!/usr/bin/ruby
 
require "cgi"
cgi = CGI.new("html4")
cookie = cgi.cookies['mycookie']
cgi.out('cookie' => cookie) do
   cgi.head + cgi.body { cookie[0] }
end

При создании CGI::Cookie объект содержит следующие параметры:

ПараметрыОписание
nameУказать имя cookie.
valueУказать значение cookie.
expireУказать срок действия cookie.
pathУказать серверный путь cookie.
domainУказать домен cookie.
secureУказать, следует ли передавать cookie через безопасное HTTPS-соединение.