學習筆記 | 關於 Cookie、Session、Token

閱讀時間約 3 分鐘

延續先前的筆記,「網路請求」是瀏覽器和伺服器的溝通橋梁,目的是為了取得資料庫內的資源,除了 CORS 這種瀏覽器本身的阻擋機制,伺服器也會需要進行「身分驗證或授權」這道阻擋,並不是使用者有帶上 header 告知身分,就一定可以把資料 response 回來的。

像是最常見的會員資料,伺服器就必須確認你是會員本人,才會將你的訂單資訊、歷史訂單...等內容回傳過來,所以我們需要進行「登入」,告知伺服器:我就是會員本人啦

一般常見的身分驗證方式有以下三種:

  1. 使用者應該知道的資訊 ex:密碼
  2. 使用者持有的證件、憑證 ex:身分證、Token
  3. 使用者的身體特徵 ex:指紋

很顯然的,一般我們使用的會員登入,驗證的是「使用者應該知道的資訊」,但總不能每次要查看購物車內的商品或歷史訂單,就要重新進行驗證吧,所以登入以後的請求,就會改用「使用者持有的證件」,也就是 Token 這項令牌了

我聽過一句話,「技術的發明,是為了解決問題」,所以了解 Token 以前,也需要知道它為什麼而誕生吧?

這就需要從身分驗證的狀態來說了,先定義一下此時的「狀態」所代表的意思是:

  • 有狀態 ➜ 表示會保存關於使用者的信息、具有記憶性,能夠追蹤使用者的活動
  • 無狀態 ➜ 表示對處理過的事件並沒有記憶性,每個請求都是獨立的,因此也無法辨識這次的請求和上次的請求是否為同一個人


最初瀏覽器和伺服器驗證身分後,是透過瀏覽器的 Cookie 紀錄使用者的狀態,並在後續訪問資料時,帶著 Cookie 儲存的狀態去進行請求

raw-image

此時 Cookie 有很致命的問題是

1. 資料透明 ➜ 透明意味著完全公開,沒有任何加密動作,存在安全性問題

2. 網域限制 ➜ 無法跨網域共用 Cookie 所儲存的狀態訊息


因此開發者們轉而使用 Session 來記錄使用者狀態,Session 的存取方式基本上與 Cookie 相同,但狀態存取方改變為「伺服器」了

raw-image

伺服器會將使用者狀態打包成一個 ID,並將這個 ID 回傳給瀏覽器,瀏覽器要訪問後續資源時,就帶這個 ID 進行驗證,解決了 Cookie 資料透明和只能存取字串的問題


然而 Session 也有存在其他的問題

1. 只要瀏覽器關閉就會失效

  1. 狀態由伺服器存取,假設每次訪問到的伺服器不同,則伺服器之間又需要互相索取資料,消耗效能


因此 Token 就誕生啦!

raw-image

Session 已經解決資料裸奔的問題, Token 要解決的則是「無狀態」的身分驗證問題


Token 會在使用者進行身分驗證後,由伺服器將使用者狀態打包加密,再傳送給瀏覽器,成為一種瀏覽器向伺服器訪問資料時的通行證,也可以稱為金鑰或令牌


此時伺服器不再需要保留使用者狀態,只要確認 Token 的時效性,就可以進行身分驗證,也可以進行跨域的請求啦!就相當於去遊樂園,只要持有一日票券的使用者,都可以使用遊樂設施,是認票不認人的~



本篇筆記參考 深入解析 JWT:了解 Token 的運作與應用 整理而成

我是Amber,前端學習中,歡迎交流討論🧸

22會員
22內容數
留言0
查看全部
發表第一個留言支持創作者!
Amber hh的沙龍 的其他內容
那麼「我要什麼資料」就需要告訴伺服器特定的內容啦,舉例來說: 我要登入,就必須把「帳號」和「密碼」一起帶在請求內,發送給後端進行驗證
上篇記錄了關於 HTTP request 的筆記,這篇則是對於請求的回應紀錄~
上一篇【瀏覽器與伺服器是如何溝通的?】有說瀏覽器和伺服器的溝通橋樑是「網路請求」,這篇就來記錄一下,我目前學習到的網路請求是什麼~
身為一個非本科新手工程師,對於網路知識還是有許多疑惑之處,像是我在編輯器上寫了數十行的程式碼,那它們是怎麼透過終端機的指令被運行起來,讓我可以一邊開發一邊預覽結果呢?
時間真的過得好快,從2022五月的體驗營開始,到後來的切版直播班、JS直播班,將近一年的時間,現在都要從Vue直播班畢業了!
事情是這樣發生的,由於直播班第二週和第三週的作業內容很相似,於是我就把第二週的作業資料夾「複製」了一份,作為第三週的基底,並把第三週的作業內容完成後,準備上傳到一個新建的 week3 遠端 repository ...
那麼「我要什麼資料」就需要告訴伺服器特定的內容啦,舉例來說: 我要登入,就必須把「帳號」和「密碼」一起帶在請求內,發送給後端進行驗證
上篇記錄了關於 HTTP request 的筆記,這篇則是對於請求的回應紀錄~
上一篇【瀏覽器與伺服器是如何溝通的?】有說瀏覽器和伺服器的溝通橋樑是「網路請求」,這篇就來記錄一下,我目前學習到的網路請求是什麼~
身為一個非本科新手工程師,對於網路知識還是有許多疑惑之處,像是我在編輯器上寫了數十行的程式碼,那它們是怎麼透過終端機的指令被運行起來,讓我可以一邊開發一邊預覽結果呢?
時間真的過得好快,從2022五月的體驗營開始,到後來的切版直播班、JS直播班,將近一年的時間,現在都要從Vue直播班畢業了!
事情是這樣發生的,由於直播班第二週和第三週的作業內容很相似,於是我就把第二週的作業資料夾「複製」了一份,作為第三週的基底,並把第三週的作業內容完成後,準備上傳到一個新建的 week3 遠端 repository ...
你可能也想看
Google News 追蹤
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
Thumbnail
三個對話可以讓員工有更好的表現 “表達期待”對話 定義清楚工作完成的樣貌 告知為什麼要做這件事情 讓員工有所依循 “發展潛能”對話 你覺得自己目前的才能獲技巧,能夠在我們目前最重要的項目中提供那些貢獻 你認為針對目前進行中的項目,你有可能使用不同於他人的技巧來完成任務嗎 讓員工勇於嘗試 “得到認可”
Thumbnail
今天的筆記來自於「一場關於積極的練習」這本書,本書匯集了15本振奮人心力量的書籍,有點像是每本書籍的重點整理。我把這本書二次整理後,分享給各位讀者。這篇文章主要介紹的是卷二—「人際交往的學問」,原作者為美國的戴爾.卡內基。
Thumbnail
這個世代的開會人才需要什麼能力呢?如何讓會議更有效率進行? 若身為會議主持人的你,不知道如何面對情緒發言的與會者,或想避免會議上眾人雞同鴨講、把會議變成常跑馬拉松,歡迎參考以《唐鳳的破框思考力: 關於工作、學習與行動的方法》一書中唐鳳開會藝術所結晶出的本文。
Thumbnail
一袋15公斤的米、學習金、鴨蛋、牛奶及學習用品等,是學生持續學習的重要支持,疫情嚴峻時也不曾停止。 兒童的成長不曾停止,生活的挑戰也不曾停止。藉著每月的助學物資發放日,蒐集了助學生與家人們的話語,有對學習的渴望、對未來的期待、對生活的承擔,對貧窮的回應… 「我喜歡學習,但家裡很窮…」助學生D 她是家
Thumbnail
在偏遠的Prohut村莊,綠蘋果社區幼兒園是村莊唯一的學校。起因2017年台灣兒童神經內科醫師與兒童發展評估師對村莊兒童進行發展評估,發現2-6歲兒童在各項發展皆呈現落後情形。CSI-TAIWAN為能實質協助兒童的學前發展,因此與當地夥伴KAKO合作建立與長期資助綠蘋果幼兒園。。。。
Thumbnail
這次去參加《最親切的SEO入門教室》的讀書會。 感謝領讀人Tommy分享如何優化關鍵字、製作網站內容地圖、找到長尾關鍵字等內容,也謝謝願意讓我做成圖卡。 將圖書會摘要如下: 1. 由於SEO需要時間才能被Google收錄,開始可先搭配SEM付費搜尋廣告引流。
Thumbnail
我看《跟著考霸記筆記:教你在考試中通關的筆記學習法》:與其理解,不如記憶 身為臺灣規模最大的筆記社群「我愛寫筆記」創辦人,常有人會問我有關寫筆記的問題。特別是如何透過做筆記的方式,來順利通過各種競爭激烈的考試? 如果你也有類似的問題或困擾,那麼且讓我跟你推薦一本輕薄短小的好書《跟著考霸記筆記:教你在
Thumbnail
  這是我學習印尼文的第五週。   我發現印尼文的詞彙量十分精簡,一個單詞往往能表達許多意思。   例如:makan(音同嘛看)表示動詞的「吃」,但同時加上時間就會轉變成名詞或另一個動詞。   吃+早晨(pagi)=makan pagi(早飯或吃早飯);
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
Thumbnail
三個對話可以讓員工有更好的表現 “表達期待”對話 定義清楚工作完成的樣貌 告知為什麼要做這件事情 讓員工有所依循 “發展潛能”對話 你覺得自己目前的才能獲技巧,能夠在我們目前最重要的項目中提供那些貢獻 你認為針對目前進行中的項目,你有可能使用不同於他人的技巧來完成任務嗎 讓員工勇於嘗試 “得到認可”
Thumbnail
今天的筆記來自於「一場關於積極的練習」這本書,本書匯集了15本振奮人心力量的書籍,有點像是每本書籍的重點整理。我把這本書二次整理後,分享給各位讀者。這篇文章主要介紹的是卷二—「人際交往的學問」,原作者為美國的戴爾.卡內基。
Thumbnail
這個世代的開會人才需要什麼能力呢?如何讓會議更有效率進行? 若身為會議主持人的你,不知道如何面對情緒發言的與會者,或想避免會議上眾人雞同鴨講、把會議變成常跑馬拉松,歡迎參考以《唐鳳的破框思考力: 關於工作、學習與行動的方法》一書中唐鳳開會藝術所結晶出的本文。
Thumbnail
一袋15公斤的米、學習金、鴨蛋、牛奶及學習用品等,是學生持續學習的重要支持,疫情嚴峻時也不曾停止。 兒童的成長不曾停止,生活的挑戰也不曾停止。藉著每月的助學物資發放日,蒐集了助學生與家人們的話語,有對學習的渴望、對未來的期待、對生活的承擔,對貧窮的回應… 「我喜歡學習,但家裡很窮…」助學生D 她是家
Thumbnail
在偏遠的Prohut村莊,綠蘋果社區幼兒園是村莊唯一的學校。起因2017年台灣兒童神經內科醫師與兒童發展評估師對村莊兒童進行發展評估,發現2-6歲兒童在各項發展皆呈現落後情形。CSI-TAIWAN為能實質協助兒童的學前發展,因此與當地夥伴KAKO合作建立與長期資助綠蘋果幼兒園。。。。
Thumbnail
這次去參加《最親切的SEO入門教室》的讀書會。 感謝領讀人Tommy分享如何優化關鍵字、製作網站內容地圖、找到長尾關鍵字等內容,也謝謝願意讓我做成圖卡。 將圖書會摘要如下: 1. 由於SEO需要時間才能被Google收錄,開始可先搭配SEM付費搜尋廣告引流。
Thumbnail
我看《跟著考霸記筆記:教你在考試中通關的筆記學習法》:與其理解,不如記憶 身為臺灣規模最大的筆記社群「我愛寫筆記」創辦人,常有人會問我有關寫筆記的問題。特別是如何透過做筆記的方式,來順利通過各種競爭激烈的考試? 如果你也有類似的問題或困擾,那麼且讓我跟你推薦一本輕薄短小的好書《跟著考霸記筆記:教你在
Thumbnail
  這是我學習印尼文的第五週。   我發現印尼文的詞彙量十分精簡,一個單詞往往能表達許多意思。   例如:makan(音同嘛看)表示動詞的「吃」,但同時加上時間就會轉變成名詞或另一個動詞。   吃+早晨(pagi)=makan pagi(早飯或吃早飯);