網頁瀏覽器中可以使用的 storage:localStorage 跟 sessionStorage 是什麼?兩者差異為何

更新 發佈閱讀 4 分鐘

在先前的文章中,我們聊過瀏覽器中的另外一個儲存空間:cookie,有興趣的讀者可以從這邊複習。

與 cookie 相比,localStorage 與 sessionStorage 的機制相對單純,兩者皆是瀏覽器中的儲存空間,與 cookie 最大的不同在於:localStorage 與 sessionStorage 只存活在瀏覽器,並不會直接挾帶在 HTTP Request Header 上,且這兩者的容量比 cookie 大上不少(cookie 為 4KB,localStorage 與 sessionStorage 為 5MB)。

接著就來看看這兩者的簡介與使用方式:

localStorage 是什麼?會在什麼場合派上用場?

localStorage 的運作機制很單純,主要是以鍵值對(key value pairs)的方式運作,並且在存入當下的網域生效,要注意的是 localStorage 存入的值只能是字串,舉例來說:

// 設置資料
localStorage.setItem('username', 'john_doe');

// 獲取資料
const username = localStorage.getItem('username');
console.log(username); // 輸出: john_doe

如果要存入物件的話必須要轉成字串才行:

// 假設有一個 JavaScript 物件
const user = {
id: 1,
username: 'john_doe',
email: '[email protected]',
};

// 使用 JSON.stringify 將物件轉換為 JSON 字串
const userString = JSON.stringify(user);

// 將 JSON 字串存儲在 localStorage 中
localStorage.setItem('user', userString);

// 從 localStorage 中獲取 JSON 字串
const storedUserString = localStorage.getItem('user');

// 使用 JSON.parse 將 JSON 字串轉換為 JavaScript 物件
const storedUser = JSON.parse(storedUserString);

// 此時 storedUser 將是一個包含原始物件的 JavaScript 物件
console.log(storedUser);

localStorage 並不像 cookie 一樣有許多複雜的屬性,也沒有所謂的逾期機制,除非使用者手動清了瀏覽器快取,才會使舊的 localStorage 被清掉,可說是永久性的瀏覽器儲存空間。

由於存取上只停留在瀏覽器,在資安風險上比較不容易偽造身分,但還是會有資料外洩的風險。

一般來說, localStorage 不會拿來儲存重要的資訊,如果需要進行會員資訊的識別,也會透過加密的方式、不以明碼進行儲存。

在一些需要暫存網頁服務狀態的情境中 localStorage 非常好用,例如:使用者常使用的功能快取狀態、使用者偏好的文字大小等、燈箱效果,都可以透過 localStorage 做到關掉瀏覽器後狀態依然能存續。

SessionStorage 與 LocalStorage 的差異

sessionStorage 可以看做為 localStorage 的逾期版,只要在設定後被關掉瀏覽器則會馬上失效。

sessionStorage 的逾期特性使得一次性的憑證紀錄變得更方便與安全,在少數 CMS、活動性的頁面,如果有會員機制需要被快速逾期、不想要被永久紀錄狀態,那 sessionStorage 會是比 localStorage 更好的選擇。

小結

localStorage 與 sessionStorage 是被看作比 cookie 更安全的瀏覽器端暫存機制,根據 Mozilla 這兩者也被稱為 Modern Storage API,使用上方便也彈性,應盡量避免 cookie 的使用。

以上就是瀏覽器常用的儲存空間介紹啦,如果有任何問題小跟我討論,歡迎下方留言告訴我,我是 Vivian,我們下次見!

留言
avatar-img
Vivian Yeh - 跨領域轉職的軟體工程師
459會員
103內容數
為了追求可以窩在座位上、可以心無旁騖思考問題、座位可以亂七八糟沒關係、不需要到處哈腰點頭跑客戶,不用腳踩十公分、連妝都可以不用化的職場人生,文組少女毅然決然踏上RD的養成日常。
2024/05/22
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
Thumbnail
2024/05/22
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
Thumbnail
2024/02/20
上一篇文章分享了 TypeScript 的定義、前端角色定位,如果你不是很確定「TypeScript 是什麼?」、「TypeScript 作為 JavaScript 的超集,在網頁開發扮演怎麼樣的角色?」這兩個問題的答案,建議可以回到上一篇先了解一下。
Thumbnail
2024/02/20
上一篇文章分享了 TypeScript 的定義、前端角色定位,如果你不是很確定「TypeScript 是什麼?」、「TypeScript 作為 JavaScript 的超集,在網頁開發扮演怎麼樣的角色?」這兩個問題的答案,建議可以回到上一篇先了解一下。
Thumbnail
2024/02/08
在前端的開發中,除了切版與串 API 外,大部分的時間都在針對表單內容進行檢核、驗證、阻擋,一方面是讓使用者在操作頁面的過程中有良好的使用者體驗,不會因為一些例外狀況(Edge Case),例如:莫名其妙的 4xx 錯誤,導致使用者卡在某個操作流程中逃不出來,另一方面是讓傳遞到後端的資料更加正確⋯⋯
Thumbnail
2024/02/08
在前端的開發中,除了切版與串 API 外,大部分的時間都在針對表單內容進行檢核、驗證、阻擋,一方面是讓使用者在操作頁面的過程中有良好的使用者體驗,不會因為一些例外狀況(Edge Case),例如:莫名其妙的 4xx 錯誤,導致使用者卡在某個操作流程中逃不出來,另一方面是讓傳遞到後端的資料更加正確⋯⋯
Thumbnail
看更多
你可能也想看
Thumbnail
靜態網頁和動態網頁在功能、內容和互動性方面有所不同。靜態網頁通常用於展示公司網站、部落格文章或商品頁面等靜態內容,而動態網頁則用於用戶註冊、登錄、購物車等互動功能。
Thumbnail
靜態網頁和動態網頁在功能、內容和互動性方面有所不同。靜態網頁通常用於展示公司網站、部落格文章或商品頁面等靜態內容,而動態網頁則用於用戶註冊、登錄、購物車等互動功能。
Thumbnail
與 cookie 相比,localStorage 與 sessionStorage 的機制相對單純,兩者皆是瀏覽器中的儲存空間,與 cookie 最大的不同在於:localStorage 與 ⋯⋯
Thumbnail
與 cookie 相比,localStorage 與 sessionStorage 的機制相對單純,兩者皆是瀏覽器中的儲存空間,與 cookie 最大的不同在於:localStorage 與 ⋯⋯
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
在 WordPress 網站管理後台中,「顯示項目設定」是一項容易遭人忽略的功能。乍看似乎不起眼,但卻能在特定場合發揮作用。本篇文章將為你說明什麼是「顯示項目設定」及 3 種常見的應用情境。
Thumbnail
在 WordPress 網站管理後台中,「顯示項目設定」是一項容易遭人忽略的功能。乍看似乎不起眼,但卻能在特定場合發揮作用。本篇文章將為你說明什麼是「顯示項目設定」及 3 種常見的應用情境。
Thumbnail
透過GraphQL提供的分頁方式,優化後端讀取資料的效能,避免過度讀取舊資料及準確指定特定項目。同時,利用Local-only field達成資料的整理或再次經過計算,提升管理和重複使用的效能。
Thumbnail
透過GraphQL提供的分頁方式,優化後端讀取資料的效能,避免過度讀取舊資料及準確指定特定項目。同時,利用Local-only field達成資料的整理或再次經過計算,提升管理和重複使用的效能。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
自2019年起,Google計劃逐步淘汰第三方Cookies,以強化用戶隱私,然而,由於廣告夥伴的反對和監管單位的審查,該計劃被多次延遲,直至近日,Google宣布了重磅消息:第三方Cookies將在Chrome瀏覽器中無限期運作,推翻了先前計劃在2025年淘汰它們的決定。
Thumbnail
自2019年起,Google計劃逐步淘汰第三方Cookies,以強化用戶隱私,然而,由於廣告夥伴的反對和監管單位的審查,該計劃被多次延遲,直至近日,Google宣布了重磅消息:第三方Cookies將在Chrome瀏覽器中無限期運作,推翻了先前計劃在2025年淘汰它們的決定。
Thumbnail
在Google Analytics中,您可以授予其他使用者對您的資源(例如網站或應用程式)的存取權限。這樣他們就可以查看和分析資源的數據。下面是在Google Analytics中新增資源存取權限的步驟:
Thumbnail
在Google Analytics中,您可以授予其他使用者對您的資源(例如網站或應用程式)的存取權限。這樣他們就可以查看和分析資源的數據。下面是在Google Analytics中新增資源存取權限的步驟:
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
礙於我的個人網站二月跟三月都讓我去跟主機商詢問問題,外加未來等過了優惠價,年度的支出會增加,還有每次看到旅遊、美食部落客都有使用,上次還有店家問我怎麼沒有想用pixnet,讓我覺得有點無法回嘴。
Thumbnail
礙於我的個人網站二月跟三月都讓我去跟主機商詢問問題,外加未來等過了優惠價,年度的支出會增加,還有每次看到旅遊、美食部落客都有使用,上次還有店家問我怎麼沒有想用pixnet,讓我覺得有點無法回嘴。
Thumbnail
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
Thumbnail
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News