axios中請求攜帶時間戳和token的原因

前言

做了很多項(xiàng)目,好像對 axios每次請求時 要攜帶 時間戳和token的原因,還是不明確。所以,記錄下來,便于時時查看。

時間戳

原因: 因?yàn)闉g覽器具有基于url建立的緩存機(jī)制
當(dāng)瀏覽器向相同的鏈接發(fā)送請求時,瀏覽器的緩存機(jī)制就會獲取之前訪問的相同URL時保留下來的緩存資源。 所以為了確保每次請求都是一個不同于之前的請求。
在請求時,加上時間戳,能避免瀏覽器對URL的緩存。

token

背景

在客戶端頻繁向服務(wù)端請求數(shù)據(jù),服務(wù)器頻繁的去數(shù)據(jù)庫查詢用戶名和密碼并進(jìn)行比對,判斷用戶名和密碼正確與否,并做出相應(yīng)的提示,在這樣的背景下,token便應(yīng)運(yùn)而生。
(另一種說法: 用戶登錄成功后, 需要反復(fù)到服務(wù)器獲取敏感數(shù)據(jù),服務(wù)器對每次請求都要驗(yàn)證是哪位用戶發(fā)送的, 且用戶是否合法, 需要反復(fù)查詢數(shù)據(jù)庫, 對數(shù)據(jù)庫造成過大壓力)

實(shí)質(zhì)

token是在服務(wù)端產(chǎn)生的一串字符串,以作客戶端進(jìn)行請求的一個令牌。 如果前端使用用戶名/密碼向服務(wù)端請求認(rèn)證,服務(wù)端認(rèn)證成功,就會返回一個token給前端,前端可以在每次請求的時候帶上token 證明自己的合法地位。 如果這個token 在服務(wù)端持久化(比如存入數(shù)據(jù)庫),那它就是個永久的身份令牌(除非設(shè)置了有效期)
(另一種說法: Token是服務(wù)端生成的一串字符串,以作客戶端進(jìn)行請求的一個令牌,當(dāng)?shù)谝淮蔚卿浐?,服?wù)器生成一個Token便將此Token返回給客戶端,以后客戶端只需帶上這個Token前來請求數(shù)據(jù)即可,無需再次帶上用戶名和密碼)

優(yōu)勢

1 支持跨域訪問: cookie是不允許跨域訪問的, token支持
2 無狀態(tài): token不需要服務(wù)器保存任何相關(guān)信息. token自身就攜帶所有值
3 去耦: 不需要綁定特定的身份驗(yàn)證方案
4 更適合移動應(yīng)用: cookie不支持手機(jī)端訪問
5 基于標(biāo)準(zhǔn)化:JWT

缺陷

1 占帶寬: 比session_id 大, 消耗更多的流量
2 無法在服務(wù)端注銷: 很難解決劫持問題
3 性能問題: JWT標(biāo)準(zhǔn)消耗更多的 CPU 資源

借鑒:
https://blog.csdn.net/JiangLu7/article/details/131139285
https://blog.51cto.com/u_16099249/9095244
https://blog.csdn.net/Joye_7y/article/details/128268044

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容