rails Session的大小事

Session是Rack::Session::Abstract::SessionHash實例,其父類別為Hash

用session[:key]的方式去get or set Session
session[:user] = "ueo_sean"

刪除Session裡面某筆資料的時候

session[:key] = nil

刪除整個Session的時候用reset_session

Session storage

rails預設採用Cookies來儲存Session,我們可以稱為Cookies session storage或是cookie-based session
Session的儲存流程有分兩種,一種是預設的將Session儲存在Cookies,另一種是將Sesssion資料儲存在server上
儲存在Cookies上的Session會經過加密,只有server會知道如何解密,如果將Session儲存在server端的話,只會
在Cookies上儲存Session id,sever在收到client端的Cookies之後,再拿裡面的SessionId來Session table
比對然後取出資料。

儲存在Cookies上的好處是可以減少對伺服器的負擔,也不用固定一段時間去清除它,但缺點就是檔案大小最多4K,而且
還是可以反編碼也有可能被破解,安全性較低

參考資料
openhome 使用 session
openhome Session原理
"Ruby on Rails 實戰聖經"
Web 技術中的 Session 是什麼?
How Rails Sessions Work
Rails102 Cookies & Session

comments powered by Disqus