iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
自我挑戰組

今晚我想來點 Ruby on Rails 系列 第 18

<Day 18>今晚我想來點 SESSION

講到 session 一定要配 cookie

什麼是 cookie ?

瀏覽器每次打出 Http request的時後,瀏覽器都會發送相對應的 cookie 資料到伺服器。它的保存期限可以任意設定,如果你不主動清除的話就會一直保留在你的瀏覽器裡面,下次再重新登入網頁也是會存在,就算你關掉電腦也是一樣。

什麼是 session ?

在無狀態的 HTTP 協議下,伺服器記錄使用者的狀態時用於標記使用者的機制。當你關掉網頁,session 就會消失,但其實並不是真的消失,而是你的 session ID 變了,而就算你沒有關掉網頁,過一陣子之後也會被刪除。

對於 web 開發 cookie, session 都是通用的,不管你是 java 還是 rails。 cookie 大家都知道是儲存在瀏覽器裡面。 session 你可以理解為一個使用者在訪問網站期間,瀏覽器儲存關於這個用戶的資訊,使用者與使用者都有不一樣的 session 。session 儲存是由伺服器負責,一般都是利用 cookie 在瀏覽器上存一個 session_id,然後每請求依照所儲存的 session_id 尋找相對應的 session。

之所以有session是因為...

Session 會存在不是沒有原因的,因為伺服器和瀏覽器並不會一直保持連線狀態,你的瀏覽器跟伺服器也不會一直更新狀態,所以伺服器並不知道瀏覽器當下的狀態。因此網站開發者,運用 Session 這個機制來解決這問題。

來說個鹹酥雞攤的小故事

Session 的機制就像是你去鹹酥雞店點了雞排,因為客人很多老闆發給你一張號碼牌,在等的時間你到附近叫了飲料,回來之後老闆也不知道你是誰。所以如果你想拿雞排就得靠老闆給你的這張號碼牌,去跟老闆領雞排,老闆會根據這號碼牌確認你是顧客也可以知道你點了什麼東西,然後可以給你屬於你的雞排。


上一篇
<Day 17>今晚我想來點 route
下一篇
<Day 19>在 ruby 的世界裡“繼承”是什麼意思?
系列文
今晚我想來點 Ruby on Rails 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
jrnalts
iT邦新手 5 級 ‧ 2020-09-25 20:00:29

想吃雞排了!/images/emoticon/emoticon71.gif

我要留言

立即登入留言