[Rails] 分辨 cookie and session

在技術面試上
常常被問到的問題之一,要你區分 Cookie 和 Session ?
一般只知道
Cookie 就是存在客戶端(Client)
Session 存在服務器端

每次發起 Http 請求時,客户端都會發送相應的 cookie 信息到服務端。
它的过期时间可以任意设置,如果你不主动清除它,大部分會一直保留著
即便你關閉了電腦

什麼是 session ?

在無狀態的 HTTP 協議下,服務端記錄用戶狀態時用於標示具體用户的機制。
當你關調網頁,session 就會消失
其實並不是真的消失,而是你的 session ID 變了!
而舊的變成無主狀態存在服務器,過一陣子就會被刪除!

用更簡單的方式解釋,兩者差異?

今天舉辦一個講座,
一位講師,和 50 位學員
今天課堂上有問題,舉手發問,老師立即性講解,寫在黑板上,這就是一種 session
因為下課後,板哥就會把解答擦掉了

假設,今天講座提供一個服務,讓你寫下問題和大名!
過了幾週,一上課時,老師看到你,就認出你,還解了你上次的疑惑
這種服務就是 cookie 的表現

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×