Ruby CGI Cookieshtml
HTTP協議是無狀態協議。但對於一個商業網站,它須要保持不一樣的頁面間的會話信息。瀏覽器
如用戶在網站註冊過程當中須要跳轉頁面,但又要保證以前填寫的信息部丟失。安全
這種狀況下 Cookie 很好的幫咱們解決了問題。ruby
Cookie 是如何工做的?服務器
幾乎全部的網站設計者在進行網站設計時都使用了Cookie,由於他們都想給瀏覽網站的用戶提供一個更友好的、人文化的瀏覽環境,同時也能更加準確地收集訪問者的信息。cookie
寫入和讀取網絡
Cookies集合是附屬於Response對象及Request對象的數據集合,使用時須要在前面加上Response或Request。dom
用於給客戶機發送Cookies的語法一般爲:網站
當給不存在的Cookies集合設置時,就會在客戶機建立,若是該Cookies己存在,則會被代替。因爲Cookies是做爲HTTP傳輸的頭信息的一部分發給客戶機的,因此向客戶機發送Cookies的代碼通常放在發送給瀏覽器的HTML文件的標記以前。ui
若是用戶要讀取Cookies,則必須使用Request對象的Cookies集合,其使用方法是: 須要注意的是,只有在服務器未被下載任何數據給瀏覽器前,瀏覽器才能與Server進行Cookies集合的數據交換,一旦瀏覽器開始接收Server所下載的數據,Cookies的數據交換則中止,爲了不錯誤,要在程序和前面加上response.Buffer=True。
集合的屬性
1.Expires屬性:此屬性用來給Cookies設置一個期限,在期限內只要打開網頁就能夠調用被保存的Cookies,若是過了此期限Cookies就自動被刪除。如: 設定Cookies的有效期到2004年4月1日,到時將自動刪除。若是一個Cookies沒有設定有效期,則其生命週期從打開瀏覽器開始,到關閉瀏覽器結束,每次運行後生命週期將結束,下次運行將從新開始。
2.Domain屬性:這個屬性定義了Cookies傳送數據的惟一性。若只將某Cookies傳送給_blank">搜狐主頁時,則可以使用以下代碼:
3.Path屬性:定義了Cookies只發給指定的路徑請求,若是Path屬性沒有被設置,則使用應用軟件的缺省路徑。
4.Secure屬性:指定Cookies可否被用戶讀取。
五、Name=Value : Cookies是以鍵值對的形式進行設置和檢索的。
Ruby 中處理Cookies
你能夠建立一個名爲 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對象實例化時包含如下參數:
參數描述
name規定 cookie 的名稱。
value規定 cookie 的值。
expire規定 cookie 的有效期。
path規定 cookie 的服務器路徑。
domain規定 cookie 的域名。
secure規定是否經過安全的 HTTPS 鏈接來傳輸 cookie。
(編輯:雷林鵬 來源:網絡)