赤峰網(wǎng)站建設(shè) 公司網(wǎng)站優(yōu)化企業(yè)排名
文章目錄
- cookie
- session
- token
- 區(qū)別
cookie
是瀏覽器提供的一種能力,可以在每次發(fā)起請求前,帶上cookie里面的內(nèi)容(一些key,value值)
分類:
- 會話級cookie:默認(rèn)情況,就是會話級cookie,有效時長只有在窗口還打開的時候
- 持久cookie:在設(shè)置一些字段控制的時候,就可以設(shè)置cookie的持續(xù)時長(比如setMaxAge)
注意:cookie可以是web服務(wù)器添加的,原理就是在我們進(jìn)行某一個請求的時候,如果這個請求攜帶了一些控制cookie的字段,那么就會使得我們?yōu)g覽器設(shè)置了cookie
并且大小一般只有4kb,并且每個站點最多20條
session
是基于cookie實現(xiàn)的一種解決http無狀態(tài)的方式
-
原理: 在我們第一次登錄請求時,服務(wù)端會開辟一個空間用于存儲這次登錄的信息
session
,這個session
可以通過sessionID
來找到,所以服務(wù)器會把sessionID
返回給瀏覽器【自動存儲到cookie
里面】,然后我們發(fā)起下一次請求的時候就自動(通過cookie
)上這個sessionID
,那么服務(wù)器就能識別我們的登錄狀態(tài)了 -
缺點:由于
session
是存儲在服務(wù)器,所以當(dāng)我們服務(wù)器采用了負(fù)載均衡的時候,如果我們在A服務(wù)器有我們session
,當(dāng)A服務(wù)器壓力過大,我們的請求被分配到了B服務(wù)器,那么B服務(wù)器算識別不到我們的sessionID
的,因為只有A有我們的session
token
也是一種解決http無狀態(tài)的方式,是存儲了我們用戶狀態(tài)等信息的字符串
在我們第一次發(fā)起登錄請求的時候,服務(wù)器返回給我們一個token
字符串,然后這個token
字符串由瀏覽器存儲
- 在我們后續(xù)發(fā)起請求的時候,我們可以把token帶在
cookie
或者請求體里面 - 服務(wù)器通過解析我們的
token
,識別我們的狀態(tài)和信息
優(yōu)點: 存儲在客戶端,所以服務(wù)器空間壓力變小(解析時間壓力變大??),由于可以不同存儲在cookie
,對移動端更友好(cookie
是瀏覽器的機制)
區(qū)別
- cookie是一種瀏覽器的機制,session和token是解決http無狀態(tài)(身份驗證)的方式
- session存儲在cookie中,token可以存儲在cookie和響應(yīng)頭里面
- session存儲在服務(wù)器,token存儲在客戶端