學習筆記 | 瀏覽器儲存空間:Cookie、LocalStorage 和 SessionStorage

更新於 發佈於 閱讀時間約 4 分鐘


之前在 學習筆記 | 關於 Cookie、Session、Token 這篇筆記有提到,瀏覽器需要帶著使用者的身分訊息或經過身分驗證後取得的Token(令牌),才能向伺服器請求資源,那麼瀏覽器就必須有個空間來儲存這些 Token 資訊,這篇就是要來記錄瀏覽器常見的儲存空間啦~

在 Chrome 的開發者工具內找到 Application,就可以看到瀏覽器的儲存空間 Storage 了,這篇主要記錄最常用的三種:Cookie、LocalStorage 和 SessionStorage

Cookie

Cookie 是小型文字檔,有以下特性:

1. 可以設定失效時間

2. 夾帶在 header 裡,會隨著網路請求一起發送到 server 端

3. 大小約 4kb(儲存量偏小)

4. 操作方式只有一種,所有的新增修改刪除都是同樣寫法

document.cookie = "name=Andy"  // 新增一個cookie 
document.cookie // 讀取全部cookie
document.cookie = "name=;" // 移除name之cookie

Storage

LocalStorage 和 SessionStorage 的概念基本都是相同的,特性是:

1. 大小預設有 5mb,實際會依照瀏覽器不同而有所差異

2. 儲存字串資料,其他類型可用 JSON.stringify()存入,用JSON.parse()取回

3. 無痕或隱私模式下無法讀取

而兩者最大區別在於:

  • LocalStorage 如果不手動刪除就會一直保留在瀏覽器內
  • SessionStorage 僅會存在當前的頁面,如果關閉瀏覽器或重新整理,資料就會被清除

LocalStorage 和 SessionStorage 的操作也相同,都是以key/value 的方式進行CRUD,這邊就以 LocalStorage 進行操作:

  • 存取/修改 setItem()
localStorage.setItem(key,vale)
// key 相當於屬性名稱,value 則是我們要存入的值

ex:
localStorage.setItem('token','123456')
  • 讀取 getItem()
localStorage.getItem(key)
// 讀取時就調用我們先前存入的 key,此時若 Storage 內沒有資料,會回傳 null

ex:
localStorage.getItem('token') // '123456'
  • 清空 removeItem() / clear()
localStorage.removeItem(key)  // 刪特定資料
localStorage.clear() // 清空所有資料,此時若 Storage 內沒有資料,會回傳 undefined

ex:
localStorage.removeItem('token')

最後,使用瀏覽器儲存空間要注意的是「安全性問題」,由於這些存取空間只要打開開發者工具就能看到,像 LocalStorage 如果沒有清空,就毫無安全性可言,任何人都可以對其進行修改,使用上務必謹慎!


另外有個小小備註,一開始初學的我認為 SessionStorage 跟 先前的筆記中的 session 是同樣的,所以一直無法理解,後來才發現,原來它們是完全不同的呀!SessionStorage 是瀏覽器端的儲存空間,而 session 則是伺服器端用來儲存使用者狀態的機制,雖然名稱很像但功能不一樣呢😯


參考資料:
Cookie、LocalStorage、SessionStorage 差異
網頁資料儲存 — cookie、local Storage、Session Storage


我是Amber,前端學習中,歡迎交流討論🧸

avatar-img
23會員
22內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Amber hh的沙龍 的其他內容
上一篇筆記講到了瀏覽器與伺服器之間,經過身分驗證後,就會改以 Token 這個令牌作為通行證,不需要再反覆驗證,那麼這篇紀錄的就是目前最常使用的 JWT (JSON Web Token) 啦! 可以搭配 JWT 的網站來玩看看 JWT(JSON Web Token) 顧名思義就是以 JSON
延續先前的筆記,「網路請求」是瀏覽器和伺服器的溝通橋梁,目的是為了取得資料庫內的資源,除了 CORS 這種瀏覽器本身的阻擋機制,伺服器也會需要進行「身分驗證或授權」這道阻擋,並不是使用者有帶上 header 告知身分,就一定可以把資料 response 回來的。
那麼「我要什麼資料」就需要告訴伺服器特定的內容啦,舉例來說: 我要登入,就必須把「帳號」和「密碼」一起帶在請求內,發送給後端進行驗證
上篇記錄了關於 HTTP request 的筆記,這篇則是對於請求的回應紀錄~
上一篇【瀏覽器與伺服器是如何溝通的?】有說瀏覽器和伺服器的溝通橋樑是「網路請求」,這篇就來記錄一下,我目前學習到的網路請求是什麼~
身為一個非本科新手工程師,對於網路知識還是有許多疑惑之處,像是我在編輯器上寫了數十行的程式碼,那它們是怎麼透過終端機的指令被運行起來,讓我可以一邊開發一邊預覽結果呢?
上一篇筆記講到了瀏覽器與伺服器之間,經過身分驗證後,就會改以 Token 這個令牌作為通行證,不需要再反覆驗證,那麼這篇紀錄的就是目前最常使用的 JWT (JSON Web Token) 啦! 可以搭配 JWT 的網站來玩看看 JWT(JSON Web Token) 顧名思義就是以 JSON
延續先前的筆記,「網路請求」是瀏覽器和伺服器的溝通橋梁,目的是為了取得資料庫內的資源,除了 CORS 這種瀏覽器本身的阻擋機制,伺服器也會需要進行「身分驗證或授權」這道阻擋,並不是使用者有帶上 header 告知身分,就一定可以把資料 response 回來的。
那麼「我要什麼資料」就需要告訴伺服器特定的內容啦,舉例來說: 我要登入,就必須把「帳號」和「密碼」一起帶在請求內,發送給後端進行驗證
上篇記錄了關於 HTTP request 的筆記,這篇則是對於請求的回應紀錄~
上一篇【瀏覽器與伺服器是如何溝通的?】有說瀏覽器和伺服器的溝通橋樑是「網路請求」,這篇就來記錄一下,我目前學習到的網路請求是什麼~
身為一個非本科新手工程師,對於網路知識還是有許多疑惑之處,像是我在編輯器上寫了數十行的程式碼,那它們是怎麼透過終端機的指令被運行起來,讓我可以一邊開發一邊預覽結果呢?
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
瀏覽器中三種主要的客戶端儲存方式:Cookie、LocalStorage 和 SessionStorage。
Thumbnail
自2019年起,Google計劃逐步淘汰第三方Cookies,以強化用戶隱私,然而,由於廣告夥伴的反對和監管單位的審查,該計劃被多次延遲,直至近日,Google宣布了重磅消息:第三方Cookies將在Chrome瀏覽器中無限期運作,推翻了先前計劃在2025年淘汰它們的決定。
Thumbnail
Google 在多次延期 Cookies 的刪除後,終於在上個月決定保留 Cookies 的應用,讓許多廣告商都鬆了口氣。本週零售媒體趨勢,我們將與您分享超越 Cookies 的未來廣告應用、手機如何成為強化購物體驗的關鍵和 Tesco 與 Group M 的零售媒體合作應用。
Thumbnail
今天寫文章來學習什麼是「第一方 Cookies」。 ## 1. Cookie在LinkedIn廣告中的角色 根據Linkedin的文章[1], Cookie 是被設置在網站訪問者的 Web瀏覽器上, 可以幫助 Linkedin 確定廣告被展示給哪些成員, 是衡量廣告效果,改
Thumbnail
Google於2020年宣佈,計劃在未來3年之內將終止Chrome瀏覽器對第三方Cookie的支援。也就是在2023年將完全淘汰Chrome瀏覽器中的第三方Cookie及跨站追踪識別碼、指紋識別等技術,以保障使用者隱私,以避免干擾網站廣告模式。
Thumbnail
與 cookie 相比,localStorage 與 sessionStorage 的機制相對單純,兩者皆是瀏覽器中的儲存空間,與 cookie 最大的不同在於:localStorage 與 ⋯⋯
Thumbnail
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
前言 這篇文章分享cookie、sessionStorage、localStorage、session的差異,因為前後端溝通常用的就這幾個,我比較常用的是cookie或session,但也是有可能會用到sessionStorage或localStorage的時候,因此想說這邊做個紀錄比較他們的差別
※ 什麼是快取 (Cache)[kash]?快取 (Cache) 的機制為何? 什麼是快取 (Cache)? 快取(Cache)是一種將資料存儲在特定位置以便快速檢索的技術。目的是為了彌補 Database 在業務邏輯複雜且數據量龐大時的不足,基本原理是將可重複使用的資料,也就是最常或最近使用的
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
瀏覽器中三種主要的客戶端儲存方式:Cookie、LocalStorage 和 SessionStorage。
Thumbnail
自2019年起,Google計劃逐步淘汰第三方Cookies,以強化用戶隱私,然而,由於廣告夥伴的反對和監管單位的審查,該計劃被多次延遲,直至近日,Google宣布了重磅消息:第三方Cookies將在Chrome瀏覽器中無限期運作,推翻了先前計劃在2025年淘汰它們的決定。
Thumbnail
Google 在多次延期 Cookies 的刪除後,終於在上個月決定保留 Cookies 的應用,讓許多廣告商都鬆了口氣。本週零售媒體趨勢,我們將與您分享超越 Cookies 的未來廣告應用、手機如何成為強化購物體驗的關鍵和 Tesco 與 Group M 的零售媒體合作應用。
Thumbnail
今天寫文章來學習什麼是「第一方 Cookies」。 ## 1. Cookie在LinkedIn廣告中的角色 根據Linkedin的文章[1], Cookie 是被設置在網站訪問者的 Web瀏覽器上, 可以幫助 Linkedin 確定廣告被展示給哪些成員, 是衡量廣告效果,改
Thumbnail
Google於2020年宣佈,計劃在未來3年之內將終止Chrome瀏覽器對第三方Cookie的支援。也就是在2023年將完全淘汰Chrome瀏覽器中的第三方Cookie及跨站追踪識別碼、指紋識別等技術,以保障使用者隱私,以避免干擾網站廣告模式。
Thumbnail
與 cookie 相比,localStorage 與 sessionStorage 的機制相對單純,兩者皆是瀏覽器中的儲存空間,與 cookie 最大的不同在於:localStorage 與 ⋯⋯
Thumbnail
在瀏覽器環境中有許多的儲存空間,想要查看這些空間的話,可以透過「chrome > Dev Tools > Application > Storage」即能進行查看。 瀏覽器內存空間的差異不僅常常被拿來被當作面試考題,在實務開發中更扮演舉足輕重的角色,今天就想透過這系列的文章深度了解這些瀏覽器內存⋯
前言 這篇文章分享cookie、sessionStorage、localStorage、session的差異,因為前後端溝通常用的就這幾個,我比較常用的是cookie或session,但也是有可能會用到sessionStorage或localStorage的時候,因此想說這邊做個紀錄比較他們的差別
※ 什麼是快取 (Cache)[kash]?快取 (Cache) 的機制為何? 什麼是快取 (Cache)? 快取(Cache)是一種將資料存儲在特定位置以便快速檢索的技術。目的是為了彌補 Database 在業務邏輯複雜且數據量龐大時的不足,基本原理是將可重複使用的資料,也就是最常或最近使用的