Ruby-cgi-cookies
提供:Dev Guides
Ruby-CGI Cookie
HTTPプロトコルはステートレスプロトコルです。 ただし、商用Webサイトの場合、異なるページ間でセッション情報を維持する必要があります。 たとえば、多くのページを完了すると、1人のユーザー登録が終了します。 しかし、すべてのWebページにわたってユーザーのセッション情報を維持する方法。
多くの場合、Cookieの使用は、ユーザーの利便性やサイトの統計情報を改善するために必要な設定、購入、手数料、その他の情報を記憶および追跡する最も効率的な方法です。
使い方?
サーバーは、Cookieの形式で訪問者のブラウザにデータを送信します。 ブラウザはCookieを受け入れる場合があります。 存在する場合、訪問者のハードドライブにプレーンテキストレコードとして保存されます。 これで、訪問者がサイトの別のページに到達すると、Cookieを取得できます。 取得されると、サーバーは保存された内容を認識/記憶します。
クッキーは5つの可変長フィールドのプレーンテキストデータレコードです-
- 有効期限-Cookieの有効期限が切れる日付。 これが空白の場合、訪問者がブラウザを終了すると、Cookieは期限切れになります。
- ドメイン-サイトのドメイン名。
- Path -Cookieを設定するディレクトリまたはWebページへのパス。 任意のディレクトリまたはページからCookieを取得する場合、これは空白になる場合があります。
- Secure -このフィールドに「secure」という単語が含まれている場合、Cookieはセキュアサーバーでのみ取得できます。 このフィールドが空白の場合、そのような制限はありません。
- 名前=値-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
- クッキーは、次のアクセサを含むクラスCGI
- Cookieの個別のオブジェクトを使用して表されます-
Attribute | Returned Value |
---|---|
name | Cookie name |
value | An array of cookie values |
path | The cookie’s path |
domain | The domain |
expires | The expiration time (as a Time object) |
secure | True if secure cookie |