cookie & session &localStorage 分別是什么?

1.Cookie

Cookie 是服務(wù)器保存在瀏覽器的一小段文本信息,一般大小不能超過4KB。瀏覽器每次向服務(wù)器發(fā)出請求,就會自動附上這段信息。

瀏覽器需要保存這段數(shù)據(jù),不得輕易刪除
此后每次瀏覽器訪問該服務(wù)器,都必須帶上這段數(shù)據(jù)

Cookie 一般有兩個(gè)作用,第一個(gè)作用是識別用戶身份,第二個(gè)作用是記錄歷史。

2.session

用戶在輸入用戶名密碼提交給服務(wù)端,服務(wù)端驗(yàn)證通過后會創(chuàng)建一個(gè)session用于記錄用戶的相關(guān)信息,這個(gè) session 可保存在服務(wù)器內(nèi)存中,也可保存在數(shù)據(jù)庫中。當(dāng)頁面被關(guān)閉時(shí),存儲在 sessionStorage 的數(shù)據(jù)會被清除 。

創(chuàng)建session后,會把關(guān)聯(lián)的session_id 通過setCookie 添加到http響應(yīng)頭部中。
瀏覽器在加載頁面時(shí)發(fā)現(xiàn)響應(yīng)頭部有 set-cookie字段,就把這個(gè)cookie 種到瀏覽器指定域名下。
當(dāng)下次刷新頁面時(shí),發(fā)送的請求會帶上這條cookie, 服務(wù)端在接收到后根據(jù)這個(gè)session_id來識別用戶。

cookie 是存儲在瀏覽器里的一小段「數(shù)據(jù)」,而session是一種讓服務(wù)器能識別某個(gè)用戶的「機(jī)制」,session 在實(shí)現(xiàn)的過程中需要使用cookie。 二者不是同一維度的東西。

3.localStorage

只讀的localStorage 屬性允許你訪問一個(gè)Document 源(origin)的對象 Storage;存儲的數(shù)據(jù)將保存在瀏覽器會話中。存儲在 localStorage 的數(shù)據(jù)可以長期保留;localStorage 中的鍵值對總是以字符串的形式存儲。 (需要注意, 和js對象相比, 鍵值對總是以字符串的形式存儲意味著數(shù)值類型會自動轉(zhuǎn)化為字符串類型(JSON格式將對象轉(zhuǎn)為字符串,用的時(shí)候解析成對象))。

localStorage HTML5本地存儲web storage特性的API之一,用于將大量數(shù)據(jù)(最大5M)保存在瀏覽器中,保存后數(shù)據(jù)永遠(yuǎn)存在不會失效過期,除非用 js手動清除。
不參與網(wǎng)絡(luò)傳輸
一般用于性能優(yōu)化,可以保存圖片、js、css、html 模板、大量數(shù)據(jù)

參考https://developer.mozilla.org/zh-CN/docs/Web/API/Window/localStorage
https://zhuanlan.zhihu.com/p/22396872?refer=study-fe

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

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