- Ruby 基础
- Ruby - 首页
- Ruby - 概述
- Ruby - 环境搭建
- Ruby - 语法
- Ruby - 类和对象
- Ruby - 变量
- Ruby - 运算符
- Ruby - 注释
- Ruby - IF...ELSE
- Ruby - 循环
- Ruby - 方法
- Ruby - 块
- Ruby - 模块
- Ruby - 字符串
- Ruby - 数组
- Ruby - 哈希表
- Ruby - 日期与时间
- Ruby - 范围
- Ruby - 迭代器
- Ruby - 文件 I/O
- Ruby - 异常
Ruby - CGI Cookie
HTTP 协议是一种无状态协议。但对于商业网站来说,需要在不同页面之间维护会话信息。例如,用户注册需要经过多个页面才能完成。但是如何跨所有网页维护用户的会话信息呢?
在许多情况下,使用 Cookie 是记住和跟踪偏好、购买、佣金以及其他改善访客体验或网站统计信息所需的最有效方法。
工作原理?
您的服务器以 Cookie 的形式向访问者的浏览器发送一些数据。浏览器可能会接受 Cookie。如果接受,它将作为纯文本记录存储在访问者的硬盘驱动器上。现在,当访问者访问您网站上的另一个页面时,Cookie 可用于检索。检索后,您的服务器就知道/记住存储的内容。
Cookie 是五个变长字段的纯文本数据记录:
Expires - Cookie 将过期的时间。如果为空,则 Cookie 将在访问者退出浏览器时过期。
Domain - 您网站的域名。
Path - 设置 Cookie 的目录或网页的路径。如果您想从任何目录或页面检索 Cookie,则可以为空。
Secure - 如果此字段包含单词“secure”,则 Cookie 只能使用安全服务器检索。如果此字段为空,则不存在此类限制。
Name = Value - Cookie 以键值对的形式设置和检索。
在 Ruby 中处理 Cookie
您可以创建一个命名 Cookie 对象并在其中存储任何文本信息。要将其发送到浏览器,请在对 *CGI.out* 的调用中设置一个 **cookie** 头。
#!/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
Cookie 使用 CGI::Cookie 类的单独对象表示,包含以下访问器:
| 属性 | 返回值 |
|---|---|
| name | Cookie 名称 |
| value | Cookie 值数组 |
| path | Cookie 的路径 |
| domain | 域名 |
| expires | 过期时间(作为 Time 对象) |
| secure | 如果为安全 Cookie 则为 True |
ruby_web_applications.htm
广告