????????????????? | Session | Cookie | LocalStorage | sessionStorage |
---|---|---|---|---|
存儲(chǔ)類(lèi)型 | Object道偷、KeyValue | KeyValue | KeyValue | KeyValue |
存儲(chǔ)方式 | 服務(wù)器存儲(chǔ) | 瀏覽器存儲(chǔ) | 瀏覽器存儲(chǔ) | 瀏覽器存儲(chǔ) |
大小限制 | 無(wú)限制 | 4KB(20個(gè)限制,不同瀏覽器有不同個(gè)數(shù)限制) | 5MB | 5MB |
有效時(shí)間 | 短期(根據(jù)HttpSession設(shè)置) | 短期(根據(jù)cookie設(shè)置) | 長(zhǎng)期永久 | 會(huì)話結(jié)束即清除 |
安全性 | 高 | 低(設(shè)置https時(shí)记劈,客戶端無(wú)法直接讀取勺鸦,安全性較好) | 低 | 高 |
跨域 | 允許 | 不允許 | 不允許 | 不允許 |
使用場(chǎng)景 | 服務(wù)器端保持用戶登錄狀態(tài) | 客戶端保持登錄狀態(tài)、個(gè)性化信息 | 數(shù)據(jù)緩存目木、系統(tǒng)配置换途、Token | 敏感操作信息等 |
Token
最后補(bǔ)充一下Token,這些瀏覽器數(shù)據(jù)存儲(chǔ)技術(shù)與Token有說(shuō)不清的關(guān)系刽射,但技術(shù)本身是沒(méi)任何關(guān)系军拟,只跟場(chǎng)景有一定的聯(lián)系。
Token是令牌誓禁,一般而言吻谋,Web中的Token代指JWT(JSON Web Token)中的Token。服務(wù)端根據(jù)用戶信息生成了Token现横,需要依賴(lài)介質(zhì)存儲(chǔ)于客戶端漓拾,從安全性考慮,由于Cookie設(shè)置了HttpOnly之后戒祠,XSS跨站腳本攻擊是能防御的骇两,因此大部分Token都存儲(chǔ)于Cookie之中,在發(fā)送請(qǐng)求時(shí)附帶cookie即可姜盈。
當(dāng)然低千,如果你愿意,也是可以將Token存儲(chǔ)于SessionStorage馏颂、LocalStorage示血,甚至是window對(duì)象中。??
引用:
https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpSession.html
http://javascript.ruanyifeng.com/bom/cookie.html