網(wǎng)絡(luò)請求中,cookie和token的區(qū)別
作者:super_wei
鏈接:https://www.jianshu.com/p/a150932b4b99
在平常開發(fā)中,用于用戶登錄校驗(yàn)的方法可以分為cookie和token,這兩者比平常開發(fā)都有用到,那區(qū)別是什么,原先我覺得用戶登錄是后臺(tái)的事不必多了解,用多了以后就開始好奇,為什么有些項(xiàng)目用cookie 有些用token?
一、cookie
cookie之前在做存儲(chǔ)區(qū)別的時(shí)候有說過,大小只有4kb, 往返于客戶端和服務(wù)端之間。在用戶校驗(yàn)過程中,主要還是和服務(wù)端的session配合使用。
大概的使用流程是,用戶請求登錄接口,服務(wù)端進(jìn)行用戶校驗(yàn),校驗(yàn)通過則把用戶信息儲(chǔ)存在服務(wù)端的session當(dāng)中,并通過set-cookie把userId保存在瀏覽器當(dāng)中,后續(xù)的每次請求cookie都會(huì)攜帶userId來服務(wù)端進(jìn)行校驗(yàn)。

cookie的優(yōu)點(diǎn):
1、便于理解,比較好掌握,用戶數(shù)據(jù)在服務(wù)端相對安全
2、session集中管理用戶信息,可直接封禁某個(gè)用戶。
3、屬于http規(guī)范,默認(rèn)被瀏覽器存儲(chǔ)
cookie的不足:
1、所有信息都存在session當(dāng)中會(huì)占用內(nèi)存
2、不支持跨域共享cookie,隨著大型項(xiàng)目支持的范圍越來越多,cookie的方式也逐漸滿足不了項(xiàng)目的需求。
3、為了安全,限制比較多
4、session多進(jìn)程多服務(wù)器時(shí)不好同步
二、token
相對于cookie自動(dòng)攜帶在瀏覽器當(dāng)中不同的是,token是自定義攜帶。在進(jìn)行用戶登錄中,服務(wù)端判斷登錄通過,接口會(huì)返回一個(gè)加密的數(shù)據(jù),用戶的所用信息都儲(chǔ)存在這個(gè)加密數(shù)據(jù)當(dāng)中,在客戶端獲取這個(gè)數(shù)據(jù)以后本地進(jìn)行存儲(chǔ),并在后續(xù)的請求當(dāng)中自定義放在Request Headers當(dāng)中。

token的優(yōu)點(diǎn):
1、來自民間的力量(不屬于http規(guī)范,cookie是學(xué)院派),使用起來比較自由
2、沒有跨域限制
3、不占用服務(wù)器內(nèi)存,多進(jìn)程多服務(wù)器不受影響
token的缺點(diǎn):
1、數(shù)據(jù)請求在客戶端,無法快速封禁某個(gè)用戶。(也是可以實(shí)現(xiàn),比如建立黑名單)
2、體積比cookie大,會(huì)增加請求數(shù)量(影響也不是很大)
3、存在安全隱患,所有信息都存在token中,密鑰一旦泄露敏感信息就有可能被竊取。
三、如何選擇cookie還是token?
如果有嚴(yán)格的用戶管理要求的用cookie+session的方式,如果沒有嚴(yán)格要求推薦使用token方式,會(huì)減少很多服務(wù)端的壓力。
往期干貨:
26個(gè)經(jīng)典微信小程序+35套微信小程序源碼+微信小程序合集源碼下載(免費(fèi))
干貨~~~2021最新前端學(xué)習(xí)視頻~~速度領(lǐng)取
前端書籍-前端290本高清pdf電子書打包下載
點(diǎn)贊和在看就是最大的支持??
