stanley
3/27/2025
在介紹什麼是 cookie, session 之前,要先知道一個很重要的概念,那就是
http 協定是一個無狀態的溝通方式,也就是說伺服器是不會保存兩次不同 request 的資料
但在現在高戶動的網站下,我們會需要記住使用者在網頁上所做過的事情,例如電商網站判斷使用者是否登入了,又或是購買了哪些商品?也因此有了 cookie 的功能,可以在瀏覽器紀錄使用者當前的狀態,並且在每一次跟後端伺服器溝通時把 cookie 帶上。
Cookie 由瀏覽器處理,具有幾個特性:
聽起來很方便,但他有幾個缺點
第3點竄改的問題,有人想到那我把資料進行加密是不是就可以了,但這樣的問題就會是隨著資料越來越多,加密的檔案會超過容量限制
因為 cookie 的限制,我們不可能把使用者的所有狀態資料全部儲存進來,這時就有人想到,不如我們只要在使用者第一次訪問伺服器時給予他一個 id 並存到 cookie 裡面 (set-cookie),同時伺服器也儲存這個 id 以及他所有的狀態,這樣每次透過比對 id 找出資料即可,也因此有了 Session
參考資料