Ruby CGI Cookie 学习笔记
什么是 Cookie?
Cookie 是一种小型文本文件,可以与用户的 Web 浏览器一起发送和存储在用户的计算机上。当用户浏览网站时,Web 服务器可以将 Cookie 用于跟踪用户的活动并为其提供特定服务。
Cookie 可以存储有关用户的信息,例如用户名、购物车中的商品、偏好设置等。当用户访问同一网站时,服务器可以使用该信息来提供个性化的体验。
Ruby CGI 中的 Cookie
在 Ruby 中,可以使用 CGI 库来处理 Web 请求和响应。CGI 库提供了一种方便的方式来读取和写入 Cookie。
创建 Cookie
以下代码演示了如何创建一个名为 user_name
的 Cookie,并将其值设置为 Alice
:
rubyCopy Coderequire "cgi"
cookie = CGI::Cookie.new("name" => "user_name", "value" => "Alice")
发送 Cookie
要将 Cookie 发送回用户的浏览器,可以将其添加到响应头中。以下代码演示了如何将 Cookie 添加到响应头中:
rubyCopy Coderequire "cgi"
cookie = CGI::Cookie.new("name" => "user_name", "value" => "Alice")
puts "Content-Type: text/html"
puts cookie
puts
puts "<html><body><h1>Hello, #{cookie[:value]}!</h1></body></html>"
在上面的例子中,响应头中的 Set-Cookie
字段包含了 user_name
Cookie 的信息。
从请求中读取 Cookie
要从请求中读取 Cookie,可以使用 CGI 库的 Cookie
类。以下代码演示了如何从请求中读取名为 user_name
的 Cookie:
rubyCopy Coderequire "cgi"
cgi = CGI.new
user_name_cookie = cgi.cookies["user_name"]
if user_name_cookie
user_name = user_name_cookie.value
else
user_name = "Anonymous"
end
puts "Content-Type: text/html"
puts
puts "<html><body><h1>Hello, #{user_name}!</h1></body></html>"
在上面的例子中,CGI#cookies
方法返回一个 Hash,其中键是 Cookie 的名称,值是 CGI::Cookie
对象的数组。