session和cookie關係

以前老是對session和cookie這兩個概念很模糊,今天就研究下他們的原理和關係前端

在說session和cookie以前,咱們先來講說session和cookie出現的緣由算法

衆所周知,http是無狀態的,也就是說在客戶端和服務器鏈接期間,客戶端向服務器發送的請求是不帶用戶信息的,因此咱們是沒法辨別出這個請求是哪一個用戶發出的。數據庫

爲了解決這個問題,就得藉助其餘技術,cookie和session就由此誕生服務器

首先須要闡明的一點:session是一種網絡通信的會話機制,而cookie只是實現這種機制的主流方案中的一個,cookie通常是用來保存sessionID的cookie

Cookie原理

Cookie是存儲在客戶端的一段數據,一般記錄一些網站的密碼和用戶名等,當客戶端發送請求的時候,服務端須要記住這個用戶的信息,就在返回給前端的數據中設置Cookie,客戶端接受到這個請求後,會把Cookie保存起來,當再次訪問服務器的時候將會帶上這個Cookie,服務器經過這個Cookie來獲取用戶狀態網絡

基本過程:session

Cookie有不少的參數,能夠根據這些參數設置Cookie的過時時間和是否能被js更改等post

若是客戶端禁用了Cookie,一般客戶端會採用url重寫技術,好比會在url後面加上一個諸如sid=xx的參數網站

Session原理

session是保存在服務端的,當用戶登陸系統後,服務端會根據一個算法,生成一個sessionID,這個sessionID惟一標識一個會話,服務端將這個sessionID存儲在內存中,數據庫或者文件當中,並設定必定的有效期,並將sessionID寫入到Cookie當中返回給客戶端,當下一次客戶端請求的時候會帶上sessionID,服務端會將客戶端中的Cookie與服務端中記錄的進行比較,從而肯定一個會話url

基本過程:

參考連接:

juejin.im/post/5aede2…

juejin.im/post/5bbc47…

相關文章
相關標籤/搜索