一篇文章弄懂cookie、session和token
概念
cookie
cookie儲存在客戶端,HTTP是無狀態的,HTTP每次發出的時候會附上該域名下的cookie,從而可以給HTTP附上狀態,最常見的就是登入態。
session和token
session和token算是一類的,他們是兩種不同的伺服器的驗證方式。
通俗來說,cookie會存一個value在客戶端本地,然後將value附到HTTP上發給伺服器,那麼伺服器是怎麼通過這個value來判斷使用者是否是登入態的呢?這就是session和token做的事情。
session過程
請求過程:
1、客戶端向伺服器請求,傳送使用者名稱和密碼
2、伺服器生成sessionId,繫結使用者資料儲存在資料庫
3、伺服器返回sessionId給客戶端
4、客戶端用cookie儲存sessionId,以後的請求都帶上這個sessionId
5、伺服器如果收到這個sessionId,那麼就去資料庫查詢使用者資料,如果找到了說明驗證通過
6、伺服器把驗證結果返回客戶端
token過程
請求過程:
1、客戶端向伺服器請求,傳送使用者名稱和密碼
2、伺服器根據使用者資訊通過加密生成token,使用者資訊包括賬號,token過期時間等,具體由伺服器自定義。
3、伺服器返回token給客戶端
4、客戶端用cookie儲存token,以後的請求都帶上這個token
5、伺服器把token解密,確認使用者資訊是否正確,如經過正確就說明驗證通過。
6、伺服器把驗證結果返回客戶端
session、token優劣
session
由於sessionId和使用者資訊相互繫結的資料庫存在伺服器,所以伺服器可以隨時讓傳送出去的一個sessionId失效。這是保障安全的一種重要手段。
token
token的好處是比session更省空間和時間,伺服器不需要去管理sessionId和使用者資訊的資料庫,伺服器收到token直接解密就可以驗證,不需要去資料庫查詢驗證。
但是token傳送出去之後,就只能等待它達到過期時間後才會失效,後臺無法對其進行控制。
相關文章
- 理解 cookie、session、tokenCookieSession
- 一文弄懂 HTTP、cookie、sessionHTTPCookieSession
- 徹底理解cookie,session,tokenCookieSession
- 一文搞懂Cookie,Session,Token,JWTCookieSessionJWT
- 【網路傳輸】Cookie、Session、Token、JWTCookieSessionJWT
- Token ,Cookie、Session 三者區別CookieSession
- 一文搞懂 Cookie,Session,Token,JWTCookieSessionJWT
- cookie 和 sessionCookieSession
- session和cookieSessionCookie
- Cookie和SessionCookieSession
- Token ,Cookie、Session傻傻分不清楚?CookieSession
- nodejs學習08——會話控制 session cookie tokenNodeJS會話SessionCookie
- 【Javaweb】Cookie和SessionJavaWebCookieSession
- 一篇文章弄懂 JavaScript 中的 importJavaScriptImport
- session和cookie關係SessionCookie
- Session和Cookie機制SessionCookie
- 撩下Cookie和SessionCookieSession
- laravel操作session和cookieLaravelSessionCookie
- 關於Session和CookieSessionCookie
- 看完這篇 Session、Cookie、Token,和麵試官扯皮就沒問題了SessionCookie
- localStorage 與 sessionStorage / cookie 和 sessionSessionCookie
- cookie和session的區別CookieSession
- 聊一聊session和cookieSessionCookie
- nodeJS之Cookie和Session(一)NodeJSCookieSession
- 深入分析Session和CookieSessionCookie
- Django框架之Cookie和SessionDjango框架CookieSession
- 對session和cookie的理解SessionCookie
- Tomcat 中的 Session 和 CookieTomcatSessionCookie
- 一問帶你區分清楚Authentication,Authorization以及Cookie、Session、TokenCookieSession
- cookie sessionCookieSession
- cookie & sessionCookieSession
- 一篇文章帶你弄懂Kerberos的設計思路ROS
- Cookie 和 Session 關係和區別CookieSession
- 關於Cookie、session和Web StorageCookieSessionWeb
- flask框架中的cookie和sessionFlask框架CookieSession
- session物件、cookie物件和appliaction物件Session物件CookieAPP
- Session、Cookie、Token 【淺談三者之間的那點事】SessionCookie
- Web 開發必須掌握的三個技術:Token、Cookie、SessionWebCookieSession