對session和cookie的理解
兩者都存在有效期的說法
我們第一次訪問系統後端時,後端會生成一個session來為本次請求服務,並把session的id返回瀏覽器端,存在名字為JSESSIONID的cookie中;
後端生成的session存在有效期的說法,好像預設是30分鐘,可以通過設定指定有效時間;瀏覽器中的cookie也存在有效期的說法,預設是關閉瀏覽器後cookie過期,也可以通過設定來指定有效時間;
兩者的對應關係
後端的session和前端cookie中的sessionid是對應的,兩者任意一方失效,就會導致對應不上,從而會使後端重新生成session;
以下三種概括了對應不上的情況:
- 在cookie的有效期內(不關閉瀏覽器),並且session也在有效期內(不超過30分鐘)時,我們繼續訪問後端資源,瀏覽器會帶著名字為JSESSIONID的cookie的值去往後端,後端根據值查詢系統中對應的session,為該次請求服務;
- 在cookie的有效期內(不關閉瀏覽器),但是session已經過期(超過了30分鐘),我們繼續訪問後端資源,瀏覽器仍然會帶著名字為JSESSIONID的cookie的值去往後端,但是後端根據該值在系統中查詢不到對應的session了,所以會重新生成一個session來為該次請求服務,並把新session的id返回給瀏覽器,存在名字為JSESSIONID的cookie中。
- Cookie已經過期(關閉並重新開啟了瀏覽器),但是session還在有效期內(不超過30分鐘)時,我們繼續訪問後端資源,瀏覽器中就沒有名字為JSESSIONID的cookie的了,到達後端後,後端認為這是一次全新的請求,會生成一個session來為該次請求服務,並把session的id返回給瀏覽器,存在名字為JSESSIONID的cookie中。
兩者有效期的區別
1、cookie預設的有效期就是從開啟瀏覽器到關閉瀏覽器的這段時間,關閉了瀏覽器cookie就過期了;但是如果我們設定了瀏覽器的有效期為1個小時,則無論中途我們做了什麼,到1個小時後,cookie都會過期,過期的cookie就不會再被帶著去後端了。
2、session預設的有效期是30分鐘,即如果30分鐘沒有操作後端,則30分鐘後session就會過期消亡;但是如果中途我們操作了後端,則session的有效期就會從我們操作過後重新開始算;即如果我們一直操作,則session一直都不會過期。
兩者過期之後的表現
1、cookie過期之後,當我們再次向後端傳送請求時,不會攜帶過期的cookie去往後端了;如果開啟瀏覽器時cookie還沒過期,過了一會兒過期了,則cookie不會自動從瀏覽器中刪除,但是如果關閉瀏覽器再開啟,或者重新整理瀏覽器,則過期的cookie就會從瀏覽器中消失了。
2、session過期之後,會從伺服器中被垃圾回收掉。
相關文章
- 理解 cookie、session、tokenCookieSession
- cookie 和 sessionCookieSession
- session和cookieSessionCookie
- Cookie和SessionCookieSession
- 徹底理解cookie,session,tokenCookieSession
- 理解Cookie和Session機制,及其安全問題CookieSession
- 【Javaweb】Cookie和SessionJavaWebCookieSession
- cookie和session的區別CookieSession
- Tomcat 中的 Session 和 CookieTomcatSessionCookie
- session和cookie關係SessionCookie
- Session和Cookie機制SessionCookie
- 撩下Cookie和SessionCookieSession
- laravel操作session和cookieLaravelSessionCookie
- 關於Session和CookieSessionCookie
- flask框架中的cookie和sessionFlask框架CookieSession
- localStorage 與 sessionStorage / cookie 和 sessionSessionCookie
- 聊一聊session和cookieSessionCookie
- nodeJS之Cookie和Session(一)NodeJSCookieSession
- 深入分析Session和CookieSessionCookie
- Django框架之Cookie和SessionDjango框架CookieSession
- 理解cookie、session、localStorage、sessionStorage的關係與區別CookieSession
- cookie sessionCookieSession
- cookie & sessionCookieSession
- Cookie 和 Session 關係和區別CookieSession
- 第74節:Java中的Cookie和SessionJavaCookieSession
- cookie和session的區別(全面總結)CookieSession
- cookie和session的詳解與區別CookieSession
- 關於Cookie、session和Web StorageCookieSessionWeb
- session物件、cookie物件和appliaction物件Session物件CookieAPP
- http中session和cookie的區別和關係HTTPSessionCookie
- cookie與session的使用CookieSession
- Redis分散式Session和普通的cookie session有什麼區別?Redis分散式SessionCookie
- cookie&sessionCookieSession
- Session與CookieSessionCookie
- 你真的瞭解 Cookie 和 Session 嗎CookieSession
- 你真的瞭解 Cookie 和 Session 嗎?CookieSession
- 前端基礎:Session 和 Cookie 差別前端SessionCookie
- 你真的瞭解 Session 和 Cookie 嗎?SessionCookie