Ruby CGI Cookie 学习笔记

什么是 Cookie?

Cookie 是一种小型文本文件,可以与用户的 Web 浏览器一起发送和存储在用户的计算机上。当用户浏览网站时,Web 服务器可以将 Cookie 用于跟踪用户的活动并为其提供特定服务。

Cookie 可以存储有关用户的信息,例如用户名、购物车中的商品、偏好设置等。当用户访问同一网站时,服务器可以使用该信息来提供个性化的体验。

Ruby CGI 中的 Cookie

在 Ruby 中,可以使用 CGI 库来处理 Web 请求和响应。CGI 库提供了一种方便的方式来读取和写入 Cookie。

创建 Cookie

以下代码演示了如何创建一个名为 user_name 的 Cookie,并将其值设置为 Alice

rubyCopy Code
require "cgi" cookie = CGI::Cookie.new("name" => "user_name", "value" => "Alice")

发送 Cookie

要将 Cookie 发送回用户的浏览器,可以将其添加到响应头中。以下代码演示了如何将 Cookie 添加到响应头中:

rubyCopy Code
require "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 Code
require "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 对象的数组。