今天來聊聊cookie和session的區別和聯系.首先先確定一個各自的定義吧:
- cookies: 網站用于鑒別用戶身份和追蹤用戶登錄狀態. 存在于瀏覽器端的一小段文本資料
- session: 中文稱之為會話. 可以理解成一系列動作. 在web中. session是存在瀏覽器端用戶儲存用戶的屬性和配置資訊. 這樣在網頁跳轉時. 全域變數就會一直存在
瀏覽器中cookie和session的并行使用和生成程序: 比如在一個登錄界面中. 瀏覽器訪問網址. 一般會回傳一個set-cookie. 瀏覽器會將該值存成本地的cookie資料. 在下一次訪問時. 瀏覽器會自動將cookie的值攜帶并發送給網站的服務器. cookie中攜帶的session ID就會在服務器中找到對應的session來判斷用戶狀態是否正常. 如果正常. 那么服務器就會回傳給用戶登錄之后才能看到的資訊, 如果不正常, 那么就會回傳錯誤資訊或者跳轉至登錄界面重新登錄. session和cookie一個在瀏覽器端. 一個在服務器端. 二者需要相互配合才能實作登錄效果.
常見誤區: 在討論session的機制時. 有人認為瀏覽器關閉. session就會對應被洗掉或消失. 其實這是個錯誤的說法:
其一是cookie在生成時服務器已經設定好了再瀏覽器中的有效時間expires/max_age. 到了一定時間. 服務器會自動認為用戶結束了活動. 洗掉cookie對應的session以節約資源.
其二是服務器并不知道你是否關閉了瀏覽器. 所以不存在瀏覽器關閉導致session消失. 而恰恰是由于瀏覽器關閉并不會導致session被洗掉. 所以服務器設定了失效時間去回收session資源.
本文來自博客園,作者:{Max},僅供學習和參考
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499990.html
標籤:其他
下一篇:2022.7.21 特殊矩陣壓縮
